87 edm::LogInfo(
"EmDQM") <<
"The following filter types are not analyzed: \n" 88 <<
"\tHLTGlobalSumsMET\n" 89 <<
"\tHLTHtMhtFilter\n" 97 <<
"\tPFTauSelector\n" 99 <<
"\tHLTPFJetCollectionsFilter\n" 100 <<
"\tHLTPFJetCollectionsVBFFilter\n" 102 <<
"\tEtMinCaloJetSelector\n" 103 <<
"\tEtMinPFJetSelector\n" 104 <<
"\tLargestEtCaloJetSelector\n" 105 <<
"\tLargestEtPFJetSelector\n" 106 <<
"\tHLTEgammaTriggerFilterObjectWrapper\n" 107 <<
"\tHLTEgammaDoubleLegCombFilter\n" 108 <<
"\tHLT2ElectronTau\n" 109 <<
"\tHLT2ElectronMET\n" 110 <<
"\tHLT2ElectronPFTau\n" 111 <<
"\tHLTPMMassFilter\n" 112 <<
"\tHLTHcalTowerFilter\n" 115 <<
"\tHLTRHemisphere\n" 116 <<
"\tHLTElectronPFMTFilter\n" 117 <<
"\tPrimaryVertexObjectFilter\n" 118 <<
"\tHLTEgammaAllCombMassFilter\n" 125 std::vector<std::vector<std::string> > egammaPaths =
findEgammaPaths();
132 std::vector<std::string> filterModules;
134 for (
unsigned int j=0; j < egammaPaths.size() ; j++) {
138 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nSingle electron paths: ";
141 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nDouble electron paths: ";
144 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nTriple electron paths: ";
147 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nSingle photon paths: ";
150 edm::LogPrint(
"EmDQM") <<
"/////////////////////////////////////////\nDouble photon paths: ";
155 for (
unsigned int i=0;
i < egammaPaths.at(j).size() ;
i++) {
177 edm::LogWarning(
"EmDQM") <<
"Pathname: '" << pathName <<
"': Unable to determine a minimum Et. Will not include 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(); ++
filter) {
241 if (moduleType ==
"Pythia6GeneratorFilter" ||
242 moduleType ==
"HLTTriggerTypeFilter" ||
243 moduleType ==
"HLTLevel1Activity" ||
244 moduleType ==
"HLTPrescaler" ||
245 moduleType ==
"HLTBool")
249 if (moduleType ==
"HLTLevel1GTSeed") {
252 else if (moduleType ==
"HLTEgammaL1MatchFilterRegional") {
255 else if (moduleType ==
"HLTEgammaEtFilter") {
258 else if (moduleType ==
"HLTElectronOneOEMinusOneOPFilterRegional") {
261 else if (moduleType ==
"HLTElectronPixelMatchFilter") {
264 else if (moduleType ==
"HLTEgammaGenericFilter") {
267 else if (moduleType ==
"HLTEgammaGenericQuadraticFilter") {
270 else if (moduleType ==
"HLTElectronGenericFilter") {
273 else if (moduleType ==
"HLTEgammaDoubleEtDeltaPhiFilter") {
276 else if (moduleType ==
"HLTGlobalSumsMET" 277 || moduleType ==
"HLTHtMhtFilter" 278 || moduleType ==
"HLTMhtFilter" 279 || moduleType ==
"HLTJetTag" 280 || moduleType ==
"HLT1CaloJet" 281 || moduleType ==
"HLT1CaloMET" 282 || moduleType ==
"HLT1CaloBJet" 283 || moduleType ==
"HLT1Tau" 284 || moduleType ==
"HLT1PFTau" 285 || moduleType ==
"PFTauSelector" 286 || moduleType ==
"HLT1PFJet" 287 || moduleType ==
"HLTPFJetCollectionsFilter" 288 || moduleType ==
"HLTPFJetCollectionsVBFFilter" 289 || moduleType ==
"HLTPFJetTag" 290 || moduleType ==
"EtMinCaloJetSelector" 291 || moduleType ==
"EtMinPFJetSelector" 292 || moduleType ==
"LargestEtCaloJetSelector" 293 || moduleType ==
"LargestEtPFJetSelector" 294 || moduleType ==
"HLTEgammaTriggerFilterObjectWrapper" 295 || moduleType ==
"HLTEgammaDoubleLegCombFilter" 296 || moduleType ==
"HLT2ElectronMET" 297 || moduleType ==
"HLT2ElectronTau" 298 || moduleType ==
"HLT2ElectronPFTau" 299 || moduleType ==
"HLTPMMassFilter" 300 || moduleType ==
"HLTHcalTowerFilter" 301 || moduleType ==
"HLT1Photon" 302 || moduleType ==
"HLTRFilter" 303 || moduleType ==
"HLTRHemisphere" 304 || moduleType ==
"HLTElectronPFMTFilter" 305 || moduleType ==
"PrimaryVertexObjectFilter" 306 || moduleType ==
"HLTEgammaAllCombMassFilter" 307 || moduleType.find(
"HLTMuon") != std::string::npos
312 edm::LogWarning(
"EmDQM") <<
"No parameter set for filter '" << moduleLabel <<
"' with filter type '" << moduleType <<
"' added. Module will not be analyzed.";
317 if (!filterPSet.
empty()) {
328 edm::LogPrint(
"EmDQM") <<
"No number of candidates for filter " << moduleLabel <<
" found. Set to " << paramSet.
getParameter<
int>(
"cutnum") <<
", determined from path name.";
331 edm::LogInfo(
"EmDQM") <<
"Changed required number of candidates from " << paramSet.
getParameter<
int>(
"cutnum") <<
" to " << filterPSet.
getParameter<
int>(
"ncandcut") <<
" for filter " << moduleLabel;
336 filterVPSet.push_back(filterPSet);
344 if (!filterPSet.
empty()) {
353 paramSet.
addParameter<std::vector<edm::ParameterSet> >(
"filters", filterVPSet);
357 edm::LogPrint(
"EmDQM") <<
"Will not include this path in the validation due to errors while generating the parameter set.";
376 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
400 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
411 std::vector<MonitorElement*> etahist;
412 std::vector<MonitorElement*> phihist;
413 std::vector<MonitorElement*> ethist;
414 std::vector<MonitorElement*> etahistmatch;
415 std::vector<MonitorElement*> phihistmatch;
416 std::vector<MonitorElement*> ethistmatch;
417 std::vector<MonitorElement*> histEtOfHltObjMatchToGen;
418 std::vector<MonitorElement*> histEtaOfHltObjMatchToGen;
419 std::vector<MonitorElement*> histPhiOfHltObjMatchToGen;
441 histName=
"total_eff_MC_matched";
442 histTitle=
"total events passing (mc matched)";
459 pdgIdString=
"Electron";
break;
461 pdgIdString=
"Photon";
break;
463 pdgIdString=
"Particle";
467 histTitle=
"E_{T} of " + pdgIdString +
"s" ;
469 histName =
"gen_eta";
470 histTitle=
"#eta of "+ pdgIdString +
"s " ;
472 histName =
"gen_phi";
473 histTitle=
"#phi of "+ pdgIdString +
"s " ;
480 std::vector<std::string> HltHistTitle;
493 histTitle = HltHistTitle[
i]+
" Et (ALL)";
495 ethist.push_back(tmphisto);
499 histTitle = HltHistTitle[
i]+
" #eta (ALL)";
501 etahist.push_back(tmphisto);
506 histTitle = HltHistTitle[
i]+
" #phi (ALL)";
508 phihist.push_back(tmphisto);
514 histTitle = HltHistTitle[
i]+
" Et";
516 histEtOfHltObjMatchToGen.push_back(tmphisto);
520 histTitle = HltHistTitle[
i]+
" eta";
522 histEtaOfHltObjMatchToGen.push_back(tmphisto);
527 histTitle = HltHistTitle[
i]+
" phi";
529 histPhiOfHltObjMatchToGen.push_back(tmphisto);
535 histTitle = HltHistTitle[
i]+
" Et (MC matched)";
537 ethistmatch.push_back(tmphisto);
541 histTitle = HltHistTitle[
i]+
" #eta (MC matched)";
543 etahistmatch.push_back(tmphisto);
548 histTitle = HltHistTitle[
i]+
" #phi (MC matched)";
550 phihistmatch.push_back(tmphisto);
606 std::vector<reco::LeafCandidate> allSortedGenParticles;
613 if ( !(
abs((*currentGenParticle).pdgId())==
pdgGen && (*currentGenParticle).status()==1 && (*currentGenParticle).et() > 2.0) )
continue;
619 allSortedGenParticles.push_back(tmpcand);
622 std::sort(allSortedGenParticles.begin(), allSortedGenParticles.end(),
pTGenComparator_);
625 if (allSortedGenParticles.size() <
gencut_)
635 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
636 bool inECALgap = fabs(allSortedGenParticles[
i].
eta()) > 1.4442 && fabs(allSortedGenParticles[
i].
eta()) < 1.556;
637 if ( (fabs(allSortedGenParticles[
i].
eta()) >
genEtaAcc_) || inECALgap ) {
672 if(!referenceParticles.
isValid()) {
678 std::vector<const reco::Candidate *> allSortedReferenceParticles;
681 currentReferenceParticle != referenceParticles->end();
682 currentReferenceParticle++)
684 if ( currentReferenceParticle->et() <= 2.0)
692 if (currentReferenceParticle->et() <
plotEtMin)
696 allSortedReferenceParticles.push_back(&(*currentReferenceParticle));
702 return allSortedReferenceParticles.size() >=
gencut_;
712 unsigned int vPos = 0;
713 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
742 if (cutCounter->size() < (
unsigned int)
gencut_) {
753 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)";
787 std::vector<reco::Particle> sortedGen;
789 reco::Particle tmpcand( genpart->charge(), genpart->p4(), genpart->vertex(),genpart->pdgId(),genpart->status() );
791 sortedGen.push_back(tmpcand);
799 if (sortedGen.size() <
gencut_){
802 sortedGen.erase(sortedGen.begin()+
gencut_,sortedGen.end());
804 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
805 etgens.at(vPos)->Fill( sortedGen[
i].
et() );
814 bool accepted =
true;
827 std::vector<reco::Particle> sortedGenForFilter(sortedGen);
828 sortedGenForFilter.erase(sortedGenForFilter.begin() +
nCandCuts.at(
n), sortedGenForFilter.end());
852 throw(
cms::Exception(
"Release Validation Error") <<
"HLT output type not implemented: theHLTOutputTypes[n]" );
868 std::vector<edm::Ref<T> > recoecalcands;
869 if ( ( triggerObj->
filterIndex(
dqm->theHLTCollectionLabels[n])>=triggerObj->
size() )){
870 dqm->hltCollectionLabelsMissed.insert(
dqm->theHLTCollectionLabels[n].encode());
875 dqm->hltCollectionLabelsFound.insert(
dqm->theHLTCollectionLabels[n].encode());
884 std::vector<edm::Ref<T> > isocands;
886 if (isocands.size()>0)
888 for (
unsigned int i=0;
i < isocands.size();
i++)
889 recoecalcands.push_back(isocands[
i]);
894 if (recoecalcands.size() < 1){
900 if (recoecalcands.size() >=
dqm->nCandCuts.at(n) && !
dqm->mcMatchedOnly_)
901 dqm->totals.at(vPos)->Fill(n+0.5);
907 for (
unsigned int j=0; j<recoecalcands.size(); j++){
908 if(!( recoecalcands.at(j).isAvailable())){
909 if (
dqm->verbosity_ >=
dqm->OUTPUT_ERRORS)
910 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.";
915 if (!
dqm->mcMatchedOnly_) {
921 for (
unsigned int i=0;
i <
dqm->nCandCuts.at(n);
i++) {
924 float closestDeltaR = 0.5;
925 int closestEcalCandIndex = -1;
926 for (
unsigned int j=0; j<recoecalcands.size(); j++) {
927 float deltaR =
DeltaR(recoecalcands[j]->momentum(),currentGenParticleMomentum);
929 if (deltaR < closestDeltaR) {
931 closestEcalCandIndex = j;
937 if ( closestEcalCandIndex >= 0 ) {
938 dqm->histEtOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
et() );
939 dqm->histEtaOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta() );
940 if (!
dqm->noPhiPlots_)
dqm->histPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
phi() );
951 for (
unsigned int i=0;
i<recoecalcands.size();
i++) {
969 dqm->ethists.at(vPos).at(n) ->Fill(recoecalcands[
i]->
et() );
970 dqm->etahists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta() );
971 if (!
dqm->noPhiPlots_)
dqm->phihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
phi() );
979 unsigned int matchedMcParts = 0;
981 if(n==0) mindist=0.5;
982 for(
unsigned int i =0;
i <
dqm->nCandCuts.at(n); ++
i){
984 bool matchThis=
false;
987 double closestDr = 1000.;
988 for(
unsigned int trigOb = 0 ; trigOb < recoecalcands.size(); ++trigOb){
989 double dr =
DeltaR(recoecalcands[trigOb]->momentum(),candDir);
990 if (dr < closestDr) {
994 if (closestDr > mindist) {
1006 dqm->ethistmatchs.at(vPos).at(n) ->Fill( sortedGen[
i].
et() );
1007 if (sortedGen[
i].
et() >
dqm->minEtForEtaEffPlot_) {
1008 dqm->etahistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta() );
1009 if (!
dqm->noPhiPlots_)
dqm->phihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
phi() );
1014 if (matchedMcParts >=
dqm->nCandCuts.at(n) && accepted ==
true)
1015 dqm->totalmatchs.at(vPos)->Fill(n+0.5);
1022 unsigned int vPos = 0;
1023 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
1030 std::vector<std::string> labelsNeverFound;
1036 labelsNeverFound.push_back(tag.
encode());
1040 if (labelsNeverFound.empty())
1043 std::sort(labelsNeverFound.begin(), labelsNeverFound.end());
1049 edm::LogWarning(
"EmDQM") <<
"There were some HLTCollectionLabels which were never found:";
1071 if (sub.length() == 0)
return 0;
1073 for (
size_t offset = str.find(sub);
offset != std::string::npos;
1083 std::vector<std::vector<std::string> >
1086 std::vector<std::vector<std::string> > Paths(5);
1093 if (
int(path.find(
"HLT_")) == 0) {
1103 int totEleCount = 2*tripleEleCount + doubleEleCount + eleCount + scCount + 2*doubleSCCount;
1104 int totPhotonCount = doublePhotonCount + photonCount;
1106 if (totEleCount + totPhotonCount < 1)
continue;
1107 switch (totEleCount) {
1122 switch (totPhotonCount) {
1140 std::vector<std::string>
1143 std::vector<std::string>
filters;
1155 if (moduleEDMType ==
"EDFilter" || moduleType.find(
"Filter") != std::string::npos) {
1156 filters.push_back(module);
1170 boost::regex reg(
"^HLT_.*?(Ele|hoton|EG|SC)([[:digit:]]+).*");
1173 if (boost::regex_match(path, what, reg, boost::match_extra))
1175 minEt = boost::lexical_cast<
double>(what[2]);
1192 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1195 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1205 int candCount = 2*tEgCount + dEgCount + egCount;
1207 if (orCount > 0 && candCount > 0) {
1208 if (egCount % (orCount+1) == 0 && dEgCount % (orCount+1) == 0 && tEgCount % (orCount+1) == 0) candCount /= (orCount+1);
1209 else if (egCount-dEgCount-tEgCount > 0) candCount = 1;
1210 else if (dEgCount > 0) candCount = 2;
1211 else if (tEgCount > 0) candCount = 3;
1212 else candCount = -1;
1215 switch (candCount) {
1247 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1250 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1264 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1267 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1281 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1284 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1298 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1301 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1315 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1318 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1369 std::vector<edm::InputTag> isoCollections;
1370 isoCollections.push_back(varTag);
1378 if (inputType ==
"EgammaHLTR9Producer" ||
1379 inputType ==
"EgammaHLTR9IDProducer" ||
1380 inputType ==
"EgammaHLTClusterShapeProducer" ||
1381 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1382 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1383 inputType ==
"EgammaHLTGsfTrackVarProducer" ||
1384 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1385 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1386 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1387 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1389 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1392 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1399 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1447 std::vector<edm::InputTag> isoCollections;
1448 isoCollections.push_back(varTag);
1456 if (inputType ==
"EgammaHLTR9Producer" ||
1457 inputType ==
"EgammaHLTR9IDProducer" ||
1458 inputType ==
"EgammaHLTClusterShapeProducer" ||
1459 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1460 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1461 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1462 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1463 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1464 inputType ==
"EgammaHLTPhotonTrackIsolationProducersRegional" 1466 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1469 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1476 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericQuadraticFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1519 std::vector<edm::InputTag> isoCollections;
1520 isoCollections.push_back(varTag);
1530 if (inputType ==
"EgammaHLTElectronDetaDphiProducer" ||
1531 inputType ==
"EgammaHLTElectronTrackIsolationProducers" 1533 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1536 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1543 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTElectronGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1553 pathIndex = psetIt->getUntrackedParameter<
unsigned int>(
"pathIndex", 0);
1555 reqNum = psetIt->getParameter<
unsigned int>(
"reqNum");
1556 pdgGen = psetIt->getParameter<
int>(
"pdgGen");
1558 plotEtMin = psetIt->getUntrackedParameter<
double>(
"genEtMin",0.);
1559 plotPtMin = psetIt->getUntrackedParameter<
double>(
"PtMin",0.);
1560 plotPtMax = psetIt->getUntrackedParameter<
double>(
"PtMax",1000.);
1564 gencut_ = psetIt->getParameter<
int>(
"cutnum");
1570 std::vector<edm::ParameterSet>
filters =
1571 psetIt->getParameter<std::vector<edm::ParameterSet> >(
"filters");
1583 for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++)
1587 theHLTOutputTypes.push_back(filterconf->getParameter<
int>(
"theHLTOutputTypes"));
1591 std::vector<double> bounds = filterconf->getParameter<std::vector<double> >(
"PlotBounds");
1593 assert(bounds.size() == 2);
1594 plotBounds.push_back(std::pair<double,double>(bounds[0],bounds[1]));
1595 isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag> >(
"IsoCollections"));
1621 if (
isoNames.back().at(0).label()==
"none") {
1625 else plotiso.push_back(
false);
1627 nCandCuts.push_back(filterconf->getParameter<
int>(
"ncandcut"));
unsigned int size() const
number of trigger paths in trigger table
edm::ParameterSet makePSetForEgammaGenericFilter(const std::string &)
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 &)
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 &)
virtual double et() const final
transverse energy
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
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
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)
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
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 &)
unsigned int minEtForEtaEffPlot_
edm::EDGetTokenT< edm::TriggerResults > hltResults_token
std::vector< std::pair< double, double > > plotBounds
std::vector< MonitorElement * > etgens
std::vector< bool > plotiso