12 using namespace trigger;
15 resetMe_(
true), currentRun_(-99)
17 LogDebug(
"FourVectorHLTriggerOffline") <<
"constructor...." ;
21 LogInfo(
"FourVectorHLTriggerOffline") <<
"unabel to get DQMStore service?";
28 std::string(
"HLT/FourVector/"));
44 std::vector<edm::ParameterSet>
paths =
45 iConfig.
getParameter<std::vector<edm::ParameterSet> >(
"paths");
46 for(std::vector<edm::ParameterSet>::iterator
47 pathconf = paths.begin() ; pathconf != paths.end();
49 std::pair<std::string, std::string> custompathnamepair;
50 custompathnamepair.first =pathconf->getParameter<std::string>(
"pathname");
51 custompathnamepair.second = pathconf->getParameter<std::string>(
"denompathname");
122 using namespace trigger;
124 LogDebug(
"FourVectorHLTriggerOffline")<<
" analyze...." ;
129 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"genParticles not found, "
135 iEvent.
getByLabel(
"iterativeCone5GenJets",genJets);
136 if(!genJets.isValid()) {
137 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"genJets not found, "
144 if(!genMets.isValid()) {
145 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"genMets not found, "
152 if(!triggerResults.isValid()) {
154 iEvent.
getByLabel(triggerResultsLabelFU,triggerResults);
155 if(!triggerResults.isValid()) {
156 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"TriggerResults not found, "
162 int npath = triggerResults->
size();
166 if(!triggerObj.isValid()) {
168 iEvent.
getByLabel(triggerSummaryLabelFU,triggerObj);
169 if(!triggerObj.isValid()) {
170 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"TriggerEvent not found, "
178 if(!muonHandle.isValid()) {
179 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"muonHandle not found, ";
187 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"gsfElectrons not found, ";
193 iEvent.
getByLabel(
"caloRecoTauProducer",tauHandle);
194 if(!tauHandle.isValid()) {
195 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"tauHandle not found, ";
201 iEvent.
getByLabel(
"iterativeCone5CaloJets",jetHandle);
202 if(!jetHandle.isValid()) {
203 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"jetHandle not found, ";
210 iEvent.
getByLabel(
"jetProbabilityBJetTags", bTagIPHandle);
211 if (!bTagIPHandle.isValid()) {
212 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"mTagIPHandle trackCountingHighEffJetTags not found, ";
219 iEvent.
getByLabel(
"softMuonBJetTags", bTagMuHandle);
220 if (!bTagMuHandle.isValid()) {
221 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"bTagMuHandle not found, ";
228 if(!metHandle.isValid()) {
229 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"metHandle not found, ";
236 if(!photonHandle.isValid()) {
237 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"photonHandle not found, ";
244 if(!trackHandle.isValid()) {
245 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"trackHandle not found, ";
308 jetMon.setGenJets(
true, genJets);
326 btagIPMon.setGenJets(
true, genJets);
327 btagIPMon.setBJetsFlag(
true);
342 btagMuMon.setGenJets(
true, genJets);
343 btagMuMon.setBJetsFlag(
true);
356 for(PathInfoCollection::iterator
v =
hltPaths_.begin();
360 if (
v->getPath().find(
"BTagIP") != std::string::npos ) btagMon = btagIPMon;
361 else btagMon = btagMuMon;
365 bool denompassed =
false;
366 for(
int i = 0;
i < npath; ++
i) {
367 if (triggerNames.triggerName(
i).find(
v->getDenomPath()) != std::string::npos && triggerResults->accept(
i))
385 triggertype =
v->getObjectType();
387 bool l1accept =
false;
389 const int l1index = triggerObj->filterIndex(l1testTag);
390 if ( l1index >= triggerObj->sizeFilters() ) {
391 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"no index "<< l1index <<
" of that name " <<
v->getl1Path() <<
"\t" <<
"\t" << l1testTag;
395 const trigger::Vids & idtype = triggerObj->filterIds(l1index);
397 l1accept = l1k.size() > 0;
400 eleMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
401 muoMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
402 tauMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
403 phoMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
404 jetMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
405 btagMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
407 eleMon.fillL1Match(
this);
408 muoMon.fillL1Match(
this);
409 tauMon.fillL1Match(
this);
410 phoMon.fillL1Match(
this);
411 jetMon.fillL1Match(
this);
412 btagMon.fillL1Match(
this);
415 bool numpassed =
false;
416 for(
int i = 0;
i < npath; ++
i) {
418 if (triggerNames.triggerName(
i) ==
v->getPath() && triggerResults->accept(
i)) numpassed =
true;
426 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"l1 seed path not accepted for hlt path "<<
v->getPath() <<
"\t" <<
v->getl1Path();
434 if (
v->getLabel() ==
"dummy"){
437 for (std::vector<std::string>::const_iterator labelIter= filterLabels.begin(); labelIter!=filterLabels.end(); labelIter++)
443 int testindex = triggerObj->filterIndex(testTag);
444 if ( !(testindex >= triggerObj->sizeFilters()) ) {
447 filterTag = testTag;
v->setLabel(*labelIter);}
451 const int index = triggerObj->filterIndex(filterTag);
452 if ( index >= triggerObj->sizeFilters() ) {
471 for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
473 eleMon.monitorOnline(idtype, l1k, ki, toc, NOn);
474 muoMon.monitorOnline(idtype, l1k, ki, toc, NOn);
475 tauMon.monitorOnline(idtype, l1k, ki, toc, NOn);
476 phoMon.monitorOnline(idtype, l1k, ki, toc, NOn);
477 jetMon.monitorOnline(idtype, l1k, ki, toc, NOn);
478 btagMon.monitorOnline(idtype, l1k, ki, toc, NOn);
482 eleMon.fillOnlineMatch(
this, l1k, toc);
483 muoMon.fillOnlineMatch(
this, l1k, toc);
484 tauMon.fillOnlineMatch(
this, l1k, toc);
485 phoMon.fillOnlineMatch(
this, l1k, toc);
486 jetMon.fillOnlineMatch(
this, l1k, toc);
487 btagMon.fillOnlineMatch(
this, l1k, toc);
489 eleMon.monitorOffline(
this);
490 muoMon.monitorOffline(
this);
491 tauMon.monitorOffline(
this);
492 phoMon.monitorOffline(
this);
493 jetMon.monitorOffline(
this);
494 btagMon.monitorOffline(
this);
496 eleMon.fillOffMatch(
this);
497 muoMon.fillOffMatch(
this);
498 tauMon.fillOffMatch(
this);
499 phoMon.fillOffMatch(
this);
500 jetMon.fillOffMatch(
this);
501 btagMon.fillOffMatch(
this);
539 LogInfo(
"FourVectorHLTriggerOffline") <<
"analyzed " <<
nev_ <<
" events";
547 LogDebug(
"FourVectorHLTriggerOffline") <<
"beginRun, run " << run.
id();
554 LogDebug(
"FourVectorHLTriggerOffline") <<
"HLTConfigProvider failed to initialize.";
574 for (
unsigned int j=0;
j!=
n; ++
j) {
576 std::string l1pathname =
"dummy";
577 for (
unsigned int i=0;
i!=
n; ++
i) {
582 int denomobjectType = 0;
584 if (pathname.find(
"MET") != std::string::npos)
586 if (pathname.find(
"SumET") != std::string::npos)
588 if (pathname.find(
"HT") != std::string::npos)
590 if (pathname.find(
"Jet") != std::string::npos)
592 if (pathname.find(
"Mu") != std::string::npos)
594 if (pathname.find(
"Ele") != std::string::npos)
596 if (pathname.find(
"Photon") != std::string::npos)
598 if (pathname.find(
"Tau") != std::string::npos)
600 if (pathname.find(
"IsoTrack") != std::string::npos)
602 if (pathname.find(
"BTag") != std::string::npos)
606 if (denompathname.find(
"MET") != std::string::npos)
608 if (denompathname.find(
"SumET") != std::string::npos)
610 if (denompathname.find(
"HT") != std::string::npos)
612 if (denompathname.find(
"Jet") != std::string::npos)
614 if (denompathname.find(
"Mu") != std::string::npos)
616 if (denompathname.find(
"Ele") != std::string::npos)
618 if (denompathname.find(
"Photon") != std::string::npos)
620 if (denompathname.find(
"Tau") != std::string::npos)
622 if (denompathname.find(
"IsoTrack") != std::string::npos)
624 if (denompathname.find(
"BTag") != std::string::npos)
633 for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
634 numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
641 l1pathname = *numpathmodule;
648 std::string filtername(
"dummy");
651 if (
plotAll_ && denomobjectType == objectType && objectType != 0)
661 for (
unsigned int i=0;
i!=
n; ++
i) {
662 std::string denompathname =
"";
664 std::string l1pathname =
"dummy";
666 int denomobjectType = 0;
668 if (pathname.find(
"MET") != std::string::npos)
670 if (pathname.find(
"SumET") != std::string::npos)
672 if (pathname.find(
"HT") != std::string::npos)
674 if (pathname.find(
"Jet") != std::string::npos)
676 if (pathname.find(
"Mu") != std::string::npos)
678 if (pathname.find(
"Ele") != std::string::npos)
680 if (pathname.find(
"Photon") != std::string::npos)
682 if (pathname.find(
"Tau") != std::string::npos)
684 if (pathname.find(
"IsoTrack") != std::string::npos)
686 if (pathname.find(
"BTag") != std::string::npos)
690 if (denompathname.find(
"MET") != std::string::npos)
692 if (denompathname.find(
"SumET") != std::string::npos)
694 if (denompathname.find(
"HT") != std::string::npos)
696 if (denompathname.find(
"Jet") != std::string::npos)
698 if (denompathname.find(
"Mu") != std::string::npos)
700 if (denompathname.find(
"Ele") != std::string::npos)
702 if (denompathname.find(
"Photon") != std::string::npos)
704 if (denompathname.find(
"Tau") != std::string::npos)
706 if (denompathname.find(
"IsoTrack") != std::string::npos)
708 if (denompathname.find(
"BTag") != std::string::npos)
716 for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
717 numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
724 l1pathname = *numpathmodule;
733 std::string filtername(
"dummy");
746 if (objectType != 0){
755 if (custompathnamepair->first != custompathnamepair->second)
758 std::string denompathname = custompathnamepair->second;
759 std::string pathname = custompathnamepair->first;
762 bool foundfirst =
false;
763 bool foundsecond =
false;
764 for (
unsigned int i=0;
i!=
n; ++
i) {
770 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"pathname not found, ignoring " << pathname;
775 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"denompathname not found, ignoring " << pathname;
780 std::string l1pathname =
"dummy";
784 if (pathname.find(
"MET") != std::string::npos)
786 if (pathname.find(
"SumET") != std::string::npos)
788 if (pathname.find(
"HT") != std::string::npos)
790 if (pathname.find(
"Jet") != std::string::npos)
792 if (pathname.find(
"Mu") != std::string::npos)
794 if (pathname.find(
"Ele") != std::string::npos)
796 if (pathname.find(
"Photon") != std::string::npos)
798 if (pathname.find(
"Tau") != std::string::npos)
800 if (pathname.find(
"IsoTrack") != std::string::npos)
802 if (pathname.find(
"BTag") != std::string::npos)
811 for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
812 numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
819 l1pathname = *numpathmodule;
829 std::string filtername(
"dummy");
853 for(PathInfoCollection::iterator
v =
hltPaths_.begin();
866 MonitorElement *NL1OffUM, *offEtL1OffUM, *offEtavsoffPhiL1OffUM=0;
867 MonitorElement *NOnOffUM, *offEtOnOffUM, *offEtavsoffPhiOnOffUM=0;
872 *offDRL1Off, *offDROnOff, *l1DRL1On=0;
873 std::string labelname(
"dummy");
874 labelname =
v->getPath() +
"_wrt_" +
v->getDenomPath();
875 std::string histoname(labelname+
"_NOn");
876 std::string
title(labelname+
" N online");
880 double histEtaMax = 2.5;
914 TString pathfolder =
dirname_ + TString(
"/") +
v->getPath();
917 NOn = dbe->
book1D(histoname.c_str(),
922 histoname = labelname+
"_NMc";
923 title = labelname+
" N Mc";
924 NMc = dbe->
book1D(histoname.c_str(),
929 histoname = labelname+
"_NOff";
930 title = labelname+
" N Off";
931 NOff = dbe->
book1D(histoname.c_str(),
936 histoname = labelname+
"_NL1";
937 title = labelname+
" N L1";
938 NL1 = dbe->
book1D(histoname.c_str(),
943 histoname = labelname+
"_NL1On";
944 title = labelname+
" N L1On";
945 NL1On = dbe->
book1D(histoname.c_str(),
950 histoname = labelname+
"_NL1Off";
951 title = labelname+
" N L1Off";
952 NL1Off = dbe->
book1D(histoname.c_str(),
957 histoname = labelname+
"_NOnOff";
958 title = labelname+
" N OnOff";
959 NOnOff = dbe->
book1D(histoname.c_str(),
964 histoname = labelname+
"_NL1Mc";
965 title = labelname+
" N L1Mc";
966 NL1Mc = dbe->
book1D(histoname.c_str(),
971 histoname = labelname+
"_NOffMc";
972 title = labelname+
" N OffMc";
973 NOffMc = dbe->
book1D(histoname.c_str(),
978 histoname = labelname+
"_NOnMc";
979 title = labelname+
" N OnMc";
980 NOnMc = dbe->
book1D(histoname.c_str(),
985 histoname = labelname+
"_NL1OnUM";
986 title = labelname+
" N L1OnUM";
987 NL1OnUM = dbe->
book1D(histoname.c_str(),
992 histoname = labelname+
"_NL1OffUM";
993 title = labelname+
" N L1OffUM";
994 NL1OffUM = dbe->
book1D(histoname.c_str(),
999 histoname = labelname+
"_NOnOffUM";
1000 title = labelname+
" N OnOffUM";
1001 NOnOffUM = dbe->
book1D(histoname.c_str(),
1006 histoname = labelname+
"_NL1McUM";
1007 title = labelname+
" N L1McUM";
1008 NL1McUM = dbe->
book1D(histoname.c_str(),
1013 histoname = labelname+
"_NOffMcUM";
1014 title = labelname+
" N OffMcUM";
1015 NOffMcUM = dbe->
book1D(histoname.c_str(),
1020 histoname = labelname+
"_NOnMcUM";
1021 title = labelname+
" N OnMcUM";
1022 NOnMcUM = dbe->
book1D(histoname.c_str(),
1027 histoname = labelname+
"_mcEtMc";
1028 title = labelname+
" mcE_t Mc";
1029 mcEtMc = dbe->
book1D(histoname.c_str(),
1034 histoname = labelname+
"_onEtOn";
1035 title = labelname+
" onE_t online";
1036 onEtOn = dbe->
book1D(histoname.c_str(),
1041 histoname = labelname+
"_offEtOff";
1042 title = labelname+
" offE_t offline";
1043 offEtOff = dbe->
book1D(histoname.c_str(),
1048 histoname = labelname+
"_l1EtL1";
1049 title = labelname+
" l1E_t L1";
1050 l1EtL1 = dbe->
book1D(histoname.c_str(),
1057 histoname = labelname+
"_mcEtamcPhiMc";
1058 title = labelname+
" mc#eta vs mc#phi Mc";
1059 mcEtavsmcPhiMc = dbe->
book2D(histoname.c_str(),
1061 nBins2D,-histEtaMax,histEtaMax,
1064 histoname = labelname+
"_onEtaonPhiOn";
1065 title = labelname+
" on#eta vs on#phi online";
1066 onEtavsonPhiOn = dbe->
book2D(histoname.c_str(),
1068 nBins2D,-histEtaMax,histEtaMax,
1071 histoname = labelname+
"_offEtaoffPhiOff";
1072 title = labelname+
" off#eta vs off#phi offline";
1073 offEtavsoffPhiOff = dbe->
book2D(histoname.c_str(),
1075 nBins2D,-histEtaMax,histEtaMax,
1078 histoname = labelname+
"_l1Etal1PhiL1";
1079 title = labelname+
" l1#eta vs l1#phi L1";
1080 l1Etavsl1PhiL1 = dbe->
book2D(histoname.c_str(),
1082 nBins2D,-histEtaMax,histEtaMax,
1085 histoname = labelname+
"_l1EtL1On";
1086 title = labelname+
" l1E_t L1+online";
1087 l1EtL1On = dbe->
book1D(histoname.c_str(),
1092 histoname = labelname+
"_offEtL1Off";
1093 title = labelname+
" offE_t L1+offline";
1094 offEtL1Off = dbe->
book1D(histoname.c_str(),
1099 histoname = labelname+
"_offEtOnOff";
1100 title = labelname+
" offE_t online+offline";
1101 offEtOnOff = dbe->
book1D(histoname.c_str(),
1106 histoname = labelname+
"_mcEtL1Mc";
1107 title = labelname+
" mcE_t L1+MC truth";
1108 mcEtL1Mc = dbe->
book1D(histoname.c_str(),
1113 histoname = labelname+
"_mcEtOffMc";
1114 title = labelname+
" mcE_t Off+MC truth";
1115 mcEtOffMc = dbe->
book1D(histoname.c_str(),
1120 histoname = labelname+
"_mcEtOnMc";
1121 title = labelname+
" mcE_t online+MC truth";
1122 mcEtOnMc = dbe->
book1D(histoname.c_str(),
1127 histoname = labelname+
"_l1Etal1PhiL1On";
1128 title = labelname+
" l1#eta vs l1#phi L1+online";
1129 l1Etavsl1PhiL1On = dbe->
book2D(histoname.c_str(),
1131 nBins2D,-histEtaMax,histEtaMax,
1134 histoname = labelname+
"_offEtaoffPhiL1Off";
1135 title = labelname+
" off#eta vs off#phi L1+offline";
1136 offEtavsoffPhiL1Off = dbe->
book2D(histoname.c_str(),
1138 nBins2D,-histEtaMax,histEtaMax,
1141 histoname = labelname+
"_offEtaoffPhiOnOff";
1142 title = labelname+
" off#eta vs off#phi online+offline";
1143 offEtavsoffPhiOnOff = dbe->
book2D(histoname.c_str(),
1145 nBins2D,-histEtaMax,histEtaMax,
1148 histoname = labelname+
"_mcEtamcPhiL1Mc";
1149 title = labelname+
" mc#eta vs mc#phi L1+MC truth";
1150 mcEtavsmcPhiL1Mc = dbe->
book2D(histoname.c_str(),
1152 nBins2D,-histEtaMax,histEtaMax,
1155 histoname = labelname+
"_mcEtamcPhiOffMc";
1156 title = labelname+
" mc#eta vs mc#phi Off+MC truth";
1157 mcEtavsmcPhiOffMc = dbe->
book2D(histoname.c_str(),
1159 nBins2D,-histEtaMax,histEtaMax,
1163 histoname = labelname+
"_mcEtamcPhiOnMc";
1164 title = labelname+
" mc#eta vs mc#phi online+MC truth";
1165 mcEtavsmcPhiOnMc = dbe->
book2D(histoname.c_str(),
1167 nBins2D,-histEtaMax,histEtaMax,
1170 histoname = labelname+
"_l1EtL1OnUM";
1171 title = labelname+
" l1E_t L1+onlineUM";
1172 l1EtL1OnUM = dbe->
book1D(histoname.c_str(),
1177 histoname = labelname+
"_offEtL1OffUM";
1178 title = labelname+
" offE_t L1+offlineUM";
1179 offEtL1OffUM = dbe->
book1D(histoname.c_str(),
1184 histoname = labelname+
"_offEtOnOffUM";
1185 title = labelname+
" offE_t online+offlineUM";
1186 offEtOnOffUM = dbe->
book1D(histoname.c_str(),
1191 histoname = labelname+
"_mcEtL1McUM";
1192 title = labelname+
" mcE_t L1+MC truthUM";
1193 mcEtL1McUM = dbe->
book1D(histoname.c_str(),
1198 histoname = labelname+
"_mcEtOffMcUM";
1199 title = labelname+
" mcE_t Off+MC truthUM";
1200 mcEtOffMcUM = dbe->
book1D(histoname.c_str(),
1205 histoname = labelname+
"_mcEtOnMcUM";
1206 title = labelname+
" mcE_t online+MC truthUM";
1207 mcEtOnMcUM = dbe->
book1D(histoname.c_str(),
1212 histoname = labelname+
"_l1Etal1PhiL1OnUM";
1213 title = labelname+
" l1#eta vs l1#phi L1+onlineUM";
1214 l1Etavsl1PhiL1OnUM = dbe->
book2D(histoname.c_str(),
1216 nBins2D,-histEtaMax,histEtaMax,
1219 histoname = labelname+
"_offEtaoffPhiL1OffUM";
1220 title = labelname+
" off#eta vs off#phi L1+offlineUM";
1221 offEtavsoffPhiL1OffUM = dbe->
book2D(histoname.c_str(),
1223 nBins2D,-histEtaMax,histEtaMax,
1226 histoname = labelname+
"_offEtaoffPhiOnOffUM";
1227 title = labelname+
" off#eta vs off#phi online+offlineUM";
1228 offEtavsoffPhiOnOffUM = dbe->
book2D(histoname.c_str(),
1230 nBins2D,-histEtaMax,histEtaMax,
1233 histoname = labelname+
"_mcEtamcPhiL1McUM";
1234 title = labelname+
" mc#eta vs mc#phi L1+MC truthUM";
1235 mcEtavsmcPhiL1McUM = dbe->
book2D(histoname.c_str(),
1237 nBins2D,-histEtaMax,histEtaMax,
1240 histoname = labelname+
"_mcEtamcPhiOffMcUM";
1241 title = labelname+
" mc#eta vs mc#phi Off+MC truthUM";
1242 mcEtavsmcPhiOffMcUM = dbe->
book2D(histoname.c_str(),
1244 nBins2D,-histEtaMax,histEtaMax,
1247 histoname = labelname+
"_mcEtamcPhiOnMcUM";
1248 title = labelname+
" mc#eta vs mc#phi online+MC truthUM";
1249 mcEtavsmcPhiOnMcUM = dbe->
book2D(histoname.c_str(),
1251 nBins2D,-histEtaMax,histEtaMax,
1254 histoname = labelname+
"_l1DRL1On";
1255 title = labelname+
" l1DR L1+online";
1256 l1DRL1On = dbe->
book1D(histoname.c_str(),
1257 title.c_str(),
nBins_, 0, 1.);
1259 histoname = labelname+
"_offDRL1Off";
1260 title = labelname+
" offDR L1+offline";
1261 offDRL1Off = dbe->
book1D(histoname.c_str(),
1262 title.c_str(),
nBins_, 0, 1.);
1264 histoname = labelname+
"_offDROnOff";
1265 title = labelname+
" offDR online+offline";
1266 offDROnOff = dbe->
book1D(histoname.c_str(),
1267 title.c_str(),
nBins_, 0, 1.);
1269 histoname = labelname+
"_mcDRL1Mc";
1270 title = labelname+
" mcDR L1+MC truth";
1271 mcDRL1Mc = dbe->
book1D(histoname.c_str(),
1272 title.c_str(),
nBins_, 0, 1.);
1274 histoname = labelname+
"_mcDROffMc";
1275 title = labelname+
" mcDR Off+MC truth";
1276 mcDROffMc = dbe->
book1D(histoname.c_str(),
1277 title.c_str(),
nBins_, 0, 1.);
1279 histoname = labelname+
"_mcDROnMc";
1280 title = labelname+
" mcDR online+MC truth";
1281 mcDROnMc = dbe->
book1D(histoname.c_str(),
1282 title.c_str(),
nBins_, 0, 1.);
1285 v->setHistos( NMc, mcEtMc, mcEtavsmcPhiMc, NOn, onEtOn, onEtavsonPhiOn, NOff, offEtOff, offEtavsoffPhiOff, NL1, l1EtL1, l1Etavsl1PhiL1, NL1On, l1EtL1On, l1Etavsl1PhiL1On, NL1Off, offEtL1Off, offEtavsoffPhiL1Off, NOnOff, offEtOnOff, offEtavsoffPhiOnOff, NL1Mc, mcEtL1Mc, mcEtavsmcPhiL1Mc, NOffMc, mcEtOffMc, mcEtavsmcPhiOffMc, NOnMc, mcEtOnMc, mcEtavsmcPhiOnMc, NL1OnUM, l1EtL1OnUM, l1Etavsl1PhiL1OnUM, NL1OffUM, offEtL1OffUM, offEtavsoffPhiL1OffUM, NOnOffUM, offEtOnOffUM, offEtavsoffPhiOnOffUM, NL1McUM, mcEtL1McUM, mcEtavsmcPhiL1McUM, NOffMcUM, mcEtOffMcUM, mcEtavsmcPhiOffMcUM, NOnMcUM, mcEtOnMcUM, mcEtavsmcPhiOnMcUM, mcDRL1Mc, mcDROnMc, mcDROffMc, offDRL1Off, offDROnOff, l1DRL1On
1300 LogDebug(
"FourVectorHLTriggerOffline") <<
"endRun, run " << run.
id();
1307 LogDebug(
"FourVectorHLTriggerOffline") <<
"cleanDRMatchSet(mmset& tempSet) " << std::endl;
1308 LogDebug(
"FourVectorHLTriggerOffline") <<
"size of the set (before CLEANED)= " << tempSet.size() <<
" maps." << std::endl;
1310 if(tempSet.size() < 2)
return;
1312 bool cleanedOneMap =
false;
1316 while(! cleanedOneMap && tempSet.size() > 1) {
1318 cleanedOneMap=
false;
1323 for ( mmset::iterator setIter_i = tempSet.begin( ); setIter_i != tempSet.end( ); setIter_i++ )
1326 fimmap tempMap_j = *setIter_i;
1330 for (fimmap::iterator it = tempMap_j.begin(); it != tempMap_j.end(); ++it)
1342 for ( mmset::iterator setIter_i = tempSet.begin( ); setIter_i != tempSet.end( ); setIter_i++ )
1345 fimmap tempMap_i = *setIter_i;
1346 fimmap::iterator it = tempMap_i.begin();
1347 int topValue = (*it).second;
1351 mmset::iterator tempIter_i = setIter_i;
1355 for ( mmset::iterator setIter_j = ++tempIter_i; setIter_j != tempSet.end( ); setIter_j++ )
1358 fimmap tempMap_j = *setIter_j;
1361 for (fimmap::iterator it = tempMap_j.begin(); it != tempMap_j.end(); ++it)
1364 if(topValue == (*it).second)
1368 tempMap_j.erase(it);
1370 cleanedOneMap =
true;
1380 tempSet.erase(setIter_j);
1383 if(! tempMap_j.empty()) tempSet.insert(tempMap_j);
1391 if(cleanedOneMap)
break;
1400 cleanedOneMap=
false;
1416 for ( mmset::iterator setIter_i = tempSet.begin( ); setIter_i != tempSet.end( ); setIter_i++ )
1419 fimmap tempMap_j = *setIter_i;
1424 for (fimmap::iterator it = tempMap_j.begin(); it != tempMap_j.end(); ++it)
unsigned int size() const
number of trigger paths in trigger table
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
const std::string moduleType(const std::string &module) const
C++ class name of module.
void endRun(const edm::Run &run, const edm::EventSetup &c)
EndRun.
FourVectorHLTriggerOffline(const edm::ParameterSet &)
edm::InputTag triggerResultsLabel_
const std::string & triggerName(unsigned int triggerIndex) const
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
void rmdir(const std::string &fullpath)
enum start value shifted to 81 so as to avoid clashes with PDG codes
std::multimap< float, int > fimmap
HLTConfigProvider hltConfig_
Strings::size_type size() const
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::set< fimmap, std::less< fimmap > > mmset
void cleanDRMatchSet(mmset &tempSet)
Clean DR Match Set.
void setReco(edm::Handle< T > offColl)
PathInfoCollection hltPaths_
void setVerbose(unsigned level)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::InputTag triggerSummaryLabel_
void beginRun(const edm::Run &run, const edm::EventSetup &c)
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
std::vector< size_type > Keys
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
~FourVectorHLTriggerOffline()
MonitorElement * scalersSelect
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void setRecoB(edm::Handle< reco::JetTagCollection > offCollB)
void setCurrentFolder(const std::string &fullpath)