12 using namespace trigger;
15 resetMe_(
true), currentRun_(-99)
17 LogDebug(
"FourVectorHLTriggerOffline") <<
"constructor...." ;
21 LogInfo(
"FourVectorHLTriggerOffline") <<
"unabel to get DQMStore service?";
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");
139 using namespace trigger;
141 LogDebug(
"FourVectorHLTriggerOffline")<<
" analyze...." ;
146 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"genParticles not found, "
153 if(!genJets.isValid()) {
154 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"genJets not found, "
161 if(!genMets.isValid()) {
162 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"genMets not found, "
172 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"TriggerResults not found, "
182 if(!triggerObj.isValid()) {
184 if(!triggerObj.isValid()) {
185 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"TriggerEvent not found, "
193 if(!muonHandle.isValid()) {
194 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"muonHandle not found, ";
202 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"gsfElectrons not found, ";
209 if(!tauHandle.isValid()) {
210 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"tauHandle not found, ";
217 if(!jetHandle.isValid()) {
218 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"jetHandle not found, ";
226 if (!bTagIPHandle.isValid()) {
227 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"mTagIPHandle trackCountingHighEffJetTags not found, ";
235 if (!bTagMuHandle.isValid()) {
236 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"bTagMuHandle not found, ";
243 if(!metHandle.isValid()) {
244 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"metHandle not found, ";
251 if(!photonHandle.isValid()) {
252 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"photonHandle not found, ";
259 if(!trackHandle.isValid()) {
260 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"trackHandle not found, ";
323 jetMon.setGenJets(
true, genJets);
341 btagIPMon.setGenJets(
true, genJets);
342 btagIPMon.setBJetsFlag(
true);
357 btagMuMon.setGenJets(
true, genJets);
358 btagMuMon.setBJetsFlag(
true);
371 for(PathInfoCollection::iterator
v =
hltPaths_.begin();
375 if (
v->getPath().find(
"BTagIP") != std::string::npos ) btagMon = btagIPMon;
376 else btagMon = btagMuMon;
380 bool denompassed =
false;
381 for(
int i = 0;
i < npath; ++
i) {
382 if (triggerNames.triggerName(
i).find(
v->getDenomPath()) != std::string::npos &&
triggerResults->accept(
i))
403 bool l1accept =
false;
405 const int l1index = triggerObj->filterIndex(l1testTag);
406 if ( l1index >= triggerObj->sizeFilters() ) {
407 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"no index "<< l1index <<
" of that name " <<
v->getl1Path() <<
"\t" <<
"\t" << l1testTag;
411 const trigger::Vids & idtype = triggerObj->filterIds(l1index);
413 l1accept = l1k.size() > 0;
416 eleMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
417 muoMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
418 tauMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
419 phoMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
420 jetMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
421 btagMon.monitorDenominator(
v, l1accept, idtype, l1k, toc);
423 eleMon.fillL1Match(
this);
424 muoMon.fillL1Match(
this);
425 tauMon.fillL1Match(
this);
426 phoMon.fillL1Match(
this);
427 jetMon.fillL1Match(
this);
428 btagMon.fillL1Match(
this);
431 bool numpassed =
false;
432 for(
int i = 0;
i < npath; ++
i) {
434 if (triggerNames.triggerName(
i) ==
v->getPath() &&
triggerResults->accept(
i)) numpassed =
true;
442 edm::LogInfo(
"FourVectorHLTriggerOffline") <<
"l1 seed path not accepted for hlt path "<<
v->getPath() <<
"\t" <<
v->getl1Path();
450 if (
v->getLabel() ==
"dummy"){
453 for (std::vector<std::string>::const_iterator labelIter= filterLabels.begin(); labelIter!=filterLabels.end(); labelIter++)
459 int testindex = triggerObj->filterIndex(testTag);
460 if ( !(testindex >= triggerObj->sizeFilters()) ) {
463 filterTag = testTag;
v->setLabel(*labelIter);}
467 const int index = triggerObj->filterIndex(filterTag);
468 if ( index >= triggerObj->sizeFilters() ) {
487 for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
489 eleMon.monitorOnline(idtype, l1k, ki, toc, NOn);
490 muoMon.monitorOnline(idtype, l1k, ki, toc, NOn);
491 tauMon.monitorOnline(idtype, l1k, ki, toc, NOn);
492 phoMon.monitorOnline(idtype, l1k, ki, toc, NOn);
493 jetMon.monitorOnline(idtype, l1k, ki, toc, NOn);
494 btagMon.monitorOnline(idtype, l1k, ki, toc, NOn);
498 eleMon.fillOnlineMatch(
this, l1k, toc);
499 muoMon.fillOnlineMatch(
this, l1k, toc);
500 tauMon.fillOnlineMatch(
this, l1k, toc);
501 phoMon.fillOnlineMatch(
this, l1k, toc);
502 jetMon.fillOnlineMatch(
this, l1k, toc);
503 btagMon.fillOnlineMatch(
this, l1k, toc);
505 eleMon.monitorOffline(
this);
506 muoMon.monitorOffline(
this);
507 tauMon.monitorOffline(
this);
508 phoMon.monitorOffline(
this);
509 jetMon.monitorOffline(
this);
510 btagMon.monitorOffline(
this);
512 eleMon.fillOffMatch(
this);
513 muoMon.fillOffMatch(
this);
514 tauMon.fillOffMatch(
this);
515 phoMon.fillOffMatch(
this);
516 jetMon.fillOffMatch(
this);
517 btagMon.fillOffMatch(
this);
555 LogInfo(
"FourVectorHLTriggerOffline") <<
"analyzed " <<
nev_ <<
" events";
563 LogDebug(
"FourVectorHLTriggerOffline") <<
"beginRun, run " << run.
id();
570 LogDebug(
"FourVectorHLTriggerOffline") <<
"HLTConfigProvider failed to initialize.";
590 for (
unsigned int j=0;
j!=
n; ++
j) {
593 for (
unsigned int i=0;
i!=
n; ++
i) {
598 int denomobjectType = 0;
600 if (pathname.find(
"MET") != std::string::npos)
602 if (pathname.find(
"SumET") != std::string::npos)
604 if (pathname.find(
"HT") != std::string::npos)
606 if (pathname.find(
"Jet") != std::string::npos)
608 if (pathname.find(
"Mu") != std::string::npos)
610 if (pathname.find(
"Ele") != std::string::npos)
612 if (pathname.find(
"Photon") != std::string::npos)
614 if (pathname.find(
"Tau") != std::string::npos)
616 if (pathname.find(
"IsoTrack") != std::string::npos)
618 if (pathname.find(
"BTag") != std::string::npos)
622 if (denompathname.find(
"MET") != std::string::npos)
624 if (denompathname.find(
"SumET") != std::string::npos)
626 if (denompathname.find(
"HT") != std::string::npos)
628 if (denompathname.find(
"Jet") != std::string::npos)
630 if (denompathname.find(
"Mu") != std::string::npos)
632 if (denompathname.find(
"Ele") != std::string::npos)
634 if (denompathname.find(
"Photon") != std::string::npos)
636 if (denompathname.find(
"Tau") != std::string::npos)
638 if (denompathname.find(
"IsoTrack") != std::string::npos)
640 if (denompathname.find(
"BTag") != std::string::npos)
649 for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
650 numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
657 l1pathname = *numpathmodule;
667 if (
plotAll_ && denomobjectType == objectType && objectType != 0)
677 for (
unsigned int i=0;
i!=
n; ++
i) {
684 if (pathname.find(
"MET") != std::string::npos)
686 if (pathname.find(
"SumET") != std::string::npos)
688 if (pathname.find(
"HT") != std::string::npos)
690 if (pathname.find(
"Jet") != std::string::npos)
692 if (pathname.find(
"Mu") != std::string::npos)
694 if (pathname.find(
"Ele") != std::string::npos)
696 if (pathname.find(
"Photon") != std::string::npos)
698 if (pathname.find(
"Tau") != std::string::npos)
700 if (pathname.find(
"IsoTrack") != std::string::npos)
702 if (pathname.find(
"BTag") != std::string::npos)
733 for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
734 numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
741 l1pathname = *numpathmodule;
763 if (objectType != 0){
772 if (custompathnamepair->first != custompathnamepair->second)
775 std::string denompathname = custompathnamepair->second;
779 bool foundfirst =
false;
780 bool foundsecond =
false;
781 for (
unsigned int i=0;
i!=
n; ++
i) {
801 if (pathname.find(
"MET") != std::string::npos)
803 if (pathname.find(
"SumET") != std::string::npos)
805 if (pathname.find(
"HT") != std::string::npos)
807 if (pathname.find(
"Jet") != std::string::npos)
809 if (pathname.find(
"Mu") != std::string::npos)
811 if (pathname.find(
"Ele") != std::string::npos)
813 if (pathname.find(
"Photon") != std::string::npos)
815 if (pathname.find(
"Tau") != std::string::npos)
817 if (pathname.find(
"IsoTrack") != std::string::npos)
819 if (pathname.find(
"BTag") != std::string::npos)
828 for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin();
829 numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
836 l1pathname = *numpathmodule;
870 for(PathInfoCollection::iterator
v =
hltPaths_.begin();
883 MonitorElement *NL1OffUM, *offEtL1OffUM, *offEtavsoffPhiL1OffUM=0;
884 MonitorElement *NOnOffUM, *offEtOnOffUM, *offEtavsoffPhiOnOffUM=0;
889 *offDRL1Off, *offDROnOff, *l1DRL1On=0;
891 labelname =
v->getPath() +
"_wrt_" +
v->getDenomPath();
897 double histEtaMax = 2.5;
931 TString pathfolder =
dirname_ + TString(
"/") +
v->getPath();
932 dbe_->setCurrentFolder(pathfolder.Data());
934 NOn = dbe->book1D(histoname.c_str(),
939 histoname = labelname+
"_NMc";
940 title = labelname+
" N Mc";
941 NMc = dbe->book1D(histoname.c_str(),
946 histoname = labelname+
"_NOff";
947 title = labelname+
" N Off";
948 NOff = dbe->book1D(histoname.c_str(),
953 histoname = labelname+
"_NL1";
954 title = labelname+
" N L1";
955 NL1 = dbe->book1D(histoname.c_str(),
960 histoname = labelname+
"_NL1On";
961 title = labelname+
" N L1On";
962 NL1On = dbe->book1D(histoname.c_str(),
967 histoname = labelname+
"_NL1Off";
968 title = labelname+
" N L1Off";
969 NL1Off = dbe->book1D(histoname.c_str(),
974 histoname = labelname+
"_NOnOff";
975 title = labelname+
" N OnOff";
976 NOnOff = dbe->book1D(histoname.c_str(),
981 histoname = labelname+
"_NL1Mc";
982 title = labelname+
" N L1Mc";
983 NL1Mc = dbe->book1D(histoname.c_str(),
988 histoname = labelname+
"_NOffMc";
989 title = labelname+
" N OffMc";
990 NOffMc = dbe->book1D(histoname.c_str(),
995 histoname = labelname+
"_NOnMc";
996 title = labelname+
" N OnMc";
997 NOnMc = dbe->book1D(histoname.c_str(),
1002 histoname = labelname+
"_NL1OnUM";
1003 title = labelname+
" N L1OnUM";
1004 NL1OnUM = dbe->book1D(histoname.c_str(),
1009 histoname = labelname+
"_NL1OffUM";
1010 title = labelname+
" N L1OffUM";
1011 NL1OffUM = dbe->book1D(histoname.c_str(),
1016 histoname = labelname+
"_NOnOffUM";
1017 title = labelname+
" N OnOffUM";
1018 NOnOffUM = dbe->book1D(histoname.c_str(),
1023 histoname = labelname+
"_NL1McUM";
1024 title = labelname+
" N L1McUM";
1025 NL1McUM = dbe->book1D(histoname.c_str(),
1030 histoname = labelname+
"_NOffMcUM";
1031 title = labelname+
" N OffMcUM";
1032 NOffMcUM = dbe->book1D(histoname.c_str(),
1037 histoname = labelname+
"_NOnMcUM";
1038 title = labelname+
" N OnMcUM";
1039 NOnMcUM = dbe->book1D(histoname.c_str(),
1044 histoname = labelname+
"_mcEtMc";
1045 title = labelname+
" mcE_t Mc";
1046 mcEtMc = dbe->book1D(histoname.c_str(),
1051 histoname = labelname+
"_onEtOn";
1052 title = labelname+
" onE_t online";
1053 onEtOn = dbe->book1D(histoname.c_str(),
1058 histoname = labelname+
"_offEtOff";
1059 title = labelname+
" offE_t offline";
1060 offEtOff = dbe->book1D(histoname.c_str(),
1065 histoname = labelname+
"_l1EtL1";
1066 title = labelname+
" l1E_t L1";
1067 l1EtL1 = dbe->book1D(histoname.c_str(),
1074 histoname = labelname+
"_mcEtamcPhiMc";
1075 title = labelname+
" mc#eta vs mc#phi Mc";
1076 mcEtavsmcPhiMc = dbe->book2D(histoname.c_str(),
1078 nBins2D,-histEtaMax,histEtaMax,
1081 histoname = labelname+
"_onEtaonPhiOn";
1082 title = labelname+
" on#eta vs on#phi online";
1083 onEtavsonPhiOn = dbe->book2D(histoname.c_str(),
1085 nBins2D,-histEtaMax,histEtaMax,
1088 histoname = labelname+
"_offEtaoffPhiOff";
1089 title = labelname+
" off#eta vs off#phi offline";
1090 offEtavsoffPhiOff = dbe->book2D(histoname.c_str(),
1092 nBins2D,-histEtaMax,histEtaMax,
1095 histoname = labelname+
"_l1Etal1PhiL1";
1096 title = labelname+
" l1#eta vs l1#phi L1";
1097 l1Etavsl1PhiL1 = dbe->book2D(histoname.c_str(),
1099 nBins2D,-histEtaMax,histEtaMax,
1102 histoname = labelname+
"_l1EtL1On";
1103 title = labelname+
" l1E_t L1+online";
1104 l1EtL1On = dbe->book1D(histoname.c_str(),
1109 histoname = labelname+
"_offEtL1Off";
1110 title = labelname+
" offE_t L1+offline";
1111 offEtL1Off = dbe->book1D(histoname.c_str(),
1116 histoname = labelname+
"_offEtOnOff";
1117 title = labelname+
" offE_t online+offline";
1118 offEtOnOff = dbe->book1D(histoname.c_str(),
1123 histoname = labelname+
"_mcEtL1Mc";
1124 title = labelname+
" mcE_t L1+MC truth";
1125 mcEtL1Mc = dbe->book1D(histoname.c_str(),
1130 histoname = labelname+
"_mcEtOffMc";
1131 title = labelname+
" mcE_t Off+MC truth";
1132 mcEtOffMc = dbe->book1D(histoname.c_str(),
1137 histoname = labelname+
"_mcEtOnMc";
1138 title = labelname+
" mcE_t online+MC truth";
1139 mcEtOnMc = dbe->book1D(histoname.c_str(),
1144 histoname = labelname+
"_l1Etal1PhiL1On";
1145 title = labelname+
" l1#eta vs l1#phi L1+online";
1146 l1Etavsl1PhiL1On = dbe->book2D(histoname.c_str(),
1148 nBins2D,-histEtaMax,histEtaMax,
1151 histoname = labelname+
"_offEtaoffPhiL1Off";
1152 title = labelname+
" off#eta vs off#phi L1+offline";
1153 offEtavsoffPhiL1Off = dbe->book2D(histoname.c_str(),
1155 nBins2D,-histEtaMax,histEtaMax,
1158 histoname = labelname+
"_offEtaoffPhiOnOff";
1159 title = labelname+
" off#eta vs off#phi online+offline";
1160 offEtavsoffPhiOnOff = dbe->book2D(histoname.c_str(),
1162 nBins2D,-histEtaMax,histEtaMax,
1165 histoname = labelname+
"_mcEtamcPhiL1Mc";
1166 title = labelname+
" mc#eta vs mc#phi L1+MC truth";
1167 mcEtavsmcPhiL1Mc = dbe->book2D(histoname.c_str(),
1169 nBins2D,-histEtaMax,histEtaMax,
1172 histoname = labelname+
"_mcEtamcPhiOffMc";
1173 title = labelname+
" mc#eta vs mc#phi Off+MC truth";
1174 mcEtavsmcPhiOffMc = dbe->book2D(histoname.c_str(),
1176 nBins2D,-histEtaMax,histEtaMax,
1180 histoname = labelname+
"_mcEtamcPhiOnMc";
1181 title = labelname+
" mc#eta vs mc#phi online+MC truth";
1182 mcEtavsmcPhiOnMc = dbe->book2D(histoname.c_str(),
1184 nBins2D,-histEtaMax,histEtaMax,
1187 histoname = labelname+
"_l1EtL1OnUM";
1188 title = labelname+
" l1E_t L1+onlineUM";
1189 l1EtL1OnUM = dbe->book1D(histoname.c_str(),
1194 histoname = labelname+
"_offEtL1OffUM";
1195 title = labelname+
" offE_t L1+offlineUM";
1196 offEtL1OffUM = dbe->book1D(histoname.c_str(),
1201 histoname = labelname+
"_offEtOnOffUM";
1202 title = labelname+
" offE_t online+offlineUM";
1203 offEtOnOffUM = dbe->book1D(histoname.c_str(),
1208 histoname = labelname+
"_mcEtL1McUM";
1209 title = labelname+
" mcE_t L1+MC truthUM";
1210 mcEtL1McUM = dbe->book1D(histoname.c_str(),
1215 histoname = labelname+
"_mcEtOffMcUM";
1216 title = labelname+
" mcE_t Off+MC truthUM";
1217 mcEtOffMcUM = dbe->book1D(histoname.c_str(),
1222 histoname = labelname+
"_mcEtOnMcUM";
1223 title = labelname+
" mcE_t online+MC truthUM";
1224 mcEtOnMcUM = dbe->book1D(histoname.c_str(),
1229 histoname = labelname+
"_l1Etal1PhiL1OnUM";
1230 title = labelname+
" l1#eta vs l1#phi L1+onlineUM";
1231 l1Etavsl1PhiL1OnUM = dbe->book2D(histoname.c_str(),
1233 nBins2D,-histEtaMax,histEtaMax,
1236 histoname = labelname+
"_offEtaoffPhiL1OffUM";
1237 title = labelname+
" off#eta vs off#phi L1+offlineUM";
1238 offEtavsoffPhiL1OffUM = dbe->book2D(histoname.c_str(),
1240 nBins2D,-histEtaMax,histEtaMax,
1243 histoname = labelname+
"_offEtaoffPhiOnOffUM";
1244 title = labelname+
" off#eta vs off#phi online+offlineUM";
1245 offEtavsoffPhiOnOffUM = dbe->book2D(histoname.c_str(),
1247 nBins2D,-histEtaMax,histEtaMax,
1250 histoname = labelname+
"_mcEtamcPhiL1McUM";
1251 title = labelname+
" mc#eta vs mc#phi L1+MC truthUM";
1252 mcEtavsmcPhiL1McUM = dbe->book2D(histoname.c_str(),
1254 nBins2D,-histEtaMax,histEtaMax,
1257 histoname = labelname+
"_mcEtamcPhiOffMcUM";
1258 title = labelname+
" mc#eta vs mc#phi Off+MC truthUM";
1259 mcEtavsmcPhiOffMcUM = dbe->book2D(histoname.c_str(),
1261 nBins2D,-histEtaMax,histEtaMax,
1264 histoname = labelname+
"_mcEtamcPhiOnMcUM";
1265 title = labelname+
" mc#eta vs mc#phi online+MC truthUM";
1266 mcEtavsmcPhiOnMcUM = dbe->book2D(histoname.c_str(),
1268 nBins2D,-histEtaMax,histEtaMax,
1271 histoname = labelname+
"_l1DRL1On";
1272 title = labelname+
" l1DR L1+online";
1273 l1DRL1On = dbe->book1D(histoname.c_str(),
1274 title.c_str(),
nBins_, 0, 1.);
1276 histoname = labelname+
"_offDRL1Off";
1277 title = labelname+
" offDR L1+offline";
1278 offDRL1Off = dbe->book1D(histoname.c_str(),
1279 title.c_str(),
nBins_, 0, 1.);
1281 histoname = labelname+
"_offDROnOff";
1282 title = labelname+
" offDR online+offline";
1283 offDROnOff = dbe->book1D(histoname.c_str(),
1284 title.c_str(),
nBins_, 0, 1.);
1286 histoname = labelname+
"_mcDRL1Mc";
1287 title = labelname+
" mcDR L1+MC truth";
1288 mcDRL1Mc = dbe->book1D(histoname.c_str(),
1289 title.c_str(),
nBins_, 0, 1.);
1291 histoname = labelname+
"_mcDROffMc";
1292 title = labelname+
" mcDR Off+MC truth";
1293 mcDROffMc = dbe->book1D(histoname.c_str(),
1294 title.c_str(),
nBins_, 0, 1.);
1296 histoname = labelname+
"_mcDROnMc";
1297 title = labelname+
" mcDR online+MC truth";
1298 mcDROnMc = dbe->book1D(histoname.c_str(),
1299 title.c_str(),
nBins_, 0, 1.);
1302 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
1317 LogDebug(
"FourVectorHLTriggerOffline") <<
"endRun, run " << run.
id();
1324 LogDebug(
"FourVectorHLTriggerOffline") <<
"cleanDRMatchSet(mmset& tempSet) " << std::endl;
1325 LogDebug(
"FourVectorHLTriggerOffline") <<
"size of the set (before CLEANED)= " << tempSet.size() <<
" maps." << std::endl;
1327 if(tempSet.size() < 2)
return;
1329 bool cleanedOneMap =
false;
1333 while(! cleanedOneMap && tempSet.size() > 1) {
1335 cleanedOneMap=
false;
1340 for ( mmset::iterator setIter_i = tempSet.begin( ); setIter_i != tempSet.end( ); setIter_i++ )
1343 fimmap tempMap_j = *setIter_i;
1347 for (fimmap::iterator it = tempMap_j.begin(); it != tempMap_j.end(); ++it)
1359 for ( mmset::iterator setIter_i = tempSet.begin( ); setIter_i != tempSet.end( ); setIter_i++ )
1362 fimmap tempMap_i = *setIter_i;
1363 fimmap::iterator it = tempMap_i.begin();
1364 int topValue = (*it).second;
1368 mmset::iterator tempIter_i = setIter_i;
1372 for ( mmset::iterator setIter_j = ++tempIter_i; setIter_j != tempSet.end( ); )
1375 fimmap tempMap_j = *setIter_j;
1378 for (fimmap::iterator it = tempMap_j.begin(); it != tempMap_j.end(); )
1381 if(topValue == (*it).second)
1385 tempMap_j.erase(it++);
1387 cleanedOneMap =
true;
1398 tempSet.erase(setIter_j++);
1401 if(! tempMap_j.empty()) tempSet.insert(tempMap_j);
1410 if(cleanedOneMap)
break;
1419 cleanedOneMap=
false;
1435 for ( mmset::iterator setIter_i = tempSet.begin( ); setIter_i != tempSet.end( ); setIter_i++ )
1438 fimmap tempMap_j = *setIter_i;
1443 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
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummary_token_
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
bool getByToken(EDGetToken token, Handle< PROD > &result) const
enum start value shifted to 81 so as to avoid clashes with PDG codes
edm::EDGetTokenT< reco::GenParticleCollection > genParticles_token_
edm::EDGetTokenT< reco::CaloJetCollection > caloJetCollection_
edm::EDGetTokenT< reco::CaloTauCollection > caloRecoTauCollection_
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryLabelFU_
edm::EDGetTokenT< reco::JetTagCollection > softMuonBJetTags_
std::multimap< float, int > fimmap
HLTConfigProvider hltConfig_
edm::EDGetTokenT< reco::TrackCollection > trackCollection_
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
virtual void analyze(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< reco::GsfElectronCollection > gsfElectronCollection_
edm::EDGetTokenT< reco::JetTagCollection > jetTagCollection_
std::set< fimmap, std::less< fimmap > > mmset
edm::EDGetTokenT< edm::TriggerResults > triggerResultsLabelFU_
edm::EDGetTokenT< reco::GenMETCollection > genMetTrue_token_
void cleanDRMatchSet(mmset &tempSet)
Clean DR Match Set.
void setReco(edm::Handle< T > offColl)
PathInfoCollection hltPaths_
static std::string const triggerResults
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)
edm::EDGetTokenT< reco::MuonCollection > muonCollection_
std::vector< size_type > Keys
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
~FourVectorHLTriggerOffline()
edm::EDGetTokenT< reco::PhotonCollection > photonCollection_
MonitorElement * scalersSelect
edm::EDGetTokenT< reco::CaloMETCollection > caloMetCollection_
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
edm::EDGetTokenT< reco::GenJetCollection > iterativeCone5GenJets_token_
void setRecoB(edm::Handle< reco::JetTagCollection > offCollB)
edm::EDGetTokenT< edm::TriggerResults > triggerResults_token_