90 edm::LogInfo(
"EmDQM") <<
"The following filter types are not analyzed: \n" 91 <<
"\tHLTGlobalSumsMET\n" 92 <<
"\tHLTHtMhtFilter\n" 100 <<
"\tPFTauSelector\n" 102 <<
"\tHLTPFJetCollectionsFilter\n" 103 <<
"\tHLTPFJetCollectionsVBFFilter\n" 105 <<
"\tEtMinCaloJetSelector\n" 106 <<
"\tEtMinPFJetSelector\n" 107 <<
"\tLargestEtCaloJetSelector\n" 108 <<
"\tLargestEtPFJetSelector\n" 109 <<
"\tHLTEgammaTriggerFilterObjectWrapper\n" 110 <<
"\tHLTEgammaDoubleLegCombFilter\n" 111 <<
"\tHLT2ElectronTau\n" 112 <<
"\tHLT2ElectronMET\n" 113 <<
"\tHLT2ElectronPFTau\n" 114 <<
"\tHLTPMMassFilter\n" 115 <<
"\tHLTHcalTowerFilter\n" 118 <<
"\tHLTRHemisphere\n" 119 <<
"\tHLTElectronPFMTFilter\n" 120 <<
"\tPrimaryVertexObjectFilter\n" 121 <<
"\tHLTEgammaAllCombMassFilter\n" 128 std::vector<std::vector<std::string> > egammaPaths =
findEgammaPaths();
135 std::vector<std::string> filterModules;
137 for (
unsigned int j=0; j < egammaPaths.size() ; j++) {
141 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nSingle electron paths: ";
144 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nDouble electron paths: ";
147 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nTriple electron paths: ";
150 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nSingle photon paths: ";
153 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nDouble photon paths: ";
158 for (
unsigned int i=0;
i < egammaPaths.at(j).size() ;
i++) {
180 edm::LogWarning(
"EmDQM") <<
"Pathname: '" << pathName <<
"': Unable to determine a minimum Et. Will not include this path in the validation.";
188 if (ptMax < (1.2*genEtMin)) {
234 std::vector<edm::ParameterSet> filterVPSet;
239 for (std::vector<std::string>::iterator
filter = filterModules.begin();
filter != filterModules.end(); ++
filter) {
244 if (moduleType ==
"Pythia6GeneratorFilter" ||
245 moduleType ==
"HLTTriggerTypeFilter" ||
246 moduleType ==
"HLTLevel1Activity" ||
247 moduleType ==
"HLTPrescaler" ||
248 moduleType ==
"HLTBool")
252 if (moduleType ==
"HLTLevel1GTSeed") {
255 else if (moduleType ==
"HLTEgammaL1MatchFilterRegional") {
258 else if (moduleType ==
"HLTEgammaEtFilter") {
261 else if (moduleType ==
"HLTElectronOneOEMinusOneOPFilterRegional") {
264 else if (moduleType ==
"HLTElectronPixelMatchFilter") {
267 else if (moduleType ==
"HLTEgammaGenericFilter") {
270 else if (moduleType ==
"HLTEgammaGenericQuadraticFilter") {
273 else if (moduleType ==
"HLTElectronGenericFilter") {
276 else if (moduleType ==
"HLTEgammaDoubleEtDeltaPhiFilter") {
279 else if (moduleType ==
"HLTGlobalSumsMET" 280 || moduleType ==
"HLTHtMhtFilter" 281 || moduleType ==
"HLTMhtFilter" 282 || moduleType ==
"HLTJetTag" 283 || moduleType ==
"HLT1CaloJet" 284 || moduleType ==
"HLT1CaloMET" 285 || moduleType ==
"HLT1CaloBJet" 286 || moduleType ==
"HLT1Tau" 287 || moduleType ==
"HLT1PFTau" 288 || moduleType ==
"PFTauSelector" 289 || moduleType ==
"HLT1PFJet" 290 || moduleType ==
"HLTPFJetCollectionsFilter" 291 || moduleType ==
"HLTPFJetCollectionsVBFFilter" 292 || moduleType ==
"HLTPFJetTag" 293 || moduleType ==
"EtMinCaloJetSelector" 294 || moduleType ==
"EtMinPFJetSelector" 295 || moduleType ==
"LargestEtCaloJetSelector" 296 || moduleType ==
"LargestEtPFJetSelector" 297 || moduleType ==
"HLTEgammaTriggerFilterObjectWrapper" 298 || moduleType ==
"HLTEgammaDoubleLegCombFilter" 299 || moduleType ==
"HLT2ElectronMET" 300 || moduleType ==
"HLT2ElectronTau" 301 || moduleType ==
"HLT2ElectronPFTau" 302 || moduleType ==
"HLTPMMassFilter" 303 || moduleType ==
"HLTHcalTowerFilter" 304 || moduleType ==
"HLT1Photon" 305 || moduleType ==
"HLTRFilter" 306 || moduleType ==
"HLTRHemisphere" 307 || moduleType ==
"HLTElectronPFMTFilter" 308 || moduleType ==
"PrimaryVertexObjectFilter" 309 || moduleType ==
"HLTEgammaAllCombMassFilter" 310 || moduleType.find(
"HLTMuon") != std::string::npos
315 edm::LogWarning(
"EmDQM") <<
"No parameter set for filter '" << moduleLabel <<
"' with filter type '" << moduleType <<
"' added. Module will not be analyzed.";
320 if (!filterPSet.
empty()) {
331 edm::LogPrint(
"EmDQM") <<
"No number of candidates for filter " << moduleLabel <<
" found. Set to " << paramSet.
getParameter<
int>(
"cutnum") <<
", determined from path name.";
334 edm::LogInfo(
"EmDQM") <<
"Changed required number of candidates from " << paramSet.
getParameter<
int>(
"cutnum") <<
" to " << filterPSet.
getParameter<
int>(
"ncandcut") <<
" for filter " << moduleLabel;
339 filterVPSet.push_back(filterPSet);
347 if (!filterPSet.
empty()) {
356 paramSet.
addParameter<std::vector<edm::ParameterSet> >(
"filters", filterVPSet);
360 edm::LogPrint(
"EmDQM") <<
"Will not include this path in the validation due to errors while generating the parameter set.";
379 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
403 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
414 std::vector<MonitorElement*> etahist;
415 std::vector<MonitorElement*> phihist;
416 std::vector<MonitorElement*> ethist;
417 std::vector<MonitorElement*> etahistmatch;
418 std::vector<MonitorElement*> phihistmatch;
419 std::vector<MonitorElement*> ethistmatch;
420 std::vector<MonitorElement*> histEtOfHltObjMatchToGen;
421 std::vector<MonitorElement*> histEtaOfHltObjMatchToGen;
422 std::vector<MonitorElement*> histPhiOfHltObjMatchToGen;
423 std::vector<MonitorElement*> etaphihist;
424 std::vector<MonitorElement*> etaphihistmatch;
425 std::vector<MonitorElement*> histEtaPhiOfHltObjMatchToGen;
448 histName=
"total_eff_MC_matched";
449 histTitle=
"total events passing (mc matched)";
466 pdgIdString=
"Electron";
break;
468 pdgIdString=
"Photon";
break;
470 pdgIdString=
"Particle";
474 histTitle=
"E_{T} of " + pdgIdString +
"s" ;
476 histName =
"gen_eta";
477 histTitle=
"#eta of "+ pdgIdString +
"s " ;
479 histName =
"gen_phi";
480 histTitle=
"#phi of "+ pdgIdString +
"s " ;
482 histName =
"gen_etaphi";
483 histTitle=
"#eta-#phi of "+ pdgIdString +
"s " ;
489 std::vector<std::string> HltHistTitle;
502 histTitle = HltHistTitle[
i]+
" Et (ALL)";
504 ethist.push_back(tmphisto);
508 histTitle = HltHistTitle[
i]+
" #eta (ALL)";
510 etahist.push_back(tmphisto);
515 histTitle = HltHistTitle[
i]+
" #phi (ALL)";
517 phihist.push_back(tmphisto);
521 histTitle = HltHistTitle[
i]+
" #eta-#phi (ALL)";
523 etaphihist.push_back(tmphisto);
528 histTitle = HltHistTitle[
i]+
" Et";
530 histEtOfHltObjMatchToGen.push_back(tmphisto);
534 histTitle = HltHistTitle[
i]+
" eta";
536 histEtaOfHltObjMatchToGen.push_back(tmphisto);
541 histTitle = HltHistTitle[
i]+
" phi";
543 histPhiOfHltObjMatchToGen.push_back(tmphisto);
547 histTitle = HltHistTitle[
i]+
" eta-phi";
549 histEtaPhiOfHltObjMatchToGen.push_back(tmphisto);
554 histTitle = HltHistTitle[
i]+
" Et (MC matched)";
556 ethistmatch.push_back(tmphisto);
560 histTitle = HltHistTitle[
i]+
" #eta (MC matched)";
562 etahistmatch.push_back(tmphisto);
567 histTitle = HltHistTitle[
i]+
" #phi (MC matched)";
569 phihistmatch.push_back(tmphisto);
573 histTitle = HltHistTitle[
i]+
" #eta-#phi (MC matched)";
575 etaphihistmatch.push_back(tmphisto);
634 std::vector<reco::LeafCandidate> allSortedGenParticles;
641 if ( !(
abs((*currentGenParticle).pdgId())==
pdgGen && (*currentGenParticle).status()==1 && (*currentGenParticle).et() > 2.0) )
continue;
647 allSortedGenParticles.push_back(tmpcand);
650 std::sort(allSortedGenParticles.begin(), allSortedGenParticles.end(),
pTGenComparator_);
653 if (allSortedGenParticles.size() <
gencut_)
663 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
664 bool inECALgap = fabs(allSortedGenParticles[
i].
eta()) > 1.4442 && fabs(allSortedGenParticles[
i].
eta()) < 1.556;
665 if ( (fabs(allSortedGenParticles[
i].
eta()) >
genEtaAcc_) || inECALgap ) {
700 if(!referenceParticles.
isValid()) {
706 std::vector<const reco::Candidate *> allSortedReferenceParticles;
709 currentReferenceParticle != referenceParticles->end();
710 currentReferenceParticle++)
712 if ( currentReferenceParticle->et() <= 2.0)
720 if (currentReferenceParticle->et() <
plotEtMin)
724 allSortedReferenceParticles.push_back(&(*currentReferenceParticle));
730 return allSortedReferenceParticles.size() >=
gencut_;
740 unsigned int vPos = 0;
741 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
770 if (cutCounter->size() < (
unsigned int)
gencut_) {
781 edm::LogWarning(
"EmDQM") <<
"parameter triggerobject (" <<
triggerObject_ <<
") does not corresond to a valid TriggerEventWithRefs product. Please check especially the process name (e.g. when running over reprocessed datasets)";
815 std::vector<reco::Particle> sortedGen;
817 reco::Particle tmpcand( genpart->charge(), genpart->p4(), genpart->vertex(),genpart->pdgId(),genpart->status() );
819 sortedGen.push_back(tmpcand);
827 if (sortedGen.size() <
gencut_){
830 sortedGen.erase(sortedGen.begin()+
gencut_,sortedGen.end());
832 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
833 etgens.at(vPos)->Fill( sortedGen[
i].
et() );
843 bool accepted =
true;
856 std::vector<reco::Particle> sortedGenForFilter(sortedGen);
857 sortedGenForFilter.erase(sortedGenForFilter.begin() +
nCandCuts.at(
n), sortedGenForFilter.end());
881 throw(
cms::Exception(
"Release Validation Error") <<
"HLT output type not implemented: theHLTOutputTypes[n]" );
897 std::vector<edm::Ref<T> > recoecalcands;
898 if ( ( triggerObj->
filterIndex(
dqm->theHLTCollectionLabels[n])>=triggerObj->
size() )){
899 dqm->hltCollectionLabelsMissed.insert(
dqm->theHLTCollectionLabels[n].encode());
904 dqm->hltCollectionLabelsFound.insert(
dqm->theHLTCollectionLabels[n].encode());
913 std::vector<edm::Ref<T> > isocands;
915 if (!isocands.empty())
917 for (
unsigned int i=0;
i < isocands.size();
i++)
918 recoecalcands.push_back(isocands[
i]);
923 if (recoecalcands.empty()){
929 if (recoecalcands.size() >=
dqm->nCandCuts.at(n) && !
dqm->mcMatchedOnly_)
930 dqm->totals.at(vPos)->Fill(n+0.5);
936 for (
unsigned int j=0; j<recoecalcands.size(); j++){
937 if(!( recoecalcands.at(j).isAvailable())){
938 if (
dqm->verbosity_ >=
dqm->OUTPUT_ERRORS)
939 edm::LogError(
"EmDQMInvalidRefs") <<
"Event content inconsistent: TriggerEventWithRefs contains invalid Refs. Invalid refs for: " <<
dqm->theHLTCollectionLabels[
n].label() <<
". The collection that this module uses may has been dropped in the event.";
944 if (!
dqm->mcMatchedOnly_) {
950 for (
unsigned int i=0;
i <
dqm->nCandCuts.at(n);
i++) {
953 float closestDeltaR = 0.5;
954 int closestEcalCandIndex = -1;
955 for (
unsigned int j=0; j<recoecalcands.size(); j++) {
956 float deltaR =
DeltaR(recoecalcands[j]->momentum(),currentGenParticleMomentum);
958 if (deltaR < closestDeltaR) {
960 closestEcalCandIndex = j;
966 if ( closestEcalCandIndex >= 0 ) {
967 dqm->histEtOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
et() );
968 dqm->histEtaOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta() );
969 if (!
dqm->noPhiPlots_)
dqm->histPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
phi() );
970 dqm->histEtaPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta(),recoecalcands[closestEcalCandIndex]->
phi());
980 for (
unsigned int i=0;
i<recoecalcands.size();
i++) {
998 dqm->ethists.at(vPos).at(n) ->Fill(recoecalcands[
i]->
et() );
999 dqm->etahists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta() );
1000 if (!
dqm->noPhiPlots_)
dqm->phihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
phi() );
1001 dqm->etaphihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta(),recoecalcands[
i]->
phi() );
1008 unsigned int matchedMcParts = 0;
1010 if(n==0) mindist=0.5;
1011 for(
unsigned int i =0;
i <
dqm->nCandCuts.at(n); ++
i){
1013 bool matchThis=
false;
1016 double closestDr = 1000.;
1017 for(
unsigned int trigOb = 0 ; trigOb < recoecalcands.size(); ++trigOb){
1018 double dr =
DeltaR(recoecalcands[trigOb]->momentum(),candDir);
1019 if (dr < closestDr) {
1023 if (closestDr > mindist) {
1035 dqm->ethistmatchs.at(vPos).at(n) ->Fill( sortedGen[
i].
et() );
1036 if (sortedGen[
i].
et() >
dqm->minEtForEtaEffPlot_) {
1037 dqm->etahistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta() );
1038 if (!
dqm->noPhiPlots_)
dqm->phihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
phi() );
1039 dqm->etaphihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta(),sortedGen[
i].
phi() );
1044 if (matchedMcParts >=
dqm->nCandCuts.at(n) && accepted ==
true)
1045 dqm->totalmatchs.at(vPos)->Fill(n+0.5);
1052 unsigned int vPos = 0;
1053 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
1060 std::vector<std::string> labelsNeverFound;
1066 labelsNeverFound.push_back(tag.
encode());
1070 if (labelsNeverFound.empty())
1073 std::sort(labelsNeverFound.begin(), labelsNeverFound.end());
1079 edm::LogWarning(
"EmDQM") <<
"There were some HLTCollectionLabels which were never found:";
1101 if (sub.length() == 0)
return 0;
1103 for (
size_t offset = str.find(sub);
offset != std::string::npos;
1113 std::vector<std::vector<std::string> >
1116 std::vector<std::vector<std::string> > Paths(5);
1123 if (
int(path.find(
"HLT_")) == 0) {
1133 int totEleCount = 2*tripleEleCount + doubleEleCount + eleCount + scCount + 2*doubleSCCount;
1134 int totPhotonCount = doublePhotonCount + photonCount;
1136 if (totEleCount + totPhotonCount < 1)
continue;
1137 switch (totEleCount) {
1152 switch (totPhotonCount) {
1170 std::vector<std::string>
1173 std::vector<std::string>
filters;
1185 if (moduleEDMType ==
"EDFilter" || moduleType.find(
"Filter") != std::string::npos) {
1186 filters.push_back(module);
1200 boost::regex reg(
"^HLT_.*?(Ele|hoton|EG|SC)([[:digit:]]+).*");
1203 if (boost::regex_match(path, what, reg, boost::match_extra))
1205 minEt = boost::lexical_cast<
double>(what[2]);
1222 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1225 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1235 int candCount = 2*tEgCount + dEgCount + egCount;
1237 if (orCount > 0 && candCount > 0) {
1238 if (egCount % (orCount+1) == 0 && dEgCount % (orCount+1) == 0 && tEgCount % (orCount+1) == 0) candCount /= (orCount+1);
1239 else if (egCount-dEgCount-tEgCount > 0) candCount = 1;
1240 else if (dEgCount > 0) candCount = 2;
1241 else if (tEgCount > 0) candCount = 3;
1242 else candCount = -1;
1245 switch (candCount) {
1277 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1280 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1294 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1297 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1311 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1314 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1328 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1331 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1345 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1348 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1399 std::vector<edm::InputTag> isoCollections;
1400 isoCollections.push_back(varTag);
1408 if (inputType ==
"EgammaHLTR9Producer" ||
1409 inputType ==
"EgammaHLTR9IDProducer" ||
1410 inputType ==
"EgammaHLTClusterShapeProducer" ||
1411 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1412 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1413 inputType ==
"EgammaHLTGsfTrackVarProducer" ||
1414 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1415 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1416 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1417 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1419 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1422 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1429 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1477 std::vector<edm::InputTag> isoCollections;
1478 isoCollections.push_back(varTag);
1486 if (inputType ==
"EgammaHLTR9Producer" ||
1487 inputType ==
"EgammaHLTR9IDProducer" ||
1488 inputType ==
"EgammaHLTClusterShapeProducer" ||
1489 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1490 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1491 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1492 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1493 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1494 inputType ==
"EgammaHLTPhotonTrackIsolationProducersRegional" 1496 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1499 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1506 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericQuadraticFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1549 std::vector<edm::InputTag> isoCollections;
1550 isoCollections.push_back(varTag);
1560 if (inputType ==
"EgammaHLTElectronDetaDphiProducer" ||
1561 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1563 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1566 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1573 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTElectronGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1583 pathIndex = psetIt->getUntrackedParameter<
unsigned int>(
"pathIndex", 0);
1585 reqNum = psetIt->getParameter<
unsigned int>(
"reqNum");
1586 pdgGen = psetIt->getParameter<
int>(
"pdgGen");
1588 plotEtMin = psetIt->getUntrackedParameter<
double>(
"genEtMin",0.);
1589 plotPtMin = psetIt->getUntrackedParameter<
double>(
"PtMin",0.);
1590 plotPtMax = psetIt->getUntrackedParameter<
double>(
"PtMax",1000.);
1594 gencut_ = psetIt->getParameter<
int>(
"cutnum");
1600 std::vector<edm::ParameterSet>
filters =
1601 psetIt->getParameter<std::vector<edm::ParameterSet> >(
"filters");
1613 for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++)
1617 theHLTOutputTypes.push_back(filterconf->getParameter<
int>(
"theHLTOutputTypes"));
1621 std::vector<double> bounds = filterconf->getParameter<std::vector<double> >(
"PlotBounds");
1623 assert(bounds.size() == 2);
1624 plotBounds.push_back(std::pair<double,double>(bounds[0],bounds[1]));
1625 isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag> >(
"IsoCollections"));
1651 if (
isoNames.back().at(0).label()==
"none") {
1655 else plotiso.push_back(
false);
1657 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.
T getParameter(std::string const &) const
std::vector< MonitorElement * > totals
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
void fillHistos(edm::Handle< trigger::TriggerEventWithRefs > &, const edm::Event &, unsigned int, unsigned int, std::vector< reco::Particle > &, bool &)
std::vector< std::vector< MonitorElement * > > histEtaPhiOfHltObjMatchToGens
edm::EDGetTokenT< edm::View< reco::Candidate > > genParticles_token
const std::string moduleType(const std::string &module) const
C++ class name of module.
std::vector< std::vector< MonitorElement * > > histEtOfHltObjMatchToGens
std::vector< std::vector< std::string > > findEgammaPaths()
bool checkRecoParticlesRequirement(const edm::Event &event)
const std::string & triggerName(unsigned int triggerIndex) const
unsigned int numOfHLTCollectionLabels
std::vector< std::vector< MonitorElement * > > phihists
void endRun(edm::Run const &, edm::EventSetup const &) override
std::vector< std::set< std::string > > hltCollectionLabelsMissedPerPath
static const unsigned OUTPUT_ALL
#define DEFINE_FWK_MODULE(type)
std::set< std::string > hltCollectionLabelsFound
std::vector< std::vector< MonitorElement * > > histPhiOfHltObjMatchToGens
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
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)
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< TPRegexp > filters
bool changed() const
changed?
std::vector< std::vector< MonitorElement * > > etahists
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 &)
std::vector< MonitorElement * > etagens
std::vector< std::vector< MonitorElement * > > ethists
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)
HistoFiller< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
std::vector< std::vector< MonitorElement * > > ethistmatchs
std::vector< unsigned int > nCandCuts
HistoFiller< reco::RecoEcalCandidateCollection > * histoFillerPho
edm::InputTag triggerObject_
static const unsigned OUTPUT_WARNINGS
double et() const final
transverse energy
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
std::vector< std::vector< MonitorElement * > > etahistmatchs
MonitorElement * book1D(Args &&...args)
void SetVarsFromPSet(std::vector< edm::ParameterSet >::iterator)
Abs< T >::type abs(const T &t)
const edm::ParameterSet & pset
std::vector< std::vector< MonitorElement * > > etaphihists
edm::InputTag gencutCollection_
edm::ParameterSet makePSetForEgammaDoubleEtDeltaPhiFilter(const std::string &)
std::vector< std::vector< MonitorElement * > > phihistmatchs
EmDQM(const edm::ParameterSet &pset)
Constructor.
const std::string & processName() const
process name
size_type filterIndex(const edm::InputTag &filterTag) const
index from tag
double deltaR(double eta1, double eta2, double phi1, double phi2)
static const unsigned TYPE_SINGLE_PHOTON
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_fidDiGamma_token
void setCurrentFolder(const std::string &fullpath)
bool checkGeneratedParticlesRequirement(const edm::Event &event)
MonitorElement * book2D(Args &&...args)
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
std::vector< std::vector< MonitorElement * > > etaphihistmatchs
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
std::vector< std::vector< MonitorElement * > > histEtaOfHltObjMatchToGens
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
std::vector< MonitorElement * > totalmatchs
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::string > theHLTCollectionHumanNames
edm::EDGetTokenT< edm::View< reco::Candidate > > gencutColl_manualConf_token
GreaterByPt< reco::Particle > pTComparator_
std::vector< MonitorElement * > phigens
std::vector< int > theHLTOutputTypes
edm::ParameterSet makePSetForEtFilter(const std::string &)
edm::ParameterSet makePSetForPixelMatchFilter(const std::string &)
std::vector< MonitorElement * > etaphigens
unsigned int minEtForEtaEffPlot_
edm::EDGetTokenT< edm::TriggerResults > hltResults_token
std::vector< std::pair< double, double > > plotBounds
std::vector< MonitorElement * > etgens
std::vector< bool > plotiso