77 edm::LogInfo(
"EmDQM") <<
"The following filter types are not analyzed: \n" 78 <<
"\tHLTGlobalSumsMET\n" 79 <<
"\tHLTHtMhtFilter\n" 87 <<
"\tPFTauSelector\n" 89 <<
"\tHLTPFJetCollectionsFilter\n" 90 <<
"\tHLTPFJetCollectionsVBFFilter\n" 92 <<
"\tEtMinCaloJetSelector\n" 93 <<
"\tEtMinPFJetSelector\n" 94 <<
"\tLargestEtCaloJetSelector\n" 95 <<
"\tLargestEtPFJetSelector\n" 96 <<
"\tHLTEgammaTriggerFilterObjectWrapper\n" 97 <<
"\tHLTEgammaDoubleLegCombFilter\n" 98 <<
"\tHLT2ElectronTau\n" 99 <<
"\tHLT2ElectronMET\n" 100 <<
"\tHLT2ElectronPFTau\n" 101 <<
"\tHLTPMMassFilter\n" 102 <<
"\tHLTHcalTowerFilter\n" 105 <<
"\tHLTRHemisphere\n" 106 <<
"\tHLTElectronPFMTFilter\n" 107 <<
"\tPrimaryVertexObjectFilter\n" 108 <<
"\tHLTEgammaAllCombMassFilter\n" 124 std::vector<std::string> filterModules;
126 for (
unsigned int j = 0; j < egammaPaths.size(); j++) {
130 edm::LogPrint(
"EmDQM") <<
"////////////////////////////////////////" 131 "/\nSingle electron paths: ";
134 edm::LogPrint(
"EmDQM") <<
"////////////////////////////////////////" 135 "/\nDouble electron paths: ";
138 edm::LogPrint(
"EmDQM") <<
"////////////////////////////////////////" 139 "/\nTriple electron paths: ";
142 edm::LogPrint(
"EmDQM") <<
"////////////////////////////////////////" 143 "/\nSingle photon paths: ";
146 edm::LogPrint(
"EmDQM") <<
"////////////////////////////////////////" 147 "/\nDouble photon paths: ";
152 for (
unsigned int i = 0;
i < egammaPaths.at(j).size();
i++) {
176 <<
"': Unable to determine a minimum Et. Will not include " 177 "this path in the validation.";
185 if (ptMax < (1.2 * genEtMin)) {
231 std::vector<edm::ParameterSet> filterVPSet;
236 for (std::vector<std::string>::iterator
filter = filterModules.begin();
filter != filterModules.end();
242 if (moduleType ==
"Pythia6GeneratorFilter" || moduleType ==
"HLTTriggerTypeFilter" ||
243 moduleType ==
"HLTLevel1Activity" || moduleType ==
"HLTPrescaler" || moduleType ==
"HLTBool")
247 if (moduleType ==
"HLTLevel1GTSeed") {
249 }
else if (moduleType ==
"HLTEgammaL1MatchFilterRegional") {
251 }
else if (moduleType ==
"HLTEgammaEtFilter") {
253 }
else if (moduleType ==
"HLTElectronOneOEMinusOneOPFilterRegional") {
255 }
else if (moduleType ==
"HLTElectronPixelMatchFilter") {
257 }
else if (moduleType ==
"HLTEgammaGenericFilter") {
259 }
else if (moduleType ==
"HLTEgammaGenericQuadraticFilter") {
261 }
else if (moduleType ==
"HLTElectronGenericFilter") {
263 }
else if (moduleType ==
"HLTEgammaDoubleEtDeltaPhiFilter") {
265 }
else if (moduleType ==
"HLTGlobalSumsMET" || moduleType ==
"HLTHtMhtFilter" ||
266 moduleType ==
"HLTMhtFilter" || moduleType ==
"HLTJetTag" || moduleType ==
"HLT1CaloJet" ||
267 moduleType ==
"HLT1CaloMET" || moduleType ==
"HLT1CaloBJet" || moduleType ==
"HLT1Tau" ||
268 moduleType ==
"HLT1PFTau" || moduleType ==
"PFTauSelector" || moduleType ==
"HLT1PFJet" ||
269 moduleType ==
"HLTPFJetCollectionsFilter" || moduleType ==
"HLTPFJetCollectionsVBFFilter" ||
270 moduleType ==
"HLTPFJetTag" || moduleType ==
"EtMinCaloJetSelector" ||
271 moduleType ==
"EtMinPFJetSelector" || moduleType ==
"LargestEtCaloJetSelector" ||
272 moduleType ==
"LargestEtPFJetSelector" ||
273 moduleType ==
"HLTEgammaTriggerFilterObjectWrapper" 274 || moduleType ==
"HLTEgammaDoubleLegCombFilter" 277 || moduleType ==
"HLT2ElectronMET" || moduleType ==
"HLT2ElectronTau" ||
278 moduleType ==
"HLT2ElectronPFTau" || moduleType ==
"HLTPMMassFilter" ||
279 moduleType ==
"HLTHcalTowerFilter" || moduleType ==
"HLT1Photon" || moduleType ==
"HLTRFilter" ||
280 moduleType ==
"HLTRHemisphere" || moduleType ==
"HLTElectronPFMTFilter" ||
281 moduleType ==
"PrimaryVertexObjectFilter" || moduleType ==
"HLTEgammaAllCombMassFilter" ||
282 moduleType.find(
"HLTMuon") != std::string::npos)
286 edm::LogWarning(
"EmDQM") <<
"No parameter set for filter '" << moduleLabel <<
"' with filter type '" 287 << moduleType <<
"' added. Module will not be analyzed.";
292 if (!filterPSet.
empty()) {
297 if (moduleLabel.find(
"Unseeded") != std::string::npos &&
306 edm::LogPrint(
"EmDQM") <<
"No number of candidates for filter " << moduleLabel <<
" found. Set to " 307 << paramSet.
getParameter<
int>(
"cutnum") <<
", determined from path name.";
310 edm::LogInfo(
"EmDQM") <<
"Changed required number of candidates from " 312 << filterPSet.
getParameter<
int>(
"ncandcut") <<
" for filter " << moduleLabel;
317 filterVPSet.push_back(filterPSet);
324 if (!filterPSet.
empty()) {
334 paramSet.
addParameter<std::vector<edm::ParameterSet>>(
"filters", filterVPSet);
337 edm::LogPrint(
"EmDQM") <<
"Will not include this path in the validation due to " 338 "errors while generating the parameter set.";
357 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
380 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
391 std::vector<MonitorElement *> etahist;
392 std::vector<MonitorElement *> phihist;
393 std::vector<MonitorElement *> ethist;
394 std::vector<MonitorElement *> etahistmatch;
395 std::vector<MonitorElement *> phihistmatch;
396 std::vector<MonitorElement *> ethistmatch;
397 std::vector<MonitorElement *> histEtOfHltObjMatchToGen;
398 std::vector<MonitorElement *> histEtaOfHltObjMatchToGen;
399 std::vector<MonitorElement *> histPhiOfHltObjMatchToGen;
400 std::vector<MonitorElement *> etaphihist;
401 std::vector<MonitorElement *> etaphihistmatch;
402 std::vector<MonitorElement *> histEtaPhiOfHltObjMatchToGen;
426 histName =
"total_eff_MC_matched";
427 histTitle =
"total events passing (mc matched)";
428 totalmatch = iBooker.
book1D(
445 pdgIdString =
"Electron";
448 pdgIdString =
"Photon";
451 pdgIdString =
"Particle";
455 histTitle =
"E_{T} of " + pdgIdString +
"s";
457 histName =
"gen_eta";
458 histTitle =
"#eta of " + pdgIdString +
"s ";
460 histName =
"gen_phi";
461 histTitle =
"#phi of " + pdgIdString +
"s ";
464 histName =
"gen_etaphi";
465 histTitle =
"#eta-#phi of " + pdgIdString +
"s ";
466 etaphigen = iBooker.
book2D(
472 std::vector<std::string> HltHistTitle;
485 histTitle = HltHistTitle[
i] +
" Et (ALL)";
487 ethist.push_back(tmphisto);
491 histTitle = HltHistTitle[
i] +
" #eta (ALL)";
493 etahist.push_back(tmphisto);
498 histTitle = HltHistTitle[
i] +
" #phi (ALL)";
500 phihist.push_back(tmphisto);
504 histTitle = HltHistTitle[
i] +
" #eta-#phi (ALL)";
505 tmphisto = iBooker.
book2D(
507 etaphihist.push_back(tmphisto);
512 histTitle = HltHistTitle[
i] +
" Et";
514 histEtOfHltObjMatchToGen.push_back(tmphisto);
519 histTitle = HltHistTitle[
i] +
" eta";
521 histEtaOfHltObjMatchToGen.push_back(tmphisto);
527 histTitle = HltHistTitle[
i] +
" phi";
529 histPhiOfHltObjMatchToGen.push_back(tmphisto);
533 histTitle = HltHistTitle[
i] +
" eta-phi";
534 tmphisto = iBooker.
book2D(
536 histEtaPhiOfHltObjMatchToGen.push_back(tmphisto);
541 histTitle = HltHistTitle[
i] +
" Et (MC matched)";
543 ethistmatch.push_back(tmphisto);
547 histTitle = HltHistTitle[
i] +
" #eta (MC matched)";
549 etahistmatch.push_back(tmphisto);
554 histTitle = HltHistTitle[
i] +
" #phi (MC matched)";
556 phihistmatch.push_back(tmphisto);
560 histTitle = HltHistTitle[
i] +
" #eta-#phi (MC matched)";
561 tmphisto = iBooker.
book2D(
563 etaphihistmatch.push_back(tmphisto);
620 std::vector<reco::LeafCandidate> allSortedGenParticles;
623 currentGenParticle != genParticles->end();
624 currentGenParticle++) {
628 if (!(
abs((*currentGenParticle).pdgId()) ==
pdgGen && (*currentGenParticle).status() == 1 &&
629 (*currentGenParticle).et() > 2.0))
637 allSortedGenParticles.push_back(tmpcand);
643 if (allSortedGenParticles.size() <
gencut_)
654 bool inECALgap = fabs(allSortedGenParticles[
i].
eta()) > 1.4442 && fabs(allSortedGenParticles[
i].
eta()) < 1.556;
655 if ((fabs(allSortedGenParticles[
i].
eta()) >
genEtaAcc_) || inECALgap) {
697 if (!referenceParticles.
isValid()) {
703 std::vector<const reco::Candidate *> allSortedReferenceParticles;
706 currentReferenceParticle != referenceParticles->end();
707 currentReferenceParticle++) {
708 if (currentReferenceParticle->et() <= 2.0)
716 if (currentReferenceParticle->et() <
plotEtMin)
720 allSortedReferenceParticles.push_back(&(*currentReferenceParticle));
727 return allSortedReferenceParticles.size() >=
gencut_;
735 unsigned int vPos = 0;
736 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end();
770 if (cutCounter->size() < (
unsigned int)
gencut_) {
783 <<
") does not corresond to a valid TriggerEventWithRefs product. " 784 "Please check especially the process name (e.g. when running " 785 "over reprocessed datasets)";
820 std::vector<reco::Particle> sortedGen;
823 reco::Particle tmpcand(genpart->charge(), genpart->p4(), genpart->vertex(), genpart->pdgId(), genpart->status());
825 sortedGen.push_back(tmpcand);
833 if (sortedGen.size() <
gencut_) {
836 sortedGen.erase(sortedGen.begin() +
gencut_, sortedGen.end());
839 etgens.at(vPos)->Fill(sortedGen[
i].
et());
866 edm::LogError(
"EmDQM") <<
"There are less generated particles than the module '" 870 std::vector<reco::Particle> sortedGenForFilter(sortedGen);
871 sortedGenForFilter.erase(sortedGenForFilter.begin() +
nCandCuts.at(
n), sortedGenForFilter.end());
896 throw(
cms::Exception(
"Release Validation Error") <<
"HLT output type not implemented: theHLTOutputTypes[n]");
915 std::vector<reco::Particle> &sortedGen,
917 std::vector<edm::Ref<T>> recoecalcands;
918 if ((triggerObj->
filterIndex(
dqm->theHLTCollectionLabels[n]) >= triggerObj->
size())) {
919 dqm->hltCollectionLabelsMissed.insert(
dqm->theHLTCollectionLabels[n].encode());
924 dqm->hltCollectionLabelsFound.insert(
dqm->theHLTCollectionLabels[n].encode());
930 triggerObj->
filterIndex(
dqm->theHLTCollectionLabels[n]),
dqm->theHLTOutputTypes[
n], recoecalcands);
934 std::vector<edm::Ref<T>> isocands;
936 if (!isocands.empty()) {
937 for (
unsigned int i = 0;
i < isocands.size();
i++)
938 recoecalcands.push_back(isocands[
i]);
942 if (recoecalcands.empty()) {
948 if (recoecalcands.size() >=
dqm->nCandCuts.at(n) && !
dqm->mcMatchedOnly_)
949 dqm->totals.at(vPos)->Fill(n + 0.5);
955 for (
unsigned int j = 0; j < recoecalcands.size(); j++) {
956 if (!(recoecalcands.at(j).isAvailable())) {
957 if (
dqm->verbosity_ >=
dqm->OUTPUT_ERRORS)
958 edm::LogError(
"EmDQMInvalidRefs") <<
"Event content inconsistent: TriggerEventWithRefs contains " 959 "invalid Refs. Invalid refs for: " 960 <<
dqm->theHLTCollectionLabels[
n].label()
961 <<
". The collection that this module uses may has been dropped in " 967 if (!
dqm->mcMatchedOnly_) {
973 for (
unsigned int i = 0;
i <
dqm->nCandCuts.at(n);
i++) {
976 float closestDeltaR = 0.5;
977 int closestEcalCandIndex = -1;
978 for (
unsigned int j = 0; j < recoecalcands.size(); j++) {
979 float deltaR =
DeltaR(recoecalcands[j]->momentum(), currentGenParticleMomentum);
981 if (deltaR < closestDeltaR) {
983 closestEcalCandIndex = j;
989 if (closestEcalCandIndex >= 0) {
990 dqm->histEtOfHltObjMatchToGens.at(vPos).at(n)->Fill(recoecalcands[closestEcalCandIndex]->
et());
991 dqm->histEtaOfHltObjMatchToGens.at(vPos).at(n)->Fill(recoecalcands[closestEcalCandIndex]->
eta());
992 if (!
dqm->noPhiPlots_)
993 dqm->histPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill(recoecalcands[closestEcalCandIndex]->
phi());
994 dqm->histEtaPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill(recoecalcands[closestEcalCandIndex]->
eta(),
995 recoecalcands[closestEcalCandIndex]->
phi());
1005 for (
unsigned int i = 0;
i < recoecalcands.size();
i++) {
1025 dqm->ethists.at(vPos).at(n)->Fill(recoecalcands[
i]->
et());
1026 dqm->etahists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta());
1027 if (!
dqm->noPhiPlots_)
1028 dqm->phihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
phi());
1029 dqm->etaphihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta(), recoecalcands[
i]->
phi());
1036 unsigned int matchedMcParts = 0;
1037 float mindist = 0.3;
1040 for (
unsigned int i = 0;
i <
dqm->nCandCuts.at(n); ++
i) {
1042 bool matchThis =
false;
1045 double closestDr = 1000.;
1046 for (
unsigned int trigOb = 0; trigOb < recoecalcands.size(); ++trigOb) {
1047 double dr =
DeltaR(recoecalcands[trigOb]->momentum(), candDir);
1048 if (dr < closestDr) {
1052 if (closestDr > mindist) {
1064 dqm->ethistmatchs.at(vPos).at(n)->Fill(sortedGen[
i].
et());
1065 if (sortedGen[
i].
et() >
dqm->minEtForEtaEffPlot_) {
1066 dqm->etahistmatchs.at(vPos).at(n)->Fill(sortedGen[
i].
eta());
1067 if (!
dqm->noPhiPlots_)
1068 dqm->phihistmatchs.at(vPos).at(n)->Fill(sortedGen[
i].
phi());
1069 dqm->etaphihistmatchs.at(vPos).at(n)->Fill(sortedGen[
i].
eta(), sortedGen[
i].
phi());
1074 if (matchedMcParts >=
dqm->nCandCuts.at(n) && accepted ==
true)
1075 dqm->totalmatchs.at(vPos)->Fill(n + 0.5);
1080 unsigned int vPos = 0;
1081 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end();
1089 std::vector<std::string> labelsNeverFound;
1094 labelsNeverFound.push_back(
tag.encode());
1098 if (labelsNeverFound.empty())
1101 std::sort(labelsNeverFound.begin(), labelsNeverFound.end());
1107 edm::LogWarning(
"EmDQM") <<
"There were some HLTCollectionLabels which were never found:";
1109 for (
auto const &
tag : labelsNeverFound) {
1118 if (sub.length() == 0)
1130 std::vector<std::vector<std::string>> Paths(5);
1136 if (
int(path.find(
"HLT_")) == 0) {
1146 int totEleCount = 2 * tripleEleCount + doubleEleCount + eleCount + scCount + 2 * doubleSCCount;
1147 int totPhotonCount = doublePhotonCount + photonCount;
1149 if (totEleCount + totPhotonCount < 1)
1151 switch (totEleCount) {
1166 switch (totPhotonCount) {
1186 std::vector<std::string>
filters;
1197 if (moduleEDMType ==
"EDFilter" ||
1198 moduleType.find(
"Filter") != std::string::npos) {
1200 filters.push_back(module);
1213 boost::regex reg(
"^HLT_.*?(Ele|hoton|EG|SC)([[:digit:]]+).*");
1216 if (boost::regex_match(path, what, reg, boost::match_extra)) {
1217 minEt = boost::lexical_cast<
double>(what[2]);
1232 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1236 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections",
1237 std::vector<edm::InputTag>(1,
std::string(
"none")));
1248 int candCount = 2 * tEgCount + dEgCount + egCount;
1252 if (orCount > 0 && candCount > 0) {
1253 if (egCount % (orCount + 1) == 0 && dEgCount % (orCount + 1) == 0 && tEgCount % (orCount + 1) == 0)
1254 candCount /= (orCount + 1);
1255 else if (egCount - dEgCount - tEgCount > 0)
1257 else if (dEgCount > 0)
1259 else if (tEgCount > 0)
1265 switch (candCount) {
1296 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1300 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections",
1301 std::vector<edm::InputTag>(1,
std::string(
"none")));
1313 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1317 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections",
1318 std::vector<edm::InputTag>(1,
std::string(
"none")));
1330 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1334 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections",
1335 std::vector<edm::InputTag>(1,
std::string(
"none")));
1347 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1351 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections",
1352 std::vector<edm::InputTag>(1,
std::string(
"none")));
1364 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1368 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections",
1369 std::vector<edm::InputTag>(1,
std::string(
"none")));
1427 std::vector<edm::InputTag> isoCollections;
1428 isoCollections.push_back(varTag);
1436 if (inputType ==
"EgammaHLTR9Producer" ||
1437 inputType ==
"EgammaHLTR9IDProducer" ||
1438 inputType ==
"EgammaHLTClusterShapeProducer" ||
1439 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1440 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1441 inputType ==
"EgammaHLTGsfTrackVarProducer" ||
1442 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1444 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1446 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1448 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1450 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1454 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections", isoCollections);
1461 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericFilter '" << moduleName
1462 <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1516 std::vector<edm::InputTag> isoCollections;
1517 isoCollections.push_back(varTag);
1525 if (inputType ==
"EgammaHLTR9Producer" ||
1526 inputType ==
"EgammaHLTR9IDProducer" ||
1527 inputType ==
"EgammaHLTClusterShapeProducer" ||
1528 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1529 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1530 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1532 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1534 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1536 inputType ==
"EgammaHLTPhotonTrackIsolationProducersRegional" 1539 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1543 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections", isoCollections);
1550 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericQuadraticFilter '" << moduleName
1551 <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1600 std::vector<edm::InputTag> isoCollections;
1601 isoCollections.push_back(varTag);
1611 if (inputType ==
"EgammaHLTElectronDetaDphiProducer" ||
1612 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1614 retPSet.
addParameter<std::vector<double>>(
"PlotBounds", std::vector<double>(2, 0.0));
1618 retPSet.
addParameter<std::vector<edm::InputTag>>(
"IsoCollections", isoCollections);
1625 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTElectronGenericFilter '" << moduleName
1626 <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1633 dirname_ =
"HLT/HLTEgammaValidation/" + psetIt->getParameter<
std::string>(
"@module_label");
1635 pathIndex = psetIt->getUntrackedParameter<
unsigned int>(
"pathIndex", 0);
1637 reqNum = psetIt->getParameter<
unsigned int>(
"reqNum");
1638 pdgGen = psetIt->getParameter<
int>(
"pdgGen");
1640 plotEtMin = psetIt->getUntrackedParameter<
double>(
"genEtMin", 0.);
1641 plotPtMin = psetIt->getUntrackedParameter<
double>(
"PtMin", 0.);
1642 plotPtMax = psetIt->getUntrackedParameter<
double>(
"PtMax", 1000.);
1646 gencut_ = psetIt->getParameter<
int>(
"cutnum");
1652 std::vector<edm::ParameterSet>
filters = psetIt->getParameter<std::vector<edm::ParameterSet>>(
"filters");
1664 for (std::vector<edm::ParameterSet>::iterator filterconf = filters.begin(); filterconf != filters.end();
1667 theHLTOutputTypes.push_back(filterconf->getParameter<
int>(
"theHLTOutputTypes"));
1673 std::vector<double> bounds = filterconf->getParameter<std::vector<double>>(
"PlotBounds");
1675 assert(bounds.size() == 2);
1676 plotBounds.push_back(std::pair<double, double>(bounds[0], bounds[1]));
1677 isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag>>(
"IsoCollections"));
1704 if (
isoNames.back().at(0).label() ==
"none") {
1712 nCandCuts.push_back(filterconf->getParameter<
int>(
"ncandcut"));
unsigned int size() const
number of trigger paths in trigger table
edm::ParameterSet makePSetForEgammaGenericFilter(const std::string &)
~EmDQM() override
Destructor.
std::vector< std::vector< MonitorElement * > > etaphihists
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet makePSetForEgammaGenericQuadraticFilter(const std::string &)
bool saveTags(const std::string &module) const
Is module an L3 filter (ie, tracked saveTags=true)
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidZee_token
std::vector< MonitorElement * > etgens
void fillHistos(edm::Handle< trigger::TriggerEventWithRefs > &, const edm::Event &, unsigned int, unsigned int, std::vector< reco::Particle > &, bool &)
edm::EDGetTokenT< edm::View< reco::Candidate > > genParticles_token
std::vector< MonitorElement * > totalmatchs
const std::string moduleType(const std::string &module) const
C++ class name of module.
std::vector< std::vector< std::string > > findEgammaPaths()
bool checkRecoParticlesRequirement(const edm::Event &event)
const std::string & triggerName(unsigned int triggerIndex) const
unsigned int numOfHLTCollectionLabels
void endRun(edm::Run const &, edm::EventSetup const &) override
std::vector< std::pair< double, double > > plotBounds
std::vector< std::set< std::string > > hltCollectionLabelsMissedPerPath
std::vector< std::vector< MonitorElement * > > etahistmatchs
static const unsigned OUTPUT_ALL
std::vector< std::vector< MonitorElement * > > histEtaPhiOfHltObjMatchToGens
std::set< std::string > hltCollectionLabelsFound
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
void analyze(const edm::Event &event, const edm::EventSetup &) override
std::vector< std::set< std::string > > hltCollectionLabelsFoundPerPath
std::vector< MonitorElement * > etagens
std::vector< MonitorElement * > etaphigens
bool exists(std::string const ¶meterName) const
checks if a parameter exists
HLTConfigProvider hltConfig_
The instance of the HLTConfigProvider as a data member.
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
def setup(process, global_tag, zero_tesla=False)
std::vector< std::vector< MonitorElement * > > histPhiOfHltObjMatchToGens
edm::ParameterSet makePSetForOneOEMinusOneOPFilter(const std::string &)
const std::string & tableName() const
HLT ConfDB table name.
static const unsigned TYPE_DOUBLE_PHOTON
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
edm::ParameterSet makePSetForElectronGenericFilter(const std::string &)
HistoFiller< reco::ElectronCollection > * histoFillerEle
std::vector< std::vector< MonitorElement * > > phihists
std::vector< TPRegexp > filters
bool changed() const
changed?
static const unsigned OUTPUT_ERRORS
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidWenu_token
const std::string & moduleLabel(unsigned int trigger, unsigned int module) const
static const std::string removeVersion(const std::string &trigger)
GreaterByPt< reco::GenParticle > pTGenComparator_
bool inited() const
Accessors (const methods)
std::vector< std::vector< edm::InputTag > > isoNames
edm::ParameterSet makePSetForL1SeedFilter(const std::string &)
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
std::vector< std::string > getFilterModules(const std::string &)
std::vector< edm::InputTag > theHLTCollectionLabels
HistoFiller< l1extra::L1EmParticleCollection > * histoFillerL1Iso
std::string moduleName(Provenance const &provenance)
unsigned int moduleIndex(unsigned int trigger, const std::string &module) const
slot position of module on trigger path (0 to size-1)
#define DEFINE_FWK_MODULE(type)
HistoFiller< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
void setCurrentFolder(std::string const &fullpath)
std::vector< unsigned int > nCandCuts
HistoFiller< reco::RecoEcalCandidateCollection > * histoFillerPho
edm::InputTag triggerObject_
static const unsigned OUTPUT_WARNINGS
double et() const final
transverse energy
std::vector< MonitorElement * > totals
unsigned int index(const unsigned int i) const
Get index (slot position) of module giving the decision of the ith path.
void addParameter(std::string const &name, T const &value)
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidGammaJet_token
std::set< std::string > hltCollectionLabelsMissed
MonitorElement * book1D(Args &&...args)
void SetVarsFromPSet(std::vector< edm::ParameterSet >::iterator)
Abs< T >::type abs(const T &t)
const edm::ParameterSet & pset
edm::InputTag gencutCollection_
edm::ParameterSet makePSetForEgammaDoubleEtDeltaPhiFilter(const std::string &)
EmDQM(const edm::ParameterSet &pset)
Constructor.
const std::string & processName() const
process name
std::vector< std::vector< MonitorElement * > > ethistmatchs
size_type filterIndex(const edm::InputTag &filterTag) const
index from tag
static const unsigned TYPE_SINGLE_PHOTON
std::vector< std::vector< MonitorElement * > > etaphihistmatchs
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidDiGamma_token
std::vector< std::vector< MonitorElement * > > histEtaOfHltObjMatchToGens
std::vector< std::vector< MonitorElement * > > phihistmatchs
bool checkGeneratedParticlesRequirement(const edm::Event &event)
MonitorElement * book2D(Args &&...args)
std::vector< MonitorElement * > phigens
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void addUntrackedParameter(std::string const &name, T const &value)
std::vector< edm::ParameterSet > paramSets
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidTripleEle_token
void getObjects(size_type filter, Vids &ids, VRphoton &photons) const
extract Ref<C>s for a specific filter and of specific physics type
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
bool accepted(std::vector< std::string_view > const &, std::string_view)
int countSubstring(const std::string &, const std::string &)
size_type size() const
number of filters
et
define resolution functions of each parameter
static const unsigned TYPE_SINGLE_ELE
double getPrimaryEtCut(const std::string &)
edm::ParameterSet makePSetForL1SeedToSuperClusterMatchFilter(const std::string &)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
bool useHumanReadableHistTitles_
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObject_token
static const unsigned TYPE_DOUBLE_ELE
HistoFiller< reco::RecoEcalCandidateCollection > * histoFillerClu
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
static const unsigned TYPE_TRIPLE_ELE
std::vector< std::vector< MonitorElement * > > histEtOfHltObjMatchToGens
std::vector< std::string > theHLTCollectionHumanNames
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_manualConf_token
GreaterByPt< reco::Particle > pTComparator_
std::vector< int > theHLTOutputTypes
edm::ParameterSet makePSetForEtFilter(const std::string &)
edm::ParameterSet makePSetForPixelMatchFilter(const std::string &)
unsigned int minEtForEtaEffPlot_
std::vector< std::vector< MonitorElement * > > etahists
edm::EDGetTokenT< edm::TriggerResults > hltResults_token
std::vector< std::vector< MonitorElement * > > ethists
std::vector< bool > plotiso