6 using namespace ROOT::Math::VectorUtil ;
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()) {
333 filterVPSet.push_back(filterPSet);
341 if (!filterPSet.
empty()) {
350 paramSet.
addParameter<std::vector<edm::ParameterSet> >(
"filters", filterVPSet);
354 edm::LogPrint(
"EmDQM") <<
"Will not include this path in the validation due to errors while generating the parameter set.";
372 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
396 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt) {
407 std::vector<MonitorElement*> etahist;
408 std::vector<MonitorElement*> phihist;
409 std::vector<MonitorElement*> ethist;
410 std::vector<MonitorElement*> etahistmatch;
411 std::vector<MonitorElement*> phihistmatch;
412 std::vector<MonitorElement*> ethistmatch;
413 std::vector<MonitorElement*> histEtOfHltObjMatchToGen;
414 std::vector<MonitorElement*> histEtaOfHltObjMatchToGen;
415 std::vector<MonitorElement*> histPhiOfHltObjMatchToGen;
437 histName=
"total_eff_MC_matched";
438 histTitle=
"total events passing (mc matched)";
455 pdgIdString=
"Electron";
break;
457 pdgIdString=
"Photon";
break;
459 pdgIdString=
"Particle";
463 histTitle=
"E_{T} of " + pdgIdString +
"s" ;
465 histName =
"gen_eta";
466 histTitle=
"#eta of "+ pdgIdString +
"s " ;
468 histName =
"gen_phi";
469 histTitle=
"#phi of "+ pdgIdString +
"s " ;
476 std::vector<std::string> HltHistTitle;
489 histTitle = HltHistTitle[
i]+
" Et (ALL)";
491 ethist.push_back(tmphisto);
495 histTitle = HltHistTitle[
i]+
" #eta (ALL)";
497 etahist.push_back(tmphisto);
502 histTitle = HltHistTitle[
i]+
" #phi (ALL)";
504 phihist.push_back(tmphisto);
510 histTitle = HltHistTitle[
i]+
" Et";
512 histEtOfHltObjMatchToGen.push_back(tmphisto);
516 histTitle = HltHistTitle[
i]+
" eta";
518 histEtaOfHltObjMatchToGen.push_back(tmphisto);
523 histTitle = HltHistTitle[
i]+
" phi";
525 histPhiOfHltObjMatchToGen.push_back(tmphisto);
531 histTitle = HltHistTitle[
i]+
" Et (MC matched)";
533 ethistmatch.push_back(tmphisto);
537 histTitle = HltHistTitle[
i]+
" #eta (MC matched)";
539 etahistmatch.push_back(tmphisto);
544 histTitle = HltHistTitle[
i]+
" #phi (MC matched)";
546 phihistmatch.push_back(tmphisto);
603 std::vector<reco::LeafCandidate> allSortedGenParticles;
610 if ( !(
abs((*currentGenParticle).pdgId())==
pdgGen && (*currentGenParticle).status()==1 && (*currentGenParticle).et() > 2.0) )
continue;
616 allSortedGenParticles.push_back(tmpcand);
622 if (allSortedGenParticles.size() <
gencut_)
631 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
632 bool inECALgap = fabs(allSortedGenParticles[
i].
eta()) > 1.4442 && fabs(allSortedGenParticles[
i].
eta()) < 1.556;
633 if ( (fabs(allSortedGenParticles[
i].
eta()) >
genEtaAcc_) || inECALgap ) {
668 if(!referenceParticles.
isValid()) {
674 std::vector<const reco::Candidate *> allSortedReferenceParticles;
677 currentReferenceParticle != referenceParticles->end();
678 currentReferenceParticle++)
680 if ( currentReferenceParticle->et() <= 2.0)
688 if (currentReferenceParticle->et() <
plotEtMin)
692 allSortedReferenceParticles.push_back(&(*currentReferenceParticle));
698 return allSortedReferenceParticles.size() >=
gencut_;
708 unsigned int vPos = 0;
710 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
740 if (cutCounter->size() < (
unsigned int)
gencut_) {
752 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)";
784 std::vector<reco::Particle> sortedGen;
786 reco::Particle tmpcand( genpart->charge(), genpart->p4(), genpart->vertex(),genpart->pdgId(),genpart->status() );
788 sortedGen.push_back(tmpcand);
795 if (sortedGen.size() <
gencut_){
798 sortedGen.erase(sortedGen.begin()+
gencut_,sortedGen.end());
800 for (
unsigned int i = 0 ;
i <
gencut_ ;
i++ ) {
801 etgens.at(vPos)->Fill( sortedGen[
i].et() );
810 bool accepted =
true;
823 std::vector<reco::Particle> sortedGenForFilter(sortedGen);
824 sortedGenForFilter.erase(sortedGenForFilter.begin() +
nCandCuts.at(
n), sortedGenForFilter.end());
848 throw(
cms::Exception(
"Release Validation Error") <<
"HLT output type not implemented: theHLTOutputTypes[n]" );
864 std::vector<edm::Ref<T> > recoecalcands;
880 std::vector<edm::Ref<T> > isocands;
882 if (isocands.size()>0)
884 for (
unsigned int i=0;
i < isocands.size();
i++)
885 recoecalcands.push_back(isocands[
i]);
890 if (recoecalcands.size() < 1){
896 if (recoecalcands.size() >=
dqm->nCandCuts.at(n) && !
dqm->mcMatchedOnly_)
897 dqm->totals.at(vPos)->Fill(n+0.5);
903 for (
unsigned int j=0;
j<recoecalcands.size();
j++){
904 if(!( recoecalcands.at(
j).isAvailable())){
905 if (
dqm->verbosity_ >=
dqm->OUTPUT_ERRORS)
906 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.";
911 if (!
dqm->mcMatchedOnly_) {
917 for (
unsigned int i=0;
i <
dqm->nCandCuts.at(n);
i++) {
920 float closestDeltaR = 0.5;
921 int closestEcalCandIndex = -1;
922 for (
unsigned int j=0;
j<recoecalcands.size();
j++) {
923 float deltaR =
DeltaR(recoecalcands[
j]->momentum(),currentGenParticleMomentum);
925 if (deltaR < closestDeltaR) {
927 closestEcalCandIndex =
j;
933 if ( closestEcalCandIndex >= 0 ) {
934 dqm->histEtOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->et() );
935 dqm->histEtaOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
eta() );
936 if (!
dqm->noPhiPlots_)
dqm->histPhiOfHltObjMatchToGens.at(vPos).at(n)->Fill( recoecalcands[closestEcalCandIndex]->
phi() );
947 for (
unsigned int i=0;
i<recoecalcands.size();
i++) {
965 dqm->ethists.at(vPos).at(n) ->Fill(recoecalcands[
i]->et() );
966 dqm->etahists.at(vPos).at(n)->Fill(recoecalcands[
i]->
eta() );
967 if (!
dqm->noPhiPlots_)
dqm->phihists.at(vPos).at(n)->Fill(recoecalcands[
i]->
phi() );
975 unsigned int matchedMcParts = 0;
977 if(n==0) mindist=0.5;
978 for(
unsigned int i =0;
i <
dqm->nCandCuts.at(n); ++
i){
980 bool matchThis=
false;
983 double closestDr = 1000.;
984 for(
unsigned int trigOb = 0 ; trigOb < recoecalcands.size(); ++trigOb){
985 double dr =
DeltaR(recoecalcands[trigOb]->momentum(),candDir);
986 if (dr < closestDr) {
990 if (closestDr > mindist) {
1002 dqm->ethistmatchs.at(vPos).at(n) ->Fill( sortedGen[
i].et() );
1003 if (sortedGen[
i].et() >
dqm->minEtForEtaEffPlot_) {
1004 dqm->etahistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
eta() );
1005 if (!
dqm->noPhiPlots_)
dqm->phihistmatchs.at(vPos).at(n)->Fill( sortedGen[
i].
phi() );
1010 if (matchedMcParts >=
dqm->nCandCuts.at(n) && accepted ==
true)
1011 dqm->totalmatchs.at(vPos)->Fill(n+0.5);
1018 unsigned int vPos = 0;
1019 for (std::vector<edm::ParameterSet>::iterator psetIt =
paramSets.begin(); psetIt !=
paramSets.end(); ++psetIt, ++vPos) {
1026 std::vector<std::string> labelsNeverFound;
1032 labelsNeverFound.push_back(tag.
encode());
1036 if (labelsNeverFound.empty())
1039 std::sort(labelsNeverFound.begin(), labelsNeverFound.end());
1045 edm::LogWarning(
"EmDQM") <<
"There were some HLTCollectionLabels which were never found:";
1067 if (sub.length() == 0)
return 0;
1069 for (
size_t offset = str.find(sub);
offset != std::string::npos;
1079 std::vector<std::vector<std::string> >
1082 std::vector<std::vector<std::string> > Paths(5);
1089 if (
int(path.find(
"HLT_")) == 0) {
1099 int totEleCount = 2*tripleEleCount + doubleEleCount + eleCount + scCount + 2*doubleSCCount;
1100 int totPhotonCount = doublePhotonCount + photonCount;
1102 if (totEleCount + totPhotonCount < 1)
continue;
1103 switch (totEleCount) {
1118 switch (totPhotonCount) {
1136 std::vector<std::string>
1139 std::vector<std::string>
filters;
1151 if (moduleEDMType ==
"EDFilter" || moduleType.find(
"Filter") != std::string::npos) {
1152 filters.push_back(module);
1166 boost::regex reg(
"^HLT_.*?(Ele|Photon|EG|SC)([[:digit:]]+).*");
1169 if (boost::regex_match(path, what, reg, boost::match_extra))
1171 minEt = boost::lexical_cast<
double>(what[2]);
1188 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1191 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1201 int candCount = 2*tEgCount + dEgCount + egCount;
1203 if (orCount > 0 && candCount > 0) {
1204 if (egCount % (orCount+1) == 0 && dEgCount % (orCount+1) == 0 && tEgCount % (orCount+1) == 0) candCount /= (orCount+1);
1205 else candCount = -1;
1208 switch (candCount) {
1240 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1243 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1257 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1260 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1274 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1277 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1291 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1294 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1308 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1311 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", std::vector<edm::InputTag>(1,
std::string(
"none")));
1362 std::vector<edm::InputTag> isoCollections;
1363 isoCollections.push_back(isoTag);
1364 if (!nonIsoTag.label().empty())
1365 isoCollections.push_back(nonIsoTag);
1371 if (inputType ==
"EgammaHLTR9Producer" ||
1372 inputType ==
"EgammaHLTR9IDProducer" ||
1373 inputType ==
"EgammaHLTClusterShapeProducer" ||
1374 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1375 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1376 inputType ==
"EgammaHLTGsfTrackVarProducer" ||
1377 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1378 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1379 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1380 inputType ==
"EgammaHLTElectronTrackIsolationProducers"
1382 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1385 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1392 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1440 std::vector<edm::InputTag> isoCollections;
1441 isoCollections.push_back(isoTag);
1442 if (!nonIsoTag.label().empty())
1443 isoCollections.push_back(nonIsoTag);
1449 if (inputType ==
"EgammaHLTR9Producer" ||
1450 inputType ==
"EgammaHLTR9IDProducer" ||
1451 inputType ==
"EgammaHLTClusterShapeProducer" ||
1452 inputType ==
"EgammaHLTEcalRecIsolationProducer" ||
1453 inputType ==
"EgammaHLTHcalIsolationProducersRegional" ||
1454 inputType ==
"EgammaHLTBcHcalIsolationProducersRegional" ||
1455 inputType ==
"EgammaHLTEcalPFClusterIsolationProducer" ||
1456 inputType ==
"EgammaHLTHcalPFClusterIsolationProducer" ||
1457 inputType ==
"EgammaHLTPhotonTrackIsolationProducersRegional"
1459 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1462 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1469 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTEgammaGenericQuadraticFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1512 std::vector<edm::InputTag> isoCollections;
1513 isoCollections.push_back(isoTag);
1514 if (!nonIsoTag.label().empty())
1515 isoCollections.push_back(nonIsoTag);
1523 if (inputType ==
"EgammaHLTElectronDetaDphiProducer" ||
1524 inputType ==
"EgammaHLTElectronTrackIsolationProducers"
1526 retPSet.
addParameter<std::vector<double> >(
"PlotBounds", std::vector<double>(2, 0.0));
1529 retPSet.
addParameter<std::vector<edm::InputTag> >(
"IsoCollections", isoCollections);
1536 edm::LogError(
"EmDQM") <<
"Can't determine what the HLTElectronGenericFilter '" << moduleName <<
"' should do: uses a collection produced by a module of C++ type '" << inputType <<
"'.";
1546 pathIndex = psetIt->getUntrackedParameter<
unsigned int>(
"pathIndex", 0);
1548 reqNum = psetIt->getParameter<
unsigned int>(
"reqNum");
1549 pdgGen = psetIt->getParameter<
int>(
"pdgGen");
1551 plotEtMin = psetIt->getUntrackedParameter<
double>(
"genEtMin",0.);
1552 plotPtMin = psetIt->getUntrackedParameter<
double>(
"PtMin",0.);
1553 plotPtMax = psetIt->getUntrackedParameter<
double>(
"PtMax",1000.);
1557 gencut_ = psetIt->getParameter<
int>(
"cutnum");
1563 std::vector<edm::ParameterSet>
filters =
1564 psetIt->getParameter<std::vector<edm::ParameterSet> >(
"filters");
1576 for(std::vector<edm::ParameterSet>::iterator filterconf = filters.begin() ; filterconf != filters.end() ; filterconf++)
1580 theHLTOutputTypes.push_back(filterconf->getParameter<
int>(
"theHLTOutputTypes"));
1584 std::vector<double> bounds = filterconf->getParameter<std::vector<double> >(
"PlotBounds");
1586 assert(bounds.size() == 2);
1587 plotBounds.push_back(std::pair<double,double>(bounds[0],bounds[1]));
1588 isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag> >(
"IsoCollections"));
1614 if (
isoNames.back().at(0).label()==
"none") {
1618 else plotiso.push_back(
false);
1620 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
virtual double et() const
transverse energy
unsigned int numOfHLTCollectionLabels
std::vector< std::vector< MonitorElement * > > phihists
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
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.
std::vector< int > theHLTOutputTypes
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
tuple path
else: Piece not in the list, fine.
std::vector< unsigned int > nCandCuts
HistoFiller< reco::RecoEcalCandidateCollection > * histoFillerPho
edm::InputTag triggerObject_
void endRun(edm::Run const &, edm::EventSetup const &)
static const unsigned OUTPUT_WARNINGS
void addParameter(std::string const &name, T const &value)
void dqmBeginRun(edm::Run const &, edm::EventSetup const &)
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 &)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::vector< std::vector< MonitorElement * > > phihistmatchs
EmDQM(const edm::ParameterSet &pset)
Constructor.
const std::string & processName() const
process name
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
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 &)
void analyze(const edm::Event &event, const edm::EventSetup &)
std::vector< edm::InputTag > theHLTCollectionLabels
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 &)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
unsigned int minEtForEtaEffPlot_
edm::EDGetTokenT< edm::TriggerResults > hltResults_token
std::vector< std::pair< double, double > > plotBounds
std::vector< MonitorElement * > etgens
std::vector< bool > plotiso