ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/AnaTools/plugins/OSUAnalysis.cc
(Generate patch)

Comparing UserCode/OSUT3Analysis/AnaTools/plugins/OSUAnalysis.cc (file contents):
Revision 1.123 by wulsin, Mon Aug 12 21:03:10 2013 UTC vs.
Revision 1.125 by lantonel, Tue Sep 3 09:25:59 2013 UTC

# Line 32 | Line 32 | OSUAnalysis::OSUAnalysis (const edm::Par
32    treeBranchSets_   (cfg.getParameter<vector<edm::ParameterSet> >("treeBranchSets")),
33    plotAllObjectsInPassingEvents_ (cfg.getParameter<bool> ("plotAllObjectsInPassingEvents")),
34    doPileupReweighting_ (cfg.getParameter<bool> ("doPileupReweighting")),
35 +  doTopPtReweighting_  (cfg.getParameter<bool> ("doTopPtReweighting")),
36    applyLeptonSF_ (cfg.getParameter<bool> ("applyLeptonSF")),
37    applyBtagSF_ (cfg.getParameter<bool> ("applyBtagSF")),
38    minBtag_ (cfg.getParameter<int> ("minBtag")),
# Line 204 | Line 205 | OSUAnalysis::OSUAnalysis (const edm::Par
205         currentObject != "taus" &&
206         currentObject != "tracks" &&
207         currentObject != "photons" &&
208 <       currentObject != "secondary photons"&&
209 <       currentObject != "superclusters")
208 >       currentObject != "secondary photons" &&
209 >       currentObject != "superclusters" &&
210 >       currentObject != "mcparticles" &&
211 >       currentObject != "secondary mcparticles")
212        continue;
213  
214      histogram tempIdHisto;
# Line 223 | Line 226 | OSUAnalysis::OSUAnalysis (const edm::Par
226      if(currentObject == "secondary muons") currentObject = "secondaryMuons";
227      if(currentObject == "secondary photons") currentObject = "secondaryPhotons";
228      if(currentObject == "secondary electrons") currentObject = "secondaryElectrons";
229 +    if(currentObject == "secondary mcparticles") currentObject = "secondaryMCParticles";
230  
231      currentObject = currentObject.substr(0, currentObject.size()-1);
232      tempIdHisto.name = currentObject+"GenMatchId";
# Line 606 | Line 610 | OSUAnalysis::OSUAnalysis (const edm::Par
610        for (uint currentObjectIndex = 0; currentObjectIndex != objectsToPlot.size(); currentObjectIndex++){
611          string currentObject = objectsToPlot.at(currentObjectIndex);
612          int maxNum = 10;
613 <        if(currentObject == "mcparticles") maxNum = 50;
613 >        if(currentObject == "mcparticles" || currentObject == "secondary mcparticles") maxNum = 50;
614          else if(currentObject == "primaryvertexs") maxNum = 50;
615  
616          if(currentObject == "muon-muon pairs")                currentObject = "dimuonPairs";
# Line 893 | Line 897 | OSUAnalysis::produce (edm::Event &event,
897      if (!rhokt6CaloJetsHandle_.product()) clog << "ERROR:  could not get kt6CaloJets input collection" << endl;  
898    }
899  
900 <  double masterScaleFactor = 1.0;
900 >  eventScaleFactor_ = 1.0;
901  
902    //get pile-up event weight
903    if (doPileupReweighting_ && datasetType_ != "data") {
904      //for "data" datasets, the numTruePV is always set to -1
905      if (events->at(0).numTruePV < 0 && isFirstEvent_) clog << "WARNING[OSUAnalysis::analyze]: Event has numTruePV<0.  Turning off pile-up reweighting." << endl;
906 <    else masterScaleFactor *= puWeight_->at (events->at (0).numTruePV);
906 >    else eventScaleFactor_ *= puWeight_->at (events->at (0).numTruePV);
907    }
908  
909    stopCTauScaleFactor_ = 1.0;
910    if (datasetType_ == "signalMC" && regex_match (dataset_, regex ("stop.*to.*_.*mm.*")))
911      stopCTauScaleFactor_ = stopCTauWeight_->at (event);
912 <  masterScaleFactor *= stopCTauScaleFactor_;
912 >  eventScaleFactor_ *= stopCTauScaleFactor_;
913 >
914 >  topPtScaleFactor_ = 1.0;
915 >  if (doTopPtReweighting_ && dataset_.find("TTbar_")!=string::npos)
916 >    topPtScaleFactor_ = getTopPtWeight();
917 >  eventScaleFactor_ *= topPtScaleFactor_;
918  
919    //loop over all channels
920  
# Line 964 | Line 973 | OSUAnalysis::produce (edm::Event &event,
973          else if(currentObject == "tracks")              setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,tracks.product(),"tracks");
974          else if(currentObject == "genjets")             setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,genjets.product(),"genjets");
975          else if(currentObject == "mcparticles")         setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,mcparticles.product(),"mcparticles");
976 +        else if(currentObject == "secondary mcparticles")setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,mcparticles.product(),"secondary mcparticles");
977          else if(currentObject == "primaryvertexs")      setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,primaryvertexs.product(),"primaryvertexs");
978          else if(currentObject == "bxlumis")             setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,bxlumis.product(),"bxlumis");
979          else if(currentObject == "photons")             setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,photons.product(),"photons");
# Line 1051 | Line 1061 | OSUAnalysis::produce (edm::Event &event,
1061        if (verbose_>1) clog << " Event passed cuts up to cut index " << currentCutIndex << endl;  
1062  
1063      }
1064 <    //applying all appropriate scale factors
1055 <    double scaleFactor = masterScaleFactor;
1064 >    //applying all appropriate scale factors for individual objects
1065      muonScaleFactor_ = electronScaleFactor_ = bTagScaleFactor_ = 1.0;
1066  
1067      if(applyLeptonSF_ && datasetType_ != "data"){
# Line 1110 | Line 1119 | OSUAnalysis::produce (edm::Event &event,
1119          bTagScaleFactor_ *= bTagSFWeight_->weight( jetSFs, minBtag_);
1120        }
1121      }
1122 <    scaleFactor *= muonScaleFactor_;
1123 <    scaleFactor *= electronScaleFactor_;
1124 <    scaleFactor *= bTagScaleFactor_;
1125 <    cutFlows_.at(currentChannelIndex)->fillCutFlow(scaleFactor);
1122 >    eventScaleFactor_ *= muonScaleFactor_;
1123 >    eventScaleFactor_ *= electronScaleFactor_;
1124 >    eventScaleFactor_ *= bTagScaleFactor_;
1125 >    cutFlows_.at(currentChannelIndex)->fillCutFlow(eventScaleFactor_);
1126      if (verbose_>1) clog << " Scale factors applied:  "
1127                           << " muonScaleFactor_ = " << muonScaleFactor_
1128                           << ", electronScaleFactor_ = " << electronScaleFactor_
1129                           << ", bTagScaleFactor_ = " << bTagScaleFactor_
1130 <                         << ", total scale factor = " << scaleFactor
1130 >                         << ", total scale factor = " << eventScaleFactor_
1131                           << endl;  
1132  
1133  
# Line 1162 | Line 1171 | OSUAnalysis::produce (edm::Event &event,
1171            if(currentHistogram.inputVariables.size() == 1){
1172              TH1D* histo;
1173              histo = oneDHists_.at(currentChannelIndex).at(currentCut).at(currentHistogram.name);
1174 <            if     (currentHistogram.inputCollection == "jets")            fill1DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("jets").at(currentDir),scaleFactor);
1175 <            else if(currentHistogram.inputCollection == "secondary jets")  fill1DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("secondary jets").at(currentDir),scaleFactor);
1176 <            else if(currentHistogram.inputCollection == "secondary photons")  fill1DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("secondary photons").at(currentDir),scaleFactor);
1177 <            else if(currentHistogram.inputCollection == "muons")           fill1DHistogram(histo,currentHistogram,muons.product(),cumulativeFlags.at("muons").at(currentDir),scaleFactor);
1178 <            else if(currentHistogram.inputCollection == "secondary muons") fill1DHistogram(histo,currentHistogram,secMuons.product(),cumulativeFlags.at("secondary muons").at(currentDir),scaleFactor);
1179 <            else if(currentHistogram.inputCollection == "secondary electrons") fill1DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("secondary electrons").at(currentDir),scaleFactor);
1174 >            if     (currentHistogram.inputCollection == "jets")            fill1DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("jets").at(currentDir),eventScaleFactor_);
1175 >            else if(currentHistogram.inputCollection == "secondary jets")  fill1DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("secondary jets").at(currentDir),eventScaleFactor_);
1176 >            else if(currentHistogram.inputCollection == "secondary photons")  fill1DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("secondary photons").at(currentDir),eventScaleFactor_);
1177 >            else if(currentHistogram.inputCollection == "muons")           fill1DHistogram(histo,currentHistogram,muons.product(),cumulativeFlags.at("muons").at(currentDir),eventScaleFactor_);
1178 >            else if(currentHistogram.inputCollection == "secondary muons") fill1DHistogram(histo,currentHistogram,secMuons.product(),cumulativeFlags.at("secondary muons").at(currentDir),eventScaleFactor_);
1179 >            else if(currentHistogram.inputCollection == "secondary electrons") fill1DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("secondary electrons").at(currentDir),eventScaleFactor_);
1180              else if(currentHistogram.inputCollection == "muon-muon pairs") fill1DHistogram(histo,currentHistogram,muons.product(),muons.product(),
1181 <                                                                                           cumulativeFlags.at("muon-muon pairs").at(currentDir),scaleFactor);
1181 >                                                                                           cumulativeFlags.at("muon-muon pairs").at(currentDir),eventScaleFactor_);
1182              else if(currentHistogram.inputCollection == "muon-secondary muon pairs") fill1DHistogram(histo,currentHistogram,muons.product(),secMuons.product(),
1183 <                                                                                                     cumulativeFlags.at("muon-secondary muon pairs").at(currentDir),scaleFactor);
1183 >                                                                                                     cumulativeFlags.at("muon-secondary muon pairs").at(currentDir),eventScaleFactor_);
1184               else if(currentHistogram.inputCollection == "muon-secondary photon pairs") fill1DHistogram(histo,currentHistogram,muons.product(),photons.product(),
1185 <                                                                                                     cumulativeFlags.at("muon-secondary photon pairs").at(currentDir),scaleFactor);
1185 >                                                                                                     cumulativeFlags.at("muon-secondary photon pairs").at(currentDir),eventScaleFactor_);
1186               else if(currentHistogram.inputCollection == "muon-secondary jet pairs") fill1DHistogram(histo,currentHistogram,muons.product(),jets.product(),
1187 <                                                                                                     cumulativeFlags.at("muon-secondary jet pairs").at(currentDir),scaleFactor);
1187 >                                                                                                     cumulativeFlags.at("muon-secondary jet pairs").at(currentDir),eventScaleFactor_);
1188               else if(currentHistogram.inputCollection == "photon-secondary jet pairs") fill1DHistogram(histo,currentHistogram,photons.product(),jets.product(),
1189 <                                                                                                     cumulativeFlags.at("photon-secondary jet pairs").at(currentDir),scaleFactor);
1189 >                                                                                                     cumulativeFlags.at("photon-secondary jet pairs").at(currentDir),eventScaleFactor_);
1190               else if(currentHistogram.inputCollection == "electron-secondary jet pairs") fill1DHistogram(histo,currentHistogram,electrons.product(),jets.product(),
1191 <                                                                                                     cumulativeFlags.at("electron-secondary jet pairs").at(currentDir),scaleFactor);
1191 >                                                                                                     cumulativeFlags.at("electron-secondary jet pairs").at(currentDir),eventScaleFactor_);
1192  
1193 <            else if(currentHistogram.inputCollection == "electrons") fill1DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("electrons").at(currentDir),scaleFactor);
1193 >            else if(currentHistogram.inputCollection == "electrons") fill1DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("electrons").at(currentDir),eventScaleFactor_);
1194              else if(currentHistogram.inputCollection == "electron-electron pairs") fill1DHistogram(histo,currentHistogram,electrons.product(),electrons.product(),
1195 <                                                                                                   cumulativeFlags.at("electron-electron pairs").at(currentDir),scaleFactor);
1195 >                                                                                                   cumulativeFlags.at("electron-electron pairs").at(currentDir),eventScaleFactor_);
1196              else if(currentHistogram.inputCollection == "jet-jet pairs") fill1DHistogram(histo,currentHistogram,jets.product(),jets.product(),
1197 <                                                                                         cumulativeFlags.at("jet-jet pairs").at(currentDir),scaleFactor);
1197 >                                                                                         cumulativeFlags.at("jet-jet pairs").at(currentDir),eventScaleFactor_);
1198               else if(currentHistogram.inputCollection == "jet-secondary jet pairs") fill1DHistogram(histo,currentHistogram,jets.product(),jets.product(),
1199 <                                                                                                     cumulativeFlags.at("jet-secondary jet pairs").at(currentDir),scaleFactor);
1199 >                                                                                                     cumulativeFlags.at("jet-secondary jet pairs").at(currentDir),eventScaleFactor_);
1200  
1201              else if(currentHistogram.inputCollection == "electron-secondary electron pairs") fill1DHistogram(histo,currentHistogram,electrons.product(),electrons.product(),
1202 <                                                                                                             cumulativeFlags.at("electron-secondary electron pairs").at(currentDir),scaleFactor);
1202 >                                                                                                             cumulativeFlags.at("electron-secondary electron pairs").at(currentDir),eventScaleFactor_);
1203              else if(currentHistogram.inputCollection == "electron-muon pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),muons.product(),
1204 <                                                                                               cumulativeFlags.at("electron-muon pairs").at(currentDir),scaleFactor);
1204 >                                                                                               cumulativeFlags.at("electron-muon pairs").at(currentDir),eventScaleFactor_);
1205              else if(currentHistogram.inputCollection == "electron-jet pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),jets.product(),
1206 <                                                                                              cumulativeFlags.at("electron-jet pairs").at(currentDir),scaleFactor);
1206 >                                                                                              cumulativeFlags.at("electron-jet pairs").at(currentDir),eventScaleFactor_);
1207              else if(currentHistogram.inputCollection == "photon-jet pairs") fill1DHistogram(histo,currentHistogram, photons.product(),jets.product(),
1208 <                                                                                              cumulativeFlags.at("photon-jet pairs").at(currentDir),scaleFactor);
1208 >                                                                                              cumulativeFlags.at("photon-jet pairs").at(currentDir),eventScaleFactor_);
1209              else if(currentHistogram.inputCollection == "muon-jet pairs") fill1DHistogram(histo,currentHistogram, muons.product(),jets.product(),
1210 <                                                                                          cumulativeFlags.at("muon-jet pairs").at(currentDir),scaleFactor);
1210 >                                                                                          cumulativeFlags.at("muon-jet pairs").at(currentDir),eventScaleFactor_);
1211              else if(currentHistogram.inputCollection == "muon-event pairs") fill1DHistogram(histo,currentHistogram, muons.product(),events.product(),
1212 <                                                                                          cumulativeFlags.at("muon-event pairs").at(currentDir),scaleFactor);
1212 >                                                                                          cumulativeFlags.at("muon-event pairs").at(currentDir),eventScaleFactor_);
1213              else if(currentHistogram.inputCollection == "met-jet pairs")  fill1DHistogram(histo,currentHistogram, mets.product(),jets.product(),
1214 <                                                                                          cumulativeFlags.at("met-jet pairs").at(currentDir),scaleFactor);
1214 >                                                                                          cumulativeFlags.at("met-jet pairs").at(currentDir),eventScaleFactor_);
1215              else if(currentHistogram.inputCollection == "track-jet pairs")  fill1DHistogram(histo,currentHistogram,tracks.product(),jets.product(),
1216 <                                                                                          cumulativeFlags.at("track-jet pairs").at(currentDir),scaleFactor);
1216 >                                                                                          cumulativeFlags.at("track-jet pairs").at(currentDir),eventScaleFactor_);
1217              else if(currentHistogram.inputCollection == "muon-photon pairs") fill1DHistogram(histo,currentHistogram, muons.product(),photons.product(),
1218 <                                                                                          cumulativeFlags.at("muon-photon pairs").at(currentDir),scaleFactor);
1218 >                                                                                          cumulativeFlags.at("muon-photon pairs").at(currentDir),eventScaleFactor_);
1219              else if(currentHistogram.inputCollection == "electron-photon pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),photons.product(),
1220 <                                                                                          cumulativeFlags.at("electron-photon pairs").at(currentDir),scaleFactor);
1220 >                                                                                          cumulativeFlags.at("electron-photon pairs").at(currentDir),eventScaleFactor_);
1221              else if(currentHistogram.inputCollection == "electron-track pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),tracks.product(),
1222 <                                                                                                cumulativeFlags.at("electron-track pairs").at(currentDir),scaleFactor);
1222 >                                                                                                cumulativeFlags.at("electron-track pairs").at(currentDir),eventScaleFactor_);
1223              else if(currentHistogram.inputCollection == "muon-track pairs") fill1DHistogram(histo,currentHistogram, muons.product(),tracks.product(),
1224 <                                                                                            cumulativeFlags.at("muon-track pairs").at(currentDir),scaleFactor);
1224 >                                                                                            cumulativeFlags.at("muon-track pairs").at(currentDir),eventScaleFactor_);
1225              else if(currentHistogram.inputCollection == "secondary muon-track pairs") fill1DHistogram(histo,currentHistogram, secMuons.product(),tracks.product(),
1226 <                                                                                            cumulativeFlags.at("secondary muon-track pairs").at(currentDir),scaleFactor);
1226 >                                                                                            cumulativeFlags.at("secondary muon-track pairs").at(currentDir),eventScaleFactor_);
1227              else if(currentHistogram.inputCollection == "muon-tau pairs") fill1DHistogram(histo,currentHistogram, muons.product(),taus.product(),
1228 <                                                                                          cumulativeFlags.at("muon-tau pairs").at(currentDir),scaleFactor);
1228 >                                                                                          cumulativeFlags.at("muon-tau pairs").at(currentDir),eventScaleFactor_);
1229              else if(currentHistogram.inputCollection == "tau-tau pairs") fill1DHistogram(histo,currentHistogram, taus.product(),taus.product(),
1230 <                                                                                         cumulativeFlags.at("tau-tau pairs").at(currentDir),scaleFactor);
1230 >                                                                                         cumulativeFlags.at("tau-tau pairs").at(currentDir),eventScaleFactor_);
1231              else if(currentHistogram.inputCollection == "tau-track pairs") fill1DHistogram(histo,currentHistogram, taus.product(),tracks.product(),
1232 <                                                                                           cumulativeFlags.at("tau-track pairs").at(currentDir),scaleFactor);
1232 >                                                                                           cumulativeFlags.at("tau-track pairs").at(currentDir),eventScaleFactor_);
1233              else if(currentHistogram.inputCollection == "electron-trigobj pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),trigobjs.product(),
1234 <                                                                                                  cumulativeFlags.at("electron-trigobj pairs").at(currentDir),scaleFactor);
1234 >                                                                                                  cumulativeFlags.at("electron-trigobj pairs").at(currentDir),eventScaleFactor_);
1235              else if(currentHistogram.inputCollection == "muon-trigobj pairs") fill1DHistogram(histo,currentHistogram, muons.product(),trigobjs.product(),
1236 <                                                                                              cumulativeFlags.at("muon-trigobj pairs").at(currentDir),scaleFactor);
1236 >                                                                                              cumulativeFlags.at("muon-trigobj pairs").at(currentDir),eventScaleFactor_);
1237  
1238 <            else if(currentHistogram.inputCollection == "events") fill1DHistogram(histo,currentHistogram,events.product(),cumulativeFlags.at("events").at(currentDir),scaleFactor);
1239 <            else if(currentHistogram.inputCollection == "taus") fill1DHistogram(histo,currentHistogram,taus.product(),cumulativeFlags.at("taus").at(currentDir),scaleFactor);
1240 <            else if(currentHistogram.inputCollection == "mets") fill1DHistogram(histo,currentHistogram,mets.product(),cumulativeFlags.at("mets").at(currentDir),scaleFactor);
1241 <            else if(currentHistogram.inputCollection == "tracks") fill1DHistogram(histo,currentHistogram,tracks.product(),cumulativeFlags.at("tracks").at(currentDir),scaleFactor);
1242 <            else if(currentHistogram.inputCollection == "genjets") fill1DHistogram(histo,currentHistogram,genjets.product(),cumulativeFlags.at("genjets").at(currentDir),scaleFactor);
1243 <            else if(currentHistogram.inputCollection == "mcparticles") fill1DHistogram(histo,currentHistogram,mcparticles.product(),cumulativeFlags.at("mcparticles").at(currentDir),scaleFactor);
1244 <            else if(currentHistogram.inputCollection == "primaryvertexs") fill1DHistogram(histo,currentHistogram,primaryvertexs.product(),cumulativeFlags.at("primaryvertexs").at(currentDir),scaleFactor);
1245 <            else if(currentHistogram.inputCollection == "bxlumis") fill1DHistogram(histo,currentHistogram,bxlumis.product(),cumulativeFlags.at("bxlumis").at(currentDir),scaleFactor);
1246 <            else if(currentHistogram.inputCollection == "photons") fill1DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("photons").at(currentDir),scaleFactor);
1247 <            else if(currentHistogram.inputCollection == "superclusters") fill1DHistogram(histo,currentHistogram,superclusters.product(),cumulativeFlags.at("superclusters").at(currentDir),scaleFactor);
1248 <            else if(currentHistogram.inputCollection == "trigobjs") fill1DHistogram(histo,currentHistogram,trigobjs.product(),cumulativeFlags.at("trigobjs").at(currentDir),scaleFactor);
1249 <            else if(currentHistogram.inputCollection == "stops" && datasetType_ == "signalMC") fill1DHistogram(histo,currentHistogram,stops.product(),cumulativeFlags.at("stops").at(currentDir),scaleFactor);
1238 >            else if(currentHistogram.inputCollection == "events") fill1DHistogram(histo,currentHistogram,events.product(),cumulativeFlags.at("events").at(currentDir),eventScaleFactor_);
1239 >            else if(currentHistogram.inputCollection == "taus") fill1DHistogram(histo,currentHistogram,taus.product(),cumulativeFlags.at("taus").at(currentDir),eventScaleFactor_);
1240 >            else if(currentHistogram.inputCollection == "mets") fill1DHistogram(histo,currentHistogram,mets.product(),cumulativeFlags.at("mets").at(currentDir),eventScaleFactor_);
1241 >            else if(currentHistogram.inputCollection == "tracks") fill1DHistogram(histo,currentHistogram,tracks.product(),cumulativeFlags.at("tracks").at(currentDir),eventScaleFactor_);
1242 >            else if(currentHistogram.inputCollection == "genjets") fill1DHistogram(histo,currentHistogram,genjets.product(),cumulativeFlags.at("genjets").at(currentDir),eventScaleFactor_);
1243 >            else if(currentHistogram.inputCollection == "mcparticles") fill1DHistogram(histo,currentHistogram,mcparticles.product(),cumulativeFlags.at("mcparticles").at(currentDir),eventScaleFactor_);
1244 >            else if(currentHistogram.inputCollection == "secondary mcparticles") fill1DHistogram(histo,currentHistogram,mcparticles.product(),cumulativeFlags.at("secondary mcparticles").at(currentDir),eventScaleFactor_);
1245 >            else if(currentHistogram.inputCollection == "primaryvertexs") fill1DHistogram(histo,currentHistogram,primaryvertexs.product(),cumulativeFlags.at("primaryvertexs").at(currentDir),eventScaleFactor_);
1246 >            else if(currentHistogram.inputCollection == "bxlumis") fill1DHistogram(histo,currentHistogram,bxlumis.product(),cumulativeFlags.at("bxlumis").at(currentDir),eventScaleFactor_);
1247 >            else if(currentHistogram.inputCollection == "photons") fill1DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("photons").at(currentDir),eventScaleFactor_);
1248 >            else if(currentHistogram.inputCollection == "superclusters") fill1DHistogram(histo,currentHistogram,superclusters.product(),cumulativeFlags.at("superclusters").at(currentDir),eventScaleFactor_);
1249 >            else if(currentHistogram.inputCollection == "trigobjs") fill1DHistogram(histo,currentHistogram,trigobjs.product(),cumulativeFlags.at("trigobjs").at(currentDir),eventScaleFactor_);
1250 >            else if(currentHistogram.inputCollection == "stops" && datasetType_ == "signalMC") fill1DHistogram(histo,currentHistogram,stops.product(),cumulativeFlags.at("stops").at(currentDir),eventScaleFactor_);
1251            }
1252            else if(currentHistogram.inputVariables.size() == 2){
1253              TH2D* histo;
1254              histo = twoDHists_.at(currentChannelIndex).at(currentCut).at(currentHistogram.name);
1255 <            if     (currentHistogram.inputCollection == "jets")            fill2DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("jets").at(currentDir),scaleFactor);
1256 <            else if(currentHistogram.inputCollection == "secondary jets")  fill2DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("secondary jets").at(currentDir),scaleFactor);
1257 <            else if(currentHistogram.inputCollection == "secondary photons")  fill2DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("secondary photons").at(currentDir),scaleFactor);
1258 <            else if(currentHistogram.inputCollection == "muons")           fill2DHistogram(histo,currentHistogram,muons.product(),cumulativeFlags.at("muons").at(currentDir),scaleFactor);
1259 <            else if(currentHistogram.inputCollection == "secondary muons") fill2DHistogram(histo,currentHistogram,secMuons.product(),cumulativeFlags.at("secondary muons").at(currentDir),scaleFactor);
1255 >            if     (currentHistogram.inputCollection == "jets")            fill2DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("jets").at(currentDir),eventScaleFactor_);
1256 >            else if(currentHistogram.inputCollection == "secondary jets")  fill2DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("secondary jets").at(currentDir),eventScaleFactor_);
1257 >            else if(currentHistogram.inputCollection == "secondary photons")  fill2DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("secondary photons").at(currentDir),eventScaleFactor_);
1258 >            else if(currentHistogram.inputCollection == "muons")           fill2DHistogram(histo,currentHistogram,muons.product(),cumulativeFlags.at("muons").at(currentDir),eventScaleFactor_);
1259 >            else if(currentHistogram.inputCollection == "secondary muons") fill2DHistogram(histo,currentHistogram,secMuons.product(),cumulativeFlags.at("secondary muons").at(currentDir),eventScaleFactor_);
1260              else if(currentHistogram.inputCollection == "muon-muon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),muons.product(),
1261 <                                                                                           cumulativeFlags.at("muon-muon pairs").at(currentDir),scaleFactor);
1261 >                                                                                           cumulativeFlags.at("muon-muon pairs").at(currentDir),eventScaleFactor_);
1262              else if(currentHistogram.inputCollection == "muon-secondary muon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),secMuons.product(),
1263 <                                                                                                     cumulativeFlags.at("muon-secondary muon pairs").at(currentDir),scaleFactor);
1263 >                                                                                                     cumulativeFlags.at("muon-secondary muon pairs").at(currentDir),eventScaleFactor_);
1264              else if(currentHistogram.inputCollection == "muon-secondary photon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),photons.product(),
1265 <                                                                                                     cumulativeFlags.at("muon-secondary photon pairs").at(currentDir),scaleFactor);
1265 >                                                                                                     cumulativeFlags.at("muon-secondary photon pairs").at(currentDir),eventScaleFactor_);
1266              else if(currentHistogram.inputCollection == "muon-secondary jet pairs") fill2DHistogram(histo,currentHistogram,muons.product(),jets.product(),
1267 <                                                                                                     cumulativeFlags.at("muon-secondary jet pairs").at(currentDir),scaleFactor);
1267 >                                                                                                     cumulativeFlags.at("muon-secondary jet pairs").at(currentDir),eventScaleFactor_);
1268              else if(currentHistogram.inputCollection == "electron-secondary jet pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),jets.product(),
1269 <                                                                                                     cumulativeFlags.at("electron-secondary jet pairs").at(currentDir),scaleFactor);
1269 >                                                                                                     cumulativeFlags.at("electron-secondary jet pairs").at(currentDir),eventScaleFactor_);
1270              else if(currentHistogram.inputCollection == "photon-secondary jet pairs") fill2DHistogram(histo,currentHistogram,photons.product(),jets.product(),
1271 <                                                                                                     cumulativeFlags.at("photon-secondary jet pairs").at(currentDir),scaleFactor);
1272 <            else if(currentHistogram.inputCollection == "electrons") fill2DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("electrons").at(currentDir),scaleFactor);
1273 <            else if(currentHistogram.inputCollection == "secondary electrons") fill2DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("secondary electrons").at(currentDir),scaleFactor);
1271 >                                                                                                     cumulativeFlags.at("photon-secondary jet pairs").at(currentDir),eventScaleFactor_);
1272 >            else if(currentHistogram.inputCollection == "electrons") fill2DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("electrons").at(currentDir),eventScaleFactor_);
1273 >            else if(currentHistogram.inputCollection == "secondary electrons") fill2DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("secondary electrons").at(currentDir),eventScaleFactor_);
1274              else if(currentHistogram.inputCollection == "electron-electron pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),electrons.product(),
1275 <                                                                                                   cumulativeFlags.at("electron-electron pairs").at(currentDir),scaleFactor);
1275 >                                                                                                   cumulativeFlags.at("electron-electron pairs").at(currentDir),eventScaleFactor_);
1276              else if(currentHistogram.inputCollection == "jet-jet pairs") fill2DHistogram(histo,currentHistogram,jets.product(),jets.product(),
1277 <                                                                                         cumulativeFlags.at("jet-jet pairs").at(currentDir),scaleFactor);
1277 >                                                                                         cumulativeFlags.at("jet-jet pairs").at(currentDir),eventScaleFactor_);
1278              else if(currentHistogram.inputCollection == "electron-secondary electron pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),electrons.product(),
1279 <                                                                                                             cumulativeFlags.at("electron-secondary electron pairs").at(currentDir),scaleFactor);
1279 >                                                                                                             cumulativeFlags.at("electron-secondary electron pairs").at(currentDir),eventScaleFactor_);
1280              else if(currentHistogram.inputCollection == "electron-muon pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),muons.product(),
1281 <                                                                                               cumulativeFlags.at("electron-muon pairs").at(currentDir),scaleFactor);
1281 >                                                                                               cumulativeFlags.at("electron-muon pairs").at(currentDir),eventScaleFactor_);
1282              else if(currentHistogram.inputCollection == "electron-jet pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),jets.product(),
1283 <                                                                                              cumulativeFlags.at("electron-jet pairs").at(currentDir),scaleFactor);
1283 >                                                                                              cumulativeFlags.at("electron-jet pairs").at(currentDir),eventScaleFactor_);
1284              else if(currentHistogram.inputCollection == "electron-photon pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),photons.product(),
1285 <                                                                                              cumulativeFlags.at("electron-photon pairs").at(currentDir),scaleFactor);
1285 >                                                                                              cumulativeFlags.at("electron-photon pairs").at(currentDir),eventScaleFactor_);
1286              else if(currentHistogram.inputCollection == "muon-jet pairs") fill2DHistogram(histo,currentHistogram,muons.product(),jets.product(),
1287 <                                                                                          cumulativeFlags.at("muon-jet pairs").at(currentDir),scaleFactor);
1287 >                                                                                          cumulativeFlags.at("muon-jet pairs").at(currentDir),eventScaleFactor_);
1288              else if(currentHistogram.inputCollection == "muon-event pairs") fill2DHistogram(histo,currentHistogram,muons.product(),events.product(),
1289 <                                                                                          cumulativeFlags.at("muon-event pairs").at(currentDir),scaleFactor);
1289 >                                                                                          cumulativeFlags.at("muon-event pairs").at(currentDir),eventScaleFactor_);
1290              else if(currentHistogram.inputCollection == "met-jet pairs") fill2DHistogram(histo,currentHistogram,mets.product(),jets.product(),
1291 <                                                                                         cumulativeFlags.at("met-jet pairs").at(currentDir),scaleFactor);
1291 >                                                                                         cumulativeFlags.at("met-jet pairs").at(currentDir),eventScaleFactor_);
1292              else if(currentHistogram.inputCollection == "track-jet pairs") fill2DHistogram(histo,currentHistogram,tracks.product(),jets.product(),
1293 <                                                                                         cumulativeFlags.at("track-jet pairs").at(currentDir),scaleFactor);
1293 >                                                                                         cumulativeFlags.at("track-jet pairs").at(currentDir),eventScaleFactor_);
1294              else if(currentHistogram.inputCollection == "photon-jet pairs") fill2DHistogram(histo,currentHistogram,photons.product(),jets.product(),
1295 <                                                                                          cumulativeFlags.at("photon-jet pairs").at(currentDir),scaleFactor);
1295 >                                                                                          cumulativeFlags.at("photon-jet pairs").at(currentDir),eventScaleFactor_);
1296              else if(currentHistogram.inputCollection == "muon-photon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),photons.product(),
1297 <                                                                                          cumulativeFlags.at("muon-photon pairs").at(currentDir),scaleFactor);
1297 >                                                                                          cumulativeFlags.at("muon-photon pairs").at(currentDir),eventScaleFactor_);
1298              else if(currentHistogram.inputCollection == "electron-track pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),tracks.product(),
1299 <                                                                                                cumulativeFlags.at("electron-track pairs").at(currentDir),scaleFactor);
1299 >                                                                                                cumulativeFlags.at("electron-track pairs").at(currentDir),eventScaleFactor_);
1300              else if(currentHistogram.inputCollection == "muon-track pairs") fill2DHistogram(histo,currentHistogram,muons.product(),tracks.product(),
1301 <                                                                                            cumulativeFlags.at("muon-track pairs").at(currentDir),scaleFactor);
1301 >                                                                                            cumulativeFlags.at("muon-track pairs").at(currentDir),eventScaleFactor_);
1302              else if(currentHistogram.inputCollection == "secondary muon-track pairs") fill2DHistogram(histo,currentHistogram,secMuons.product(),tracks.product(),
1303 <                                                                                            cumulativeFlags.at("muon-track pairs").at(currentDir),scaleFactor);
1303 >                                                                                            cumulativeFlags.at("muon-track pairs").at(currentDir),eventScaleFactor_);
1304              else if(currentHistogram.inputCollection == "muon-tau pairs") fill2DHistogram(histo,currentHistogram,muons.product(),taus.product(),
1305 <                                                                                          cumulativeFlags.at("muon-tau pairs").at(currentDir),scaleFactor);
1305 >                                                                                          cumulativeFlags.at("muon-tau pairs").at(currentDir),eventScaleFactor_);
1306              else if(currentHistogram.inputCollection == "tau-tau pairs") fill2DHistogram(histo,currentHistogram,taus.product(),taus.product(),
1307 <                                                                                         cumulativeFlags.at("tau-tau pairs").at(currentDir),scaleFactor);
1307 >                                                                                         cumulativeFlags.at("tau-tau pairs").at(currentDir),eventScaleFactor_);
1308              else if(currentHistogram.inputCollection == "tau-track pairs") fill2DHistogram(histo,currentHistogram,taus.product(),tracks.product(),
1309 <                                                                                           cumulativeFlags.at("tau-track pairs").at(currentDir),scaleFactor);
1309 >                                                                                           cumulativeFlags.at("tau-track pairs").at(currentDir),eventScaleFactor_);
1310              else if(currentHistogram.inputCollection == "electron-trigobj pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),trigobjs.product(),
1311 <                                                                                                  cumulativeFlags.at("electron-trigobj pairs").at(currentDir),scaleFactor);
1311 >                                                                                                  cumulativeFlags.at("electron-trigobj pairs").at(currentDir),eventScaleFactor_);
1312              else if(currentHistogram.inputCollection == "muon-trigobj pairs") fill2DHistogram(histo,currentHistogram,muons.product(),trigobjs.product(),
1313 <                                                                                              cumulativeFlags.at("muon-trigobj pairs").at(currentDir),scaleFactor);
1314 <            else if(currentHistogram.inputCollection == "events") fill2DHistogram(histo,currentHistogram,events.product(),cumulativeFlags.at("events").at(currentDir),scaleFactor);
1315 <            else if(currentHistogram.inputCollection == "taus") fill2DHistogram(histo,currentHistogram,taus.product(),cumulativeFlags.at("taus").at(currentDir),scaleFactor);
1316 <            else if(currentHistogram.inputCollection == "mets") fill2DHistogram(histo,currentHistogram,mets.product(),cumulativeFlags.at("mets").at(currentDir),scaleFactor);
1317 <            else if(currentHistogram.inputCollection == "tracks") fill2DHistogram(histo,currentHistogram,tracks.product(),cumulativeFlags.at("tracks").at(currentDir),scaleFactor);
1313 >                                                                                              cumulativeFlags.at("muon-trigobj pairs").at(currentDir),eventScaleFactor_);
1314 >            else if(currentHistogram.inputCollection == "events") fill2DHistogram(histo,currentHistogram,events.product(),cumulativeFlags.at("events").at(currentDir),eventScaleFactor_);
1315 >            else if(currentHistogram.inputCollection == "taus") fill2DHistogram(histo,currentHistogram,taus.product(),cumulativeFlags.at("taus").at(currentDir),eventScaleFactor_);
1316 >            else if(currentHistogram.inputCollection == "mets") fill2DHistogram(histo,currentHistogram,mets.product(),cumulativeFlags.at("mets").at(currentDir),eventScaleFactor_);
1317 >            else if(currentHistogram.inputCollection == "tracks") fill2DHistogram(histo,currentHistogram,tracks.product(),cumulativeFlags.at("tracks").at(currentDir),eventScaleFactor_);
1318              else if(currentHistogram.inputCollection == "track-event pairs") fill2DHistogram(histo,currentHistogram,tracks.product(),events.product(),
1319 <                                                                                             cumulativeFlags.at("track-event pairs").at(currentDir),scaleFactor);
1320 <            else if(currentHistogram.inputCollection == "genjets") fill2DHistogram(histo,currentHistogram,genjets.product(),cumulativeFlags.at("genjets").at(currentDir),scaleFactor);
1321 <            else if(currentHistogram.inputCollection == "mcparticles") fill2DHistogram(histo,currentHistogram,mcparticles.product(),cumulativeFlags.at("mcparticles").at(currentDir),scaleFactor);
1322 <            else if(currentHistogram.inputCollection == "primaryvertexs") fill2DHistogram(histo,currentHistogram,primaryvertexs.product(),cumulativeFlags.at("primaryvertexs").at(currentDir),scaleFactor);
1323 <            else if(currentHistogram.inputCollection == "bxlumis") fill2DHistogram(histo,currentHistogram,bxlumis.product(),cumulativeFlags.at("bxlumis").at(currentDir),scaleFactor);
1324 <            else if(currentHistogram.inputCollection == "photons") fill2DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("photons").at(currentDir),scaleFactor);
1325 <            else if(currentHistogram.inputCollection == "superclusters") fill2DHistogram(histo,currentHistogram,superclusters.product(),cumulativeFlags.at("superclusters").at(currentDir),scaleFactor);
1326 <            else if(currentHistogram.inputCollection == "trigobjs") fill2DHistogram(histo,currentHistogram,trigobjs.product(),cumulativeFlags.at("trigobjs").at(currentDir),scaleFactor);
1327 <            else if(currentHistogram.inputCollection == "stops" && datasetType_ == "signalMC") fill2DHistogram(histo,currentHistogram,stops.product(),cumulativeFlags.at("stops").at(currentDir),scaleFactor);
1319 >                                                                                             cumulativeFlags.at("track-event pairs").at(currentDir),eventScaleFactor_);
1320 >            else if(currentHistogram.inputCollection == "genjets") fill2DHistogram(histo,currentHistogram,genjets.product(),cumulativeFlags.at("genjets").at(currentDir),eventScaleFactor_);
1321 >            else if(currentHistogram.inputCollection == "mcparticles") fill2DHistogram(histo,currentHistogram,mcparticles.product(),cumulativeFlags.at("mcparticles").at(currentDir),eventScaleFactor_);
1322 >            else if(currentHistogram.inputCollection == "secondary mcparticles") fill2DHistogram(histo,currentHistogram,mcparticles.product(),cumulativeFlags.at("secondary mcparticles").at(currentDir),eventScaleFactor_);
1323 >            else if(currentHistogram.inputCollection == "primaryvertexs") fill2DHistogram(histo,currentHistogram,primaryvertexs.product(),cumulativeFlags.at("primaryvertexs").at(currentDir),eventScaleFactor_);
1324 >            else if(currentHistogram.inputCollection == "bxlumis") fill2DHistogram(histo,currentHistogram,bxlumis.product(),cumulativeFlags.at("bxlumis").at(currentDir),eventScaleFactor_);
1325 >            else if(currentHistogram.inputCollection == "photons") fill2DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("photons").at(currentDir),eventScaleFactor_);
1326 >            else if(currentHistogram.inputCollection == "superclusters") fill2DHistogram(histo,currentHistogram,superclusters.product(),cumulativeFlags.at("superclusters").at(currentDir),eventScaleFactor_);
1327 >            else if(currentHistogram.inputCollection == "trigobjs") fill2DHistogram(histo,currentHistogram,trigobjs.product(),cumulativeFlags.at("trigobjs").at(currentDir),eventScaleFactor_);
1328 >            else if(currentHistogram.inputCollection == "stops" && datasetType_ == "signalMC") fill2DHistogram(histo,currentHistogram,stops.product(),cumulativeFlags.at("stops").at(currentDir),eventScaleFactor_);
1329            }
1330  
1331          }
# Line 1381 | Line 1392 | OSUAnalysis::produce (edm::Event &event,
1392  
1393              if(objectToPlot == "primaryvertexs"){
1394                oneDHists_.at(currentChannelIndex).at(currentCut).at(histoName+"BeforePileupCorrection")->Fill(primaryvertexs->size());
1395 <              oneDHists_.at(currentChannelIndex).at(currentCut).at(histoName+"AfterPileupCorrection")->Fill(primaryvertexs->size(),scaleFactor);
1395 >              oneDHists_.at(currentChannelIndex).at(currentCut).at(histoName+"AfterPileupCorrection")->Fill(primaryvertexs->size(),eventScaleFactor_);
1396              }
1397              else {
1398                if (printEventInfo_) clog << "Number of selected " << objectToPlot << " to plot:  " << numToPlot << endl;  
1399 <              oneDHists_.at(currentChannelIndex).at(currentCut).at(histoName)->Fill(numToPlot,scaleFactor);
1399 >              oneDHists_.at(currentChannelIndex).at(currentCut).at(histoName)->Fill(numToPlot,eventScaleFactor_);
1400              }
1401            }
1402  
# Line 1415 | Line 1426 | OSUAnalysis::produce (edm::Event &event,
1426          else if(coll == "tracks")              assignTreeBranch(brSpecs,tracks.product(),        cumulativeFlags.at(coll).back());
1427          else if(coll == "genjets")             assignTreeBranch(brSpecs,genjets.product(),       cumulativeFlags.at(coll).back());
1428          else if(coll == "mcparticles")         assignTreeBranch(brSpecs,mcparticles.product(),   cumulativeFlags.at(coll).back());
1429 +        else if(coll == "sedconary mcparticles")assignTreeBranch(brSpecs,mcparticles.product(),   cumulativeFlags.at(coll).back());
1430          else if(coll == "primaryvertexs")      assignTreeBranch(brSpecs,primaryvertexs.product(),cumulativeFlags.at(coll).back());
1431          else if(coll == "bxlumis")             assignTreeBranch(brSpecs,bxlumis.product(),       cumulativeFlags.at(coll).back());
1432          else if(coll == "photons")             assignTreeBranch(brSpecs,photons.product(),       cumulativeFlags.at(coll).back());
# Line 1436 | Line 1448 | OSUAnalysis::produce (edm::Event &event,
1448  
1449    } // end loop over channel
1450  
1451 <  masterCutFlow_->fillCutFlow(masterScaleFactor);
1451 >  masterCutFlow_->fillCutFlow(eventScaleFactor_);
1452  
1453    event.put (channelDecisions, "channelDecisions");
1454  
# Line 1451 | Line 1463 | OSUAnalysis::produce (edm::Event &event,
1463   bool
1464   OSUAnalysis::evaluateComparison (double testValue, string comparison, double cutValue){
1465  
1466 +  bool returnValue;
1467 +
1468 +  if (verbose_>5) clog << "     deciding whether " << testValue << " " << comparison << " " << cutValue;
1469 +
1470 +  if(comparison == ">")       returnValue = testValue >  cutValue;
1471 +  else if(comparison == ">=") returnValue = testValue >= cutValue;
1472 +  else if(comparison == "<")  returnValue = testValue <  cutValue;
1473 +  else if(comparison == "<=") returnValue = testValue <= cutValue;
1474 +  else if(comparison == "==") returnValue = testValue == cutValue;
1475 +  else if(comparison == "=") returnValue = testValue == cutValue;
1476 +  else if(comparison == "!=") returnValue = testValue != cutValue;
1477 +  else {clog << "WARNING: invalid comparison operator '" << comparison << "'\n"; returnValue = false;}
1478  
1479 <  if(comparison == ">")       return testValue >  cutValue;
1456 <  else if(comparison == ">=") return testValue >= cutValue;
1457 <  else if(comparison == "<")  return testValue <  cutValue;
1458 <  else if(comparison == "<=") return testValue <= cutValue;
1459 <  else if(comparison == "==") return testValue == cutValue;
1460 <  else if(comparison == "=") return testValue == cutValue;
1461 <  else if(comparison == "!=") return testValue != cutValue;
1462 <  else {clog << "WARNING: invalid comparison operator '" << comparison << "'\n"; return false;}
1479 >  if (verbose_>5) clog << "; outcome is: " << returnValue << endl;
1480  
1481 +  return returnValue;
1482   }
1483  
1484   bool
1485   OSUAnalysis::evaluateComparison (string testValue, string comparison, string cutValue){
1486  
1487 +  bool returnValue;
1488 +
1489 +  if (verbose_>5) clog << "     deciding whether " << testValue << " " << comparison << " " << cutValue;
1490 +
1491 +  if(comparison == ">")       returnValue = testValue >  cutValue;
1492 +  else if(comparison == ">=") returnValue = testValue >= cutValue;
1493 +  else if(comparison == "<")  returnValue = testValue <  cutValue;
1494 +  else if(comparison == "<=") returnValue = testValue <= cutValue;
1495 +  else if(comparison == "==") returnValue = testValue == cutValue;
1496 +  else if(comparison == "=") returnValue = testValue == cutValue;
1497 +  else if(comparison == "!=") returnValue = testValue != cutValue;
1498 +  else {clog << "WARNING: invalid comparison operator '" << comparison << "'\n"; returnValue = false;}
1499  
1500 <  if(comparison == ">")       return testValue >  cutValue;
1501 <  else if(comparison == ">=") return testValue >= cutValue;
1502 <  else if(comparison == "<")  return testValue <  cutValue;
1473 <  else if(comparison == "<=") return testValue <= cutValue;
1474 <  else if(comparison == "==") return testValue == cutValue;
1475 <  else if(comparison == "=")  return testValue == cutValue;
1476 <  else if(comparison == "!=") return testValue != cutValue;
1477 <  else {clog << "WARNING: invalid comparison operator '" << comparison << "'\n"; return false;}
1500 >  if (verbose_>5) clog << "; outcome is: " << returnValue << endl;
1501 >
1502 >  return returnValue;
1503  
1504   }
1505  
# Line 1800 | Line 1825 | OSUAnalysis::valueLookup (const BNmuon*
1825    else if(variable == "neutralHadronIsoDR04") value = object->neutralHadronIsoDR04;
1826    else if(variable == "photonIsoDR04") value = object->photonIsoDR04;
1827    else if(variable == "puChargedHadronIsoDR04") value = object->puChargedHadronIsoDR04;
1803  else if(variable == "chargedHadronIsoDR04") value = object->chargedHadronIsoDR04;
1804  else if(variable == "neutralHadronIsoDR04") value = object->neutralHadronIsoDR04;
1805  else if(variable == "photonIsoDR04") value = object->photonIsoDR04;
1806  else if(variable == "puChargedHadronIsoDR04") value = object->puChargedHadronIsoDR04;
1828    else if(variable == "rhoPrime") value = object->rhoPrime;
1829    else if(variable == "AEffDr03") value = object->AEffDr03;
1830    else if(variable == "AEffDr04") value = object->AEffDr04;
# Line 1886 | Line 1907 | OSUAnalysis::valueLookup (const BNmuon*
1907    else if(variable == "correctedD0VertexSig") value =  object->correctedD0Vertex / hypot (object->tkD0err, hypot (chosenVertex ()->xError, chosenVertex ()->yError));
1908    else if(variable == "detIso") value = (object->trackIsoDR03) / object->pt;
1909    else if(variable == "relPFdBetaIso") value = (object->pfIsoR04SumChargedHadronPt + max(0.0, object->pfIsoR04SumNeutralHadronEt + object->pfIsoR04SumPhotonEt - 0.5*object->pfIsoR04SumPUPt)) / object->pt;
1910 +  else if(variable == "relPFdBetaIsoNew") value = (object->chargedHadronIsoDR04 + max(0.0, object->neutralHadronIsoDR04 + object->photonIsoDR04 - 0.5*object->puChargedHadronIsoDR04)) / object->pt;
1911    else if(variable == "relPFdBetaIsoPseudo") value = (object->pfIsoR04SumChargedHadronPt + object->pfIsoR04SumNeutralHadronEt + object->pfIsoR04SumPhotonEt - 0.5*object->pfIsoR04SumPUPt) / object->pt;
1912    else if(variable == "relPFrhoIso") value = ( object->chargedHadronIso + max(0.0, object->neutralHadronIso + object->photonIso - object->AEffDr03*object->rhoPrime) ) / object->pt;
1913    else if(variable == "metMT") {
# Line 2630 | Line 2652 | OSUAnalysis::valueLookup (const BNevent*
2652    else if(variable == "electronScaleFactor") value = electronScaleFactor_;
2653    else if(variable == "stopCTauScaleFactor") value = stopCTauScaleFactor_;
2654    else if(variable == "bTagScaleFactor") value = bTagScaleFactor_;
2655 <
2655 >  else if(variable == "topPtScaleFactor") value = topPtScaleFactor_;
2656 >  else if(variable == "eventScaleFactor") value = eventScaleFactor_;
2657    else if(variable == "unfilteredHt") value = getHt(jets.product());
2658    else if(variable == "ht") value = chosenHT ();
2659  
# Line 3024 | Line 3047 | OSUAnalysis::valueLookup (const BNtrack*
3047      }
3048      value = trkMuonDeltaRMin;  
3049    }  
3050 <
3051 <  else if(variable == "isPassMuonLooseIDVeto") {
3052 <
3053 <    // calculate minimum deltaR between track and any other loose-Id
3054 <    double trkMuonDeltaRMin = 99.;
3032 <    if (!muons.product()) clog << "ERROR:  cannot find deltaRMinMuonLooseId because muons collection is not initialized." << endl;
3033 <    for (uint imuon = 0; imuon<muons->size(); imuon++) {
3034 <      string empty = "";
3035 <      double isLooseIdMuon = valueLookup(&muons->at(imuon), "looseID", "", empty);
3036 <      if (!isLooseIdMuon) continue;  // only consider muons that pass the looseID                                
3037 <        double muonEta = valueLookup(&muons->at(imuon), "eta", "", empty);
3038 <        double muonPhi = valueLookup(&muons->at(imuon), "phi", "", empty);
3039 <        double trkMuonDeltaR = deltaR(object->eta, object->phi, muonEta, muonPhi);
3040 <        if (trkMuonDeltaR < trkMuonDeltaRMin) trkMuonDeltaRMin = trkMuonDeltaR;
3041 <    }
3042 <    if (trkMuonDeltaRMin  < 0.15) value = 1;
3043 <    if (trkMuonDeltaRMin  > 0.15) value = 0;
3050 >  else if(variable == "isPassMuonLooseID") {
3051 >    string empty = "";
3052 >    double trkMuonDeltaRMin = valueLookup(object, "deltaRMinMuonLooseId", "", empty);
3053 >    if (trkMuonDeltaRMin  < 0.15) value = 1;  
3054 >    else                          value = 0;    
3055    }
3045
3046
3047  
3056    else if(variable == "deltaRMinSecMuonLooseIdGlobal") {
3057      // calculate minimum deltaR between track and any other loose-Id muon
3058      double trkMuonDeltaRMin = 99.;  
# Line 3252 | Line 3260 | OSUAnalysis::valueLookup (const BNmcpart
3260    else if(variable == "grandMother11Status") value = object->grandMother11Status;
3261    else if(variable == "grandMother11Charge") value = object->grandMother11Charge;
3262  
3263 +
3264    //user-defined variables
3265 <  else if (variable == "d0"){
3265 >  else if(variable == "genMatchedPdgGrandmotherId"){
3266 >    if(fabs(object->motherId) == 15){
3267 >      int motherIndex = findTauMotherIndex(object);
3268 >      if(motherIndex == -1) value = 0;
3269 >      else value = mcparticles->at(motherIndex).motherId;
3270 >    }
3271 >    else value = object->grandMotherId;
3272 >  }
3273 >
3274 >
3275 >
3276 >
3277 >
3278 >  else if(variable == "genMatchedId") value = getPdgIdBinValue(object->id);
3279 >  else if(variable == "genMatchedMotherId") value = getPdgIdBinValue(object->motherId);
3280 >  else if(variable == "genMatchedMotherIdReverse") value = 24 - getPdgIdBinValue(object->motherId);
3281 >  else if(variable == "genMatchedGrandmotherId"){
3282 >    if(fabs(object->motherId) == 15){
3283 >      int motherIndex = findTauMotherIndex(object);
3284 >      if(motherIndex == -1) value = 0;
3285 >      else value = getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
3286 >    }
3287 >    else value = getPdgIdBinValue(object->grandMotherId);
3288 >  }
3289 >  else if(variable == "genMatchedGrandmotherIdReverse"){
3290 >    if(fabs(object->motherId) == 15){
3291 >      int motherIndex = findTauMotherIndex(object);
3292 >      if(motherIndex == -1) value = 0;
3293 >      else value = 24 - getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
3294 >    }
3295 >    else value = 24 - getPdgIdBinValue(object->grandMotherId);
3296 >  }
3297 >
3298 >
3299 >
3300 >  else if (variable == "d0Vertex"){
3301      double vx = object->vx - chosenVertex ()->x,
3302        vy = object->vy - chosenVertex ()->y,
3303        px = object->px,
# Line 3261 | Line 3305 | OSUAnalysis::valueLookup (const BNmcpart
3305        pt = object->pt;
3306      value = (-vx * py + vy * px) / pt;
3307    }
3308 +  else if (variable == "d0Beamspot"){
3309 +    double vx = object->vx - events->at(0).BSx,
3310 +      vy = object->vy - events->at(0).BSy,
3311 +      px = object->px,
3312 +      py = object->py,
3313 +      pt = object->pt;
3314 +    value = (-vx * py + vy * px) / pt;
3315 +  }
3316 +  else if (variable == "d0Origin"){
3317 +    double vx = object->vx,
3318 +      vy = object->vy,
3319 +      px = object->px,
3320 +      py = object->py,
3321 +      pt = object->pt;
3322 +    value = (-vx * py + vy * px) / pt;
3323 +  }
3324 +
3325    else if (variable == "dz"){
3326      double vx = object->vx - chosenVertex ()->x,
3327        vy = object->vy - chosenVertex ()->y,
# Line 4599 | Line 4660 | void OSUAnalysis::setObjectFlags(cut &cu
4660  
4661        vector<bool> subcutDecisions;
4662        for( int subcutIndex = 0; subcutIndex != currentCut.numSubcuts; subcutIndex++){
4663 <        string stringValue = "";
4663 >        string stringValue = "";//!!!!
4664          double value = valueLookup(&inputCollection->at(object), currentCut.variables.at(subcutIndex), currentCut.functions.at(subcutIndex), stringValue);
4665          if (stringValue == "") subcutDecisions.push_back(evaluateComparison(value,currentCut.comparativeOperators.at(subcutIndex),currentCut.cutValues.at(subcutIndex)));
4666          else subcutDecisions.push_back(evaluateComparison(stringValue,currentCut.comparativeOperators.at(subcutIndex),currentCut.cutStringValues.at(subcutIndex)));
# Line 4607 | Line 4668 | void OSUAnalysis::setObjectFlags(cut &cu
4668        }
4669        if(currentCut.numSubcuts == 1) cutDecision = subcutDecisions.at(0);
4670        else{
4671 <        bool tempDecision = true;
4672 <        for( int subcutIndex = 0;subcutIndex != currentCut.numSubcuts-1; subcutIndex++){
4673 <          if(currentCut.logicalOperators.at(subcutIndex) == "&" || currentCut.logicalOperators.at(subcutIndex) == "&&")
4674 <            tempDecision = subcutDecisions.at(subcutIndex) && subcutDecisions.at(subcutIndex+1);
4675 <          else if(currentCut.logicalOperators.at(subcutIndex) == "|"|| currentCut.logicalOperators.at(subcutIndex) == "||")
4676 <            tempDecision = subcutDecisions.at(subcutIndex) || subcutDecisions.at(subcutIndex+1);
4677 <        }
4678 <        cutDecision = tempDecision;
4671 >        bool tempDecision = subcutDecisions.at(0);
4672 >        for( int subcutIndex = 1; subcutIndex < currentCut.numSubcuts; subcutIndex++){
4673 >          if(currentCut.logicalOperators.at(subcutIndex-1) == "&" || currentCut.logicalOperators.at(subcutIndex-1) == "&&")
4674 >            tempDecision = tempDecision && subcutDecisions.at(subcutIndex);
4675 >          else if(currentCut.logicalOperators.at(subcutIndex-1) == "|"|| currentCut.logicalOperators.at(subcutIndex-1) == "||")
4676 >            tempDecision = tempDecision || subcutDecisions.at(subcutIndex);
4677 >        }
4678 >        cutDecision = tempDecision;
4679        }
4680        //invert the cut if this cut is a veto
4681        if(currentCut.isVeto) cutDecision = !cutDecision;
4682        plotDecision = cutDecision;
4683      }
4684  
4685 +    if (verbose_>4) clog << "     individual flag: " << cutDecision << endl;
4686      individualFlags.at(inputType).at(currentCutIndex).push_back(make_pair(cutDecision,plotDecision));
4687  
4688      //set flags for objects that pass this cut AND all the previous cuts
# Line 4637 | Line 4699 | void OSUAnalysis::setObjectFlags(cut &cu
4699      }
4700      previousCumulativePlotFlag = previousCumulativePlotFlag && plotDecision;
4701  
4702 +    if (verbose_>4) clog << "     cumulative flag: " << previousCumulativeCutFlag << endl;
4703      cumulativeFlags.at(inputType).at(currentCutIndex).push_back(make_pair(previousCumulativeCutFlag,previousCumulativePlotFlag));
4704  
4705    }  //   for (uint object = 0; object != inputCollection->size(); object++){
# Line 5338 | Line 5401 | OSUAnalysis::leadElectronPair ()
5401    return leadElectronPair;
5402   }
5403  
5404 +
5405 + //lifted from BEANHelper.cc
5406 + double
5407 + OSUAnalysis::getTopPtWeight()
5408 + {
5409 +  double topPt = -1.0;
5410 +
5411 +  for(BNmcparticleCollection::const_iterator mcparticle = mcparticles->begin (); mcparticle != mcparticles->end (); mcparticle++){
5412 +    if(mcparticle->status == 3 && mcparticle->id == 6){
5413 +      topPt = mcparticle->pt;
5414 +      break;
5415 +    }
5416 +  }
5417 +
5418 +  if( topPt<0 ) return 1;
5419 +
5420 +  double p0 = 1.18246e+00;
5421 +  double p1 = 4.63312e+02;
5422 +  double p2 = 2.10061e-06;
5423 +
5424 +  if( topPt>p1 ) topPt = p1;
5425 +
5426 +  double result = p0 + p2 * topPt * ( topPt - 2 * p1 );
5427 +  return result;
5428 +
5429 + }
5430 +
5431   DEFINE_FWK_MODULE(OSUAnalysis);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines