82 edm::LogInfo(
"EmDQM") <<
"The following filter types are not analyzed: \n" 83 <<
"\tHLTGlobalSumsMET\n" 84 <<
"\tHLTHtMhtFilter\n" 92 <<
"\tPFTauSelector\n" 94 <<
"\tHLTPFJetCollectionsFilter\n" 95 <<
"\tHLTPFJetCollectionsVBFFilter\n" 97 <<
"\tEtMinCaloJetSelector\n" 98 <<
"\tEtMinPFJetSelector\n" 99 <<
"\tLargestEtCaloJetSelector\n" 100 <<
"\tLargestEtPFJetSelector\n" 101 <<
"\tHLTEgammaTriggerFilterObjectWrapper\n" 102 <<
"\tHLTEgammaDoubleLegCombFilter\n" 103 <<
"\tHLT2ElectronTau\n" 104 <<
"\tHLT2ElectronMET\n" 105 <<
"\tHLT2ElectronPFTau\n" 106 <<
"\tHLTPMMassFilter\n" 107 <<
"\tHLTHcalTowerFilter\n" 110 <<
"\tHLTRHemisphere\n" 111 <<
"\tHLTElectronPFMTFilter\n" 112 <<
"\tPrimaryVertexObjectFilter\n" 113 <<
"\tHLTEgammaAllCombMassFilter\n" 120 std::vector<std::vector<std::string> > egammaPaths =
findEgammaPaths();
127 std::vector<std::string> filterModules;
129 for (
unsigned int j=0; j < egammaPaths.size() ; j++) {
133 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nSingle electron paths: ";
136 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nDouble electron paths: ";
139 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nTriple electron paths: ";
142 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nSingle photon paths: ";
145 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nDouble photon paths: ";
150 for (
unsigned int i=0;
i < egammaPaths.at(j).size() ;
i++) {
172 edm::LogWarning(
"EmDQM") <<
"Pathname: '" << pathName <<
"': Unable to determine a minimum Et. Will not include this path in the validation.";
180 if (ptMax < (1.2*genEtMin)) {
226 std::vector<edm::ParameterSet> filterVPSet;
231 for (std::vector<std::string>::iterator
filter = filterModules.begin();
filter != filterModules.end(); ++
filter) {
236 if (moduleType ==
"Pythia6GeneratorFilter" ||
237 moduleType ==
"HLTTriggerTypeFilter" ||
238 moduleType ==
"HLTLevel1Activity" ||
239 moduleType ==
"HLTPrescaler" ||
240 moduleType ==
"HLTBool")
244 if (moduleType ==
"HLTLevel1GTSeed") {
247 else if (moduleType ==
"HLTEgammaL1MatchFilterRegional") {
250 else if (moduleType ==
"HLTEgammaEtFilter") {
253 else if (moduleType ==
"HLTElectronOneOEMinusOneOPFilterRegional") {
256 else if (moduleType ==
"HLTElectronPixelMatchFilter") {
259 else if (moduleType ==
"HLTEgammaGenericFilter") {
262 else if (moduleType ==
"HLTEgammaGenericQuadraticFilter") {
265 else if (moduleType ==
"HLTElectronGenericFilter") {
268 else if (moduleType ==
"HLTEgammaDoubleEtDeltaPhiFilter") {
271 else if (moduleType ==
"HLTGlobalSumsMET" 272 || moduleType ==
"HLTHtMhtFilter" 273 || moduleType ==
"HLTMhtFilter" 274 || moduleType ==
"HLTJetTag" 275 || moduleType ==
"HLT1CaloJet" 276 || moduleType ==
"HLT1CaloMET" 277 || moduleType ==
"HLT1CaloBJet" 278 || moduleType ==
"HLT1Tau" 279 || moduleType ==
"HLT1PFTau" 280 || moduleType ==
"PFTauSelector" 281 || moduleType ==
"HLT1PFJet" 282 || moduleType ==
"HLTPFJetCollectionsFilter" 283 || moduleType ==
"HLTPFJetCollectionsVBFFilter" 284 || moduleType ==
"HLTPFJetTag" 285 || moduleType ==
"EtMinCaloJetSelector" 286 || moduleType ==
"EtMinPFJetSelector" 287 || moduleType ==
"LargestEtCaloJetSelector" 288 || moduleType ==
"LargestEtPFJetSelector" 289 || moduleType ==
"HLTEgammaTriggerFilterObjectWrapper" 290 || moduleType ==
"HLTEgammaDoubleLegCombFilter" 291 || moduleType ==
"HLT2ElectronMET" 292 || moduleType ==
"HLT2ElectronTau" 293 || moduleType ==
"HLT2ElectronPFTau" 294 || moduleType ==
"HLTPMMassFilter" 295 || moduleType ==
"HLTHcalTowerFilter" 296 || moduleType ==
"HLT1Photon" 297 || moduleType ==
"HLTRFilter" 298 || moduleType ==
"HLTRHemisphere" 299 || moduleType ==
"HLTElectronPFMTFilter" 300 || moduleType ==
"PrimaryVertexObjectFilter" 301 || moduleType ==
"HLTEgammaAllCombMassFilter" 302 || moduleType.find(
"HLTMuon") != std::string::npos
307 edm::LogWarning(
"EmDQM") <<
"No parameter set for filter '" << moduleLabel <<
"' with filter type '" << moduleType <<
"' added. Module will not be analyzed.";
312 if (!filterPSet.
empty()) {
323 edm::LogPrint(
"EmDQM") <<
"No number of candidates for filter " << moduleLabel <<
" found. Set to " << paramSet.
getParameter<
int>(
"cutnum") <<
", determined from path name.";
326 edm::LogInfo(
"EmDQM") <<
"Changed required number of candidates from " << paramSet.
getParameter<
int>(
"cutnum") <<
" to " << filterPSet.
getParameter<
int>(
"ncandcut") <<
" for filter " << moduleLabel;
331 filterVPSet.push_back(filterPSet);
339 if (!filterPSet.
empty()) {
348 paramSet.
addParameter<std::vector<edm::ParameterSet> >(
"filters", filterVPSet);
352 edm::LogPrint(
"EmDQM") <<
"Will not include this path in the validation due to errors while generating the parameter set.";
371 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
395 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
406 std::vector<MonitorElement*> etahist;
407 std::vector<MonitorElement*> phihist;
408 std::vector<MonitorElement*> ethist;
409 std::vector<MonitorElement*> etahistmatch;
410 std::vector<MonitorElement*> phihistmatch;
411 std::vector<MonitorElement*> ethistmatch;
412 std::vector<MonitorElement*> histEtOfHltObjMatchToGen;
413 std::vector<MonitorElement*> histEtaOfHltObjMatchToGen;
414 std::vector<MonitorElement*> histPhiOfHltObjMatchToGen;
415 std::vector<MonitorElement*> etaphihist;
416 std::vector<MonitorElement*> etaphihistmatch;
417 std::vector<MonitorElement*> histEtaPhiOfHltObjMatchToGen;
440 histName=
"total_eff_MC_matched";
441 histTitle=
"total events passing (mc matched)";
458 pdgIdString=
"Electron";
break;
460 pdgIdString=
"Photon";
break;
462 pdgIdString=
"Particle";
466 histTitle=
"E_{T} of " + pdgIdString +
"s" ;
468 histName =
"gen_eta";
469 histTitle=
"#eta of "+ pdgIdString +
"s " ;
471 histName =
"gen_phi";
472 histTitle=
"#phi of "+ pdgIdString +
"s " ;
474 histName =
"gen_etaphi";
475 histTitle=
"#eta-#phi of "+ pdgIdString +
"s " ;
481 std::vector<std::string> HltHistTitle;
494 histTitle = HltHistTitle[
i]+
" Et (ALL)";
496 ethist.push_back(tmphisto);
500 histTitle = HltHistTitle[
i]+
" #eta (ALL)";
502 etahist.push_back(tmphisto);
507 histTitle = HltHistTitle[
i]+
" #phi (ALL)";
509 phihist.push_back(tmphisto);
513 histTitle = HltHistTitle[
i]+
" #eta-#phi (ALL)";
515 etaphihist.push_back(tmphisto);
520 histTitle = HltHistTitle[
i]+
" Et";
522 histEtOfHltObjMatchToGen.push_back(tmphisto);
526 histTitle = HltHistTitle[
i]+
" eta";
528 histEtaOfHltObjMatchToGen.push_back(tmphisto);
533 histTitle = HltHistTitle[
i]+
" phi";
535 histPhiOfHltObjMatchToGen.push_back(tmphisto);
539 histTitle = HltHistTitle[
i]+
" eta-phi";
541 histEtaPhiOfHltObjMatchToGen.push_back(tmphisto);
546 histTitle = HltHistTitle[
i]+
" Et (MC matched)";
548 ethistmatch.push_back(tmphisto);
552 histTitle = HltHistTitle[
i]+
" #eta (MC matched)";
554 etahistmatch.push_back(tmphisto);
559 histTitle = HltHistTitle[
i]+
" #phi (MC matched)";
561 phihistmatch.push_back(tmphisto);
565 histTitle = HltHistTitle[
i]+
" #eta-#phi (MC matched)";
567 etaphihistmatch.push_back(tmphisto);
626 std::vector<reco::LeafCandidate> allSortedGenParticles;
633 if ( !(
abs((*currentGenParticle).pdgId())==
pdgGen && (*currentGenParticle).status()==1 && (*currentGenParticle).et() > 2.0) )
continue;
639 allSortedGenParticles.push_back(tmpcand);
642 std::sort(allSortedGenParticles.begin(), allSortedGenParticles.end(),
pTGenComparator_);
645 if (allSortedGenParticles.size() <
gencut_)
655 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
656 bool inECALgap = fabs(allSortedGenParticles[
i].
eta()) > 1.4442 && fabs(allSortedGenParticles[
i].
eta()) < 1.556;
657 if ( (fabs(allSortedGenParticles[
i].
eta()) >
genEtaAcc_) || inECALgap ) {
692 if(!referenceParticles.
isValid()) {
698 std::vector<const reco::Candidate *> allSortedReferenceParticles;
701 currentReferenceParticle != referenceParticles->end();
702 currentReferenceParticle++)
704 if ( currentReferenceParticle->et() <= 2.0)
712 if (currentReferenceParticle->et() <
plotEtMin)
716 allSortedReferenceParticles.push_back(&(*currentReferenceParticle));
722 return allSortedReferenceParticles.size() >=
gencut_;
732 unsigned int vPos = 0;
733 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
762 if (cutCounter->size() < (
unsigned int)
gencut_) {
773 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)";
807 std::vector<reco::Particle> sortedGen;
809 reco::Particle tmpcand( genpart->charge(), genpart->p4(), genpart->vertex(),genpart->pdgId(),genpart->status() );
811 sortedGen.push_back(tmpcand);
819 if (sortedGen.size() <
gencut_){
822 sortedGen.erase(sortedGen.begin()+
gencut_,sortedGen.end());
824 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
825 etgens.at(vPos)->Fill( sortedGen[
i].
et() );
835 bool accepted =
true;
848 std::vector<reco::Particle> sortedGenForFilter(sortedGen);
849 sortedGenForFilter.erase(sortedGenForFilter.begin() +
nCandCuts.at(
n), sortedGenForFilter.end());
873 throw(
cms::Exception(
"Release Validation Error") <<
"HLT output type not implemented: theHLTOutputTypes[n]" );
889 std::vector<edm::Ref<T> > recoecalcands;
890 if ( ( triggerObj->
filterIndex(
dqm->theHLTCollectionLabels[n])>=triggerObj->
size() )){
891 dqm->hltCollectionLabelsMissed.insert(
dqm->theHLTCollectionLabels[n].encode());
896 dqm->hltCollectionLabelsFound.insert(
dqm->theHLTCollectionLabels[n].encode());
905 std::vector<edm::Ref<T> > isocands;
907 if (!isocands.empty())
909 for (
unsigned int i=0;
i < isocands.size();
i++)
910 recoecalcands.push_back(isocands[
i]);
915 if (recoecalcands.empty()){
921 if (recoecalcands.size() >=
dqm->nCandCuts.at(n) && !
dqm->mcMatchedOnly_)
922 dqm->totals.at(vPos)->Fill(n+0.5);
928 for (
unsigned int j=0; j<recoecalcands.size(); j++){
929 if(!( recoecalcands.at(j).isAvailable())){
930 if (
dqm->verbosity_ >=
dqm->OUTPUT_ERRORS)
931 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.";
936 if (!
dqm->mcMatchedOnly_) {
942 for (
unsigned int i=0;
i <
dqm->nCandCuts.at(n);
i++) {
945 float closestDeltaR = 0.5;
946 int closestEcalCandIndex = -1;
947 for (
unsigned int j=0; j<recoecalcands.size(); j++) {
948 float deltaR =
DeltaR(recoecalcands[j]->momentum(),currentGenParticleMomentum);
950 if (deltaR < closestDeltaR) {
952 closestEcalCandIndex = j;
958 if ( closestEcalCandIndex >= 0 ) {
959 dqm->histEtOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
et() );
960 dqm->histEtaOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta() );
961 if (!
dqm->noPhiPlots_)
dqm->histPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
phi() );
962 dqm->histEtaPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta(),recoecalcands[closestEcalCandIndex]->
phi());
972 for (
unsigned int i=0;
i<recoecalcands.size();
i++) {
990 dqm->ethists.at(vPos).at(n) ->Fill(recoecalcands[
i]->
et() );
991 dqm->etahists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta() );
992 if (!
dqm->noPhiPlots_)
dqm->phihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
phi() );
993 dqm->etaphihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta(),recoecalcands[
i]->
phi() );
1000 unsigned int matchedMcParts = 0;
1002 if(n==0) mindist=0.5;
1003 for(
unsigned int i =0;
i <
dqm->nCandCuts.at(n); ++
i){
1005 bool matchThis=
false;
1008 double closestDr = 1000.;
1009 for(
unsigned int trigOb = 0 ; trigOb < recoecalcands.size(); ++trigOb){
1010 double dr =
DeltaR(recoecalcands[trigOb]->momentum(),candDir);
1011 if (dr < closestDr) {
1015 if (closestDr > mindist) {
1027 dqm->ethistmatchs.at(vPos).at(n) ->Fill( sortedGen[
i].
et() );
1028 if (sortedGen[
i].
et() >
dqm->minEtForEtaEffPlot_) {
1029 dqm->etahistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta() );
1030 if (!
dqm->noPhiPlots_)
dqm->phihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
phi() );
1031 dqm->etaphihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta(),sortedGen[
i].
phi() );
1036 if (matchedMcParts >=
dqm->nCandCuts.at(n) && accepted ==
true)
1037 dqm->totalmatchs.at(vPos)->Fill(n+0.5);
1044 unsigned int vPos = 0;
1045 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
1052 std::vector<std::string> labelsNeverFound;
1058 labelsNeverFound.push_back(tag.
encode());
1062 if (labelsNeverFound.empty())
1065 std::sort(labelsNeverFound.begin(), labelsNeverFound.end());
1071 edm::LogWarning(
"EmDQM") <<
"There were some HLTCollectionLabels which were never found:";
1085 if (sub.length() == 0)
return 0;
1087 for (
size_t offset = str.find(sub);
offset != std::string::npos;
1097 std::vector<std::vector<std::string> >
1100 std::vector<std::vector<std::string> > Paths(5);
1107 if (
int(path.find(
"HLT_")) == 0) {
1117 int totEleCount = 2*tripleEleCount + doubleEleCount + eleCount + scCount + 2*doubleSCCount;
1118 int totPhotonCount = doublePhotonCount + photonCount;
1120 if (totEleCount + totPhotonCount < 1)
continue;
1121 switch (totEleCount) {
1136 switch (totPhotonCount) {
1154 std::vector<std::string>
1157 std::vector<std::string>
filters;
1169 if (moduleEDMType ==
"EDFilter" || moduleType.find(
"Filter") != std::string::npos) {
1170 filters.push_back(module);
1184 boost::regex reg(
"^HLT_.*?(Ele|hoton|EG|SC)([[:digit:]]+).*");
1187 if (boost::regex_match(path, what, reg, boost::match_extra))
1189 minEt = boost::lexical_cast<
double>(what[2]);
1206 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1209 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1219 int candCount = 2*tEgCount + dEgCount + egCount;
1221 if (orCount > 0 && candCount > 0) {
1222 if (egCount % (orCount+1) == 0 && dEgCount % (orCount+1) == 0 && tEgCount % (orCount+1) == 0) candCount /= (orCount+1);
1223 else if (egCount-dEgCount-tEgCount > 0) candCount = 1;
1224 else if (dEgCount > 0) candCount = 2;
1225 else if (tEgCount > 0) candCount = 3;
1226 else candCount = -1;
1229 switch (candCount) {
1261 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1264 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1278 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1281 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1295 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1298 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1312 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1315 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1329 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1332 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1383 std::vector<edm::InputTag> isoCollections;
1384 isoCollections.push_back(varTag);
1392 if (inputType ==
"EgammaHLTR9Producer" ||
1393 inputType ==
"EgammaHLTR9IDProducer" ||
1394 inputType ==
"EgammaHLTClusterShapeProducer" ||
1395 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1396 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1397 inputType ==
"EgammaHLTGsfTrackVarProducer" ||
1398 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1399 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1400 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1401 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1403 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1406 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1413 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1461 std::vector<edm::InputTag> isoCollections;
1462 isoCollections.push_back(varTag);
1470 if (inputType ==
"EgammaHLTR9Producer" ||
1471 inputType ==
"EgammaHLTR9IDProducer" ||
1472 inputType ==
"EgammaHLTClusterShapeProducer" ||
1473 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1474 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1475 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1476 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1477 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1478 inputType ==
"EgammaHLTPhotonTrackIsolationProducersRegional" 1480 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1483 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1490 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericQuadraticFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1533 std::vector<edm::InputTag> isoCollections;
1534 isoCollections.push_back(varTag);
1544 if (inputType ==
"EgammaHLTElectronDetaDphiProducer" ||
1545 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1547 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1550 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1557 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTElectronGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1567 pathIndex = psetIt->getUntrackedParameter<
unsigned int>(
"pathIndex", 0);
1569 reqNum = psetIt->getParameter<
unsigned int>(
"reqNum");
1570 pdgGen = psetIt->getParameter<
int>(
"pdgGen");
1572 plotEtMin = psetIt->getUntrackedParameter<
double>(
"genEtMin",0.);
1573 plotPtMin = psetIt->getUntrackedParameter<
double>(
"PtMin",0.);
1574 plotPtMax = psetIt->getUntrackedParameter<
double>(
"PtMax",1000.);
1578 gencut_ = psetIt->getParameter<
int>(
"cutnum");
1584 std::vector<edm::ParameterSet>
filters =
1585 psetIt->getParameter<std::vector<edm::ParameterSet> >(
"filters");
1597 for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++)
1601 theHLTOutputTypes.push_back(filterconf->getParameter<
int>(
"theHLTOutputTypes"));
1605 std::vector<double> bounds = filterconf->getParameter<std::vector<double> >(
"PlotBounds");
1607 assert(bounds.size() == 2);
1608 plotBounds.push_back(std::pair<double,double>(bounds[0],bounds[1]));
1609 isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag> >(
"IsoCollections"));
1635 if (
isoNames.back().at(0).label()==
"none") {
1639 else plotiso.push_back(
false);
1641 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