CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Attributes | Friends
EmDQMReco Class Reference

#include <EmDQMReco.h>

Inheritance diagram for EmDQMReco:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

class  FourVectorMonitorElements
 

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
 EmDQMReco (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~EmDQMReco () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

std::string dirname_
 
int eventnum
 
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
 
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
 
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
 
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
 
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
 
HLTConfigProvider hltConfig_
 
edm::EDGetTokenT< edm::TriggerResultshltResultsT
 
bool isHltConfigInitialized_
 
std::vector< std::vector< edm::InputTag > > isoNames
 
unsigned int numOfHLTCollectionLabels
 
int pdgGen
 
unsigned int plotBins
 
std::vector< std::pair< double, double > > plotBounds
 
double plotEtaMax
 
std::vector< bool > plotiso
 
double plotPhiMax
 
double plotPtMax
 
double plotPtMin
 
std::string processNameRecoMonPath
 
GreaterByPt< reco::ParticlepTComparator_
 
GreaterByPt< reco::GsfElectronpTRecoComparator_
 
unsigned int recocut_
 
edm::EDGetTokenT< reco::GsfElectronCollectionrecoElectronsInput
 
double recoEtaAcc
 
double recoEtAcc
 
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
 
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
 
unsigned int reqNum
 
std::vector< std::string > theHLTCollectionHumanNames
 
std::vector< edm::InputTagtheHLTCollectionLabels
 
std::string theHltName
 
std::vector< int > theHLTOutputTypes
 
MonitorElementtotalmatchreco
 
MonitorElementtotalreco
 
std::string triggerNameRecoMonPath
 
edm::EDGetTokenT< trigger::TriggerEventWithRefstriggerObjT
 
bool useHumanReadableHistTitles
 
std::vector< std::unique_ptr< FourVectorMonitorElements > > standardHist
 
std::vector< std::unique_ptr< FourVectorMonitorElements > > histMatchReco
 
std::vector< std::unique_ptr< FourVectorMonitorElements > > histMatchRecoMonPath
 
std::vector< std::unique_ptr< FourVectorMonitorElements > > histHltObjMatchToReco
 
std::vector< MonitorElement * > etahistiso
 
std::vector< MonitorElement * > ethistiso
 
std::vector< MonitorElement * > phiHistIso
 
std::vector< MonitorElement * > etahistisomatchreco
 
std::vector< MonitorElement * > ethistisomatchreco
 
std::vector< MonitorElement * > phiHistIsoMatchReco
 
std::vector< MonitorElement * > histEtIsoOfHltObjMatchToReco
 
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
 
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
 
reco histograms
std::unique_ptr< FourVectorMonitorElementshistReco
 
std::unique_ptr< FourVectorMonitorElementshistRecoMonpath
 
std::unique_ptr< FourVectorMonitorElementshistMonpath
 

Friends

class HistoFillerReco< l1extra::L1EmParticleCollection >
 
class HistoFillerReco< reco::ElectronCollection >
 
class HistoFillerReco< reco::RecoEcalCandidateCollection >
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 46 of file EmDQMReco.h.

Constructor & Destructor Documentation

◆ EmDQMReco()

EmDQMReco::EmDQMReco ( const edm::ParameterSet pset)
explicit

Constructor.

Definition at line 89 of file EmDQMReco.cc.

89  {
91  // Read from configuration file //
93  dirname_ = "HLT/HLTEgammaValidation/" + pset.getParameter<std::string>("@module_label");
94 
95  // parameters for generator study
96  reqNum = pset.getParameter<unsigned int>("reqNum");
97  pdgGen = pset.getParameter<int>("pdgGen");
98  recoEtaAcc = pset.getParameter<double>("genEtaAcc");
99  recoEtAcc = pset.getParameter<double>("genEtAcc");
100  // plotting parameters (untracked because they don't affect the physics)
101  plotPtMin = pset.getUntrackedParameter<double>("PtMin", 0.);
102  plotPtMax = pset.getUntrackedParameter<double>("PtMax", 1000.);
103  plotEtaMax = pset.getUntrackedParameter<double>("EtaMax", 2.7);
104  plotPhiMax = pset.getUntrackedParameter<double>("PhiMax", 3.15);
105  plotBins = pset.getUntrackedParameter<unsigned int>("Nbins", 50);
106  useHumanReadableHistTitles = pset.getUntrackedParameter<bool>("useHumanReadableHistTitles", false);
107 
108  triggerNameRecoMonPath = pset.getUntrackedParameter<std::string>("triggerNameRecoMonPath", "HLT_MinBias");
109  processNameRecoMonPath = pset.getUntrackedParameter<std::string>("processNameRecoMonPath", "HLT");
110 
111  recoElectronsInput = consumes<reco::GsfElectronCollection>(
112  pset.getUntrackedParameter<edm::InputTag>("recoElectrons", edm::InputTag("gsfElectrons")));
113  recoObjectsEBT = consumes<std::vector<reco::SuperCluster>>(edm::InputTag("correctedHybridSuperClusters"));
115  consumes<std::vector<reco::SuperCluster>>(edm::InputTag("correctedMulti5x5SuperClustersWithPreshower"));
116  hltResultsT = consumes<edm::TriggerResults>(edm::InputTag("TriggerResults", "", processNameRecoMonPath));
117  triggerObjT = consumes<trigger::TriggerEventWithRefs>(edm::InputTag("hltTriggerSummaryRAW"));
118 
119  // preselction cuts
120  // recocutCollection_= pset.getParameter<edm::InputTag>("cutcollection");
121  recocut_ = pset.getParameter<int>("cutnum");
122 
123  // prescale = 10;
124  eventnum = 0;
125 
126  // just init
127  isHltConfigInitialized_ = false;
128 
130  // Read in the Vector of Parameter Sets. //
131  // Information for each filter-step //
133  std::vector<edm::ParameterSet> filters = pset.getParameter<std::vector<edm::ParameterSet>>("filters");
134 
135  int i = 0;
136  for (std::vector<edm::ParameterSet>::iterator filterconf = filters.begin(); filterconf != filters.end();
137  filterconf++) {
138  theHLTCollectionLabels.push_back(filterconf->getParameter<edm::InputTag>("HLTCollectionLabels"));
139  theHLTOutputTypes.push_back(filterconf->getParameter<int>("theHLTOutputTypes"));
140  // Grab the human-readable name, if it is not specified, use the Collection
141  // Label
142  theHLTCollectionHumanNames.push_back(
143  filterconf->getUntrackedParameter<std::string>("HLTCollectionHumanName", theHLTCollectionLabels[i].label()));
144 
145  std::vector<double> bounds = filterconf->getParameter<std::vector<double>>("PlotBounds");
146  // If the size of plot "bounds" vector != 2, abort
147  assert(bounds.size() == 2);
148  plotBounds.push_back(std::pair<double, double>(bounds[0], bounds[1]));
149  isoNames.push_back(filterconf->getParameter<std::vector<edm::InputTag>>("IsoCollections"));
150 
151  for (unsigned int i = 0; i < isoNames.back().size(); i++) {
152  switch (theHLTOutputTypes.back()) {
156  isoNames.back()[i]));
157  break;
158  case trigger::TriggerL1IsoEG: // Isolated Level 1
159  histoFillerL1Iso->isoNameTokens_.push_back(
161  isoNames.back()[i]));
162  break;
163  case trigger::TriggerPhoton: // Photon
164  histoFillerPho->isoNameTokens_.push_back(
166  isoNames.back()[i]));
167  break;
168  case trigger::TriggerElectron: // Electron
169  histoFillerEle->isoNameTokens_.push_back(
171  break;
172  case trigger::TriggerCluster: // TriggerCluster
173  histoFillerClu->isoNameTokens_.push_back(
175  isoNames.back()[i]));
176  break;
177  default:
178  throw(cms::Exception("Release Validation Error") << "HLT output type not implemented: theHLTOutputTypes[n]");
179  }
180  }
181 
182  // If the size of the isoNames vector is not greater than zero, abort
183  assert(!isoNames.back().empty());
184  if (isoNames.back().at(0).label() == "none") {
185  plotiso.push_back(false);
186  } else {
187  plotiso.push_back(true);
188  }
189  i++;
190  } // END of loop over parameter sets
191 
192  // Record number of HLTCollectionLabels
194 }

References cms::cuda::assert(), dirname_, eventnum, filters, histoFillerClu, histoFillerEle, histoFillerL1Iso, histoFillerL1NonIso, histoFillerPho, hltResultsT, mps_fire::i, HLT_FULL_cff::InputTag, isHltConfigInitialized_, isoNames, HistoFillerReco< T >::isoNameTokens_, numOfHLTCollectionLabels, pdgGen, plotBins, plotBounds, plotEtaMax, plotiso, plotPhiMax, plotPtMax, plotPtMin, processNameRecoMonPath, muonDTDigis_cfi::pset, recocut_, recoElectronsInput, recoEtaAcc, recoEtAcc, recoObjectsEBT, recoObjectsEET, reqNum, AlCaHLTBitMon_QueryRunRegistry::string, theHLTCollectionHumanNames, theHLTCollectionLabels, theHLTOutputTypes, trigger::TriggerCluster, trigger::TriggerElectron, trigger::TriggerL1IsoEG, trigger::TriggerL1NoIsoEG, triggerNameRecoMonPath, triggerObjT, trigger::TriggerPhoton, and useHumanReadableHistTitles.

◆ ~EmDQMReco()

EmDQMReco::~EmDQMReco ( )
override

Destructor.

Definition at line 584 of file EmDQMReco.cc.

584 {}

Member Function Documentation

◆ analyze()

void EmDQMReco::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

NOTE: hltConfigProvider initialization has been moved to beginRun()

Reimplemented from DQMEDAnalyzer.

Definition at line 589 of file EmDQMReco.cc.

589  {
590  // protect from hlt config failure
592  return;
593 
594  eventnum++;
595  bool plotMonpath = false;
596  bool plotReco = true;
597 
601 
602  if (pdgGen == 11) {
603  event.getByToken(recoElectronsInput, recoObjects);
604 
605  if (recoObjects->size() < (unsigned int)recocut_) {
606  // edm::LogWarning("EmDQMReco") << "Less than "<< recocut_ <<" Reco
607  // particles with pdgId=" << pdgGen << ". Only " <<
608  // cutRecoCounter->size() << " particles.";
609  return;
610  }
611  } else if (pdgGen == 22) {
612  event.getByToken(recoObjectsEBT, recoObjectsEB);
613  event.getByToken(recoObjectsEET, recoObjectsEE);
614 
615  if (recoObjectsEB->size() + recoObjectsEE->size() < (unsigned int)recocut_) {
616  // edm::LogWarning("EmDQMReco") << "Less than "<< recocut_ <<" Reco
617  // particles with pdgId=" << pdgGen << ". Only " << cutRecoCounter.size()
618  // << " particles.";
619  return;
620  }
621  }
622 
624  event.getByToken(hltResultsT, HLTR);
625 
630 
631  /* if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedSingleEgammaEt8"){
632  triggerIndex = hltConfig.triggerIndex("HLT_L1SingleEG8");
633  } else if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedSingleEgammaEt5") {
634  triggerIndex = hltConfig.triggerIndex("HLT_L1SingleEG5");
635  } else if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedDoubleEgammaEt5") {
636  triggerIndex = hltConfig.triggerIndex("HLT_L1DoubleEG5");
637  } else {
638  triggerIndex = hltConfig.triggerIndex("");
639  } */
640 
641  unsigned int triggerIndex;
643 
644  // triggerIndex must be less than the size of HLTR or you get a CMSException
645  bool isFired = false;
646  if (triggerIndex < HLTR->size()) {
647  isFired = HLTR->accept(triggerIndex);
648  }
649 
650  // fill L1 and HLT info
651  // get objects possed by each filter
653  event.getByToken(triggerObjT, triggerObj);
654 
655  if (!triggerObj.isValid()) {
656  edm::LogWarning("EmDQMReco") << "RAW-type HLT results not found, skipping event";
657  return;
658  }
659 
661  // Fill the bin labeled "Total" //
662  // This will be the number of events looked at. //
666 
668  // Fill the bin labeled "Total" //
669  // This will be the number of events looked at. //
671  // total->Fill(numOfHLTCollectionLabels+0.5);
672  // totalmatch->Fill(numOfHLTCollectionLabels+0.5);
673 
675  // Fill reconstruction info //
677  // the recocut_ highest Et generator objects of the preselected type are our
678  // matches
679 
680  std::vector<reco::Particle> sortedReco;
681  if (plotReco == true) {
682  if (pdgGen == 11) {
683  for (edm::View<reco::Candidate>::const_iterator recopart = recoObjects->begin(); recopart != recoObjects->end();
684  recopart++) {
685  reco::Particle tmpcand(
686  recopart->charge(), recopart->p4(), recopart->vertex(), recopart->pdgId(), recopart->status());
687  sortedReco.push_back(tmpcand);
688  }
689  } else if (pdgGen == 22) {
690  for (std::vector<reco::SuperCluster>::const_iterator recopart2 = recoObjectsEB->begin();
691  recopart2 != recoObjectsEB->end();
692  recopart2++) {
693  float en = recopart2->energy();
694  float er = sqrt(pow(recopart2->x(), 2) + pow(recopart2->y(), 2) + pow(recopart2->z(), 2));
695  float px = recopart2->energy() * recopart2->x() / er;
696  float py = recopart2->energy() * recopart2->y() / er;
697  float pz = recopart2->energy() * recopart2->z() / er;
698  reco::Candidate::LorentzVector thisLV(px, py, pz, en);
699  reco::Particle tmpcand(0, thisLV, math::XYZPoint(0., 0., 0.), 22, 1);
700  sortedReco.push_back(tmpcand);
701  }
702  for (std::vector<reco::SuperCluster>::const_iterator recopart2 = recoObjectsEE->begin();
703  recopart2 != recoObjectsEE->end();
704  recopart2++) {
705  float en = recopart2->energy();
706  float er = sqrt(pow(recopart2->x(), 2) + pow(recopart2->y(), 2) + pow(recopart2->z(), 2));
707  float px = recopart2->energy() * recopart2->x() / er;
708  float py = recopart2->energy() * recopart2->y() / er;
709  float pz = recopart2->energy() * recopart2->z() / er;
710  reco::Candidate::LorentzVector thisLV(px, py, pz, en);
711  reco::Particle tmpcand(0, thisLV, math::XYZPoint(0., 0., 0.), 22, 1);
712  sortedReco.push_back(tmpcand);
713  }
714  }
715 
716  std::sort(sortedReco.begin(), sortedReco.end(), pTComparator_);
717 
718  // Now the collection of gen particles is sorted by pt.
719  // So, remove all particles from the collection so that we
720  // only have the top "1 thru recocut_" particles in it
721 
722  sortedReco.erase(sortedReco.begin() + recocut_, sortedReco.end());
723 
724  for (unsigned int i = 0; i < recocut_; i++) {
725  // validity has been implicitily checked by the cut on recocut_ above
726  histReco->fill(sortedReco[i].p4());
727 
728  // etreco ->Fill( sortedReco[i].et() );
729  // etareco->Fill( sortedReco[i].eta() );
730  // phiReco->Fill( sortedReco[i].phi() );
731 
732  if (isFired) {
733  histRecoMonpath->fill(sortedReco[i].p4());
734  plotMonpath = true;
735  }
736 
737  } // END of loop over Reconstructed particles
738 
739  if (recocut_ >= reqNum)
740  totalreco->Fill(numOfHLTCollectionLabels + 1.5); // this isn't really needed anymore keep for backward comp.
741  if (recocut_ >= reqNum)
742  totalmatchreco->Fill(numOfHLTCollectionLabels + 1.5); // this isn't really needed anymore keep for backward comp.
743  }
744 
746  // Loop over filter modules //
748  for (unsigned int n = 0; n < numOfHLTCollectionLabels; n++) {
749  // These numbers are from the Parameter Set, such as:
750  // theHLTOutputTypes = cms.uint32(100)
751  switch (theHLTOutputTypes[n]) {
752  case trigger::TriggerL1NoIsoEG: // Non-isolated Level 1
753  histoFillerL1NonIso->fillHistos(triggerObj, event, n, sortedReco, plotReco, plotMonpath);
754  break;
755  case trigger::TriggerL1IsoEG: // Isolated Level 1
756  histoFillerL1Iso->fillHistos(triggerObj, event, n, sortedReco, plotReco, plotMonpath);
757  break;
758  case trigger::TriggerPhoton: // Photon
759  histoFillerPho->fillHistos(triggerObj, event, n, sortedReco, plotReco, plotMonpath);
760  break;
761  case trigger::TriggerElectron: // Electron
762  histoFillerEle->fillHistos(triggerObj, event, n, sortedReco, plotReco, plotMonpath);
763  break;
764  case trigger::TriggerCluster: // TriggerCluster
765  histoFillerClu->fillHistos(triggerObj, event, n, sortedReco, plotReco, plotMonpath);
766  break;
767  default:
768  throw(cms::Exception("Release Validation Error") << "HLT output type not implemented: theHLTOutputTypes[n]");
769  }
770  } // END of loop over filter modules
771 }

References edm::HLTGlobalStatus::accept(), reco::Particle::energy(), eventnum, dqm::impl::MonitorElement::Fill(), HistoFillerReco< T >::fillHistos(), histoFillerClu, histoFillerEle, histoFillerL1Iso, histoFillerL1NonIso, histoFillerPho, histReco, histRecoMonpath, hltConfig_, hltResultsT, mps_fire::i, createfilelist::int, isHltConfigInitialized_, edm::HandleBase::isValid(), dqmiodumpmetadata::n, numOfHLTCollectionLabels, p4, pdgGen, funct::pow(), pTComparator_, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, recocut_, recoElectronsInput, recoObjectsEBT, recoObjectsEET, reqNum, findQualityFiles::size, jetUpdater_cfi::sort, mathSSE::sqrt(), theHLTOutputTypes, totalmatchreco, totalreco, trigger::TriggerCluster, trigger::TriggerElectron, HLTConfigProvider::triggerIndex(), trigger::TriggerL1IsoEG, trigger::TriggerL1NoIsoEG, triggerNameRecoMonPath, triggerObjT, and trigger::TriggerPhoton.

◆ bookHistograms()

void EmDQMReco::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 207 of file EmDQMReco.cc.

207  {
208  // edm::Service<TFileService> fs;
209  iBooker.setCurrentFolder(dirname_);
210 
212  // Set up Histogram of Effiency vs Step. //
213  // theHLTCollectionLabels is a vector of InputTags //
214  // from the configuration file. //
216 
217  std::string histName = "total_eff";
218  std::string histTitle = "total events passing";
219  // This plot will have bins equal to 2+(number of
220  // HLTCollectionLabels in the config file)
221  totalreco = iBooker.book1D(
222  histName.c_str(), histTitle.c_str(), numOfHLTCollectionLabels + 2, 0, numOfHLTCollectionLabels + 2);
225  for (unsigned int u = 0; u < numOfHLTCollectionLabels; u++) {
227  }
228 
229  histName = "total_eff_RECO_matched";
230  histTitle = "total events passing (Reco matched)";
231  totalmatchreco = iBooker.book1D(
232  histName.c_str(), histTitle.c_str(), numOfHLTCollectionLabels + 2, 0, numOfHLTCollectionLabels + 2);
235  for (unsigned int u = 0; u < numOfHLTCollectionLabels; u++) {
237  }
238 
239  // MonitorElement* tmphisto;
240  MonitorElement *tmpiso;
241 
243  // Set up generator-level histograms //
245  std::string pdgIdString;
246  switch (pdgGen) {
247  case 11:
248  pdgIdString = "Electron";
249  break;
250  case 22:
251  pdgIdString = "Photon";
252  break;
253  default:
254  pdgIdString = "Particle";
255  }
256 
257  //--------------------
258 
259  // reco
260  // (note that reset(..) must be used to set the value of the scoped_ptr...)
261  histReco = std::make_unique<FourVectorMonitorElements>(this,
262  iBooker,
263  "reco_%s", // pattern for histogram name
264  "%s of " + pdgIdString + "s");
265 
266  //--------------------
267 
268  // monpath
269  histRecoMonpath = std::make_unique<FourVectorMonitorElements>(this,
270  iBooker,
271  "reco_%s_monpath", // pattern for histogram name
272  "%s of " + pdgIdString + "s monpath");
273 
274  //--------------------
275 
276  // TODO: WHAT ARE THESE HISTOGRAMS FOR ? THEY SEEM NEVER REFERENCED ANYWHERE
277  // IN THIS FILE... final X monpath
278  histMonpath = std::make_unique<FourVectorMonitorElements>(this,
279  iBooker,
280  "final_%s_monpath", // pattern for histogram name
281  "Final %s Monpath");
282 
283  //--------------------
284 
286  // Set up histograms of HLT objects //
288 
289  // Determine what strings to use for histogram titles
290  std::vector<std::string> HltHistTitle;
292  HltHistTitle = theHLTCollectionHumanNames;
293  } else {
294  for (unsigned int i = 0; i < numOfHLTCollectionLabels; i++) {
295  HltHistTitle.push_back(theHLTCollectionLabels[i].label());
296  }
297  }
298 
299  for (unsigned int i = 0; i < numOfHLTCollectionLabels; i++) {
300  //--------------------
301  // distributions of HLT objects passing filter i
302  //--------------------
303 
304  // // Et
305  // histName = theHLTCollectionLabels[i].label()+"et_all";
306  // histTitle = HltHistTitle[i]+" Et (ALL)";
307  // tmphisto =
308  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
309  // ethist.push_back(tmphisto);
310  //
311  // // Eta
312  // histName = theHLTCollectionLabels[i].label()+"eta_all";
313  // histTitle = HltHistTitle[i]+" #eta (ALL)";
314  // tmphisto =
315  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
316  // etahist.push_back(tmphisto);
317  //
318  // // phi
319  // histName = theHLTCollectionLabels[i].label()+"phi_all";
320  // histTitle = HltHistTitle[i]+" #phi (ALL)";
321  // tmphisto =
322  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
323  // phiHist.push_back(tmphisto);
324 
325  standardHist.push_back(std::make_unique<FourVectorMonitorElements>(
326  this,
327  iBooker,
328  theHLTCollectionLabels[i].label() + "%s_all", // histogram name
329  HltHistTitle[i] + " %s (ALL)" // histogram title
330  ));
331 
332  //--------------------
333  // distributions of reco object matching HLT object passing filter i
334  //--------------------
335 
336  // Et
337  // histName = theHLTCollectionLabels[i].label()+"et_RECO_matched";
338  // histTitle = HltHistTitle[i]+" Et (RECO matched)";
339  // tmphisto =
340  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
341  // ethistmatchreco.push_back(tmphisto);
342 
343  // // Eta
344  // histName = theHLTCollectionLabels[i].label()+"eta_RECO_matched";
345  // histTitle = HltHistTitle[i]+" #eta (RECO matched)";
346  // tmphisto =
347  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
348  // etahistmatchreco.push_back(tmphisto);
349  //
350  // // phi
351  // histName = theHLTCollectionLabels[i].label()+"phi_RECO_matched";
352  // histTitle = HltHistTitle[i]+" #phi (RECO matched)";
353  // tmphisto =
354  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
355  // phiHistMatchReco.push_back(tmphisto);
356  histMatchReco.push_back(std::make_unique<FourVectorMonitorElements>(
357  this,
358  iBooker,
359  theHLTCollectionLabels[i].label() + "%s_RECO_matched", // histogram name
360  HltHistTitle[i] + " %s (RECO matched)" // histogram title
361  ));
362 
363  //--------------------
364  // distributions of reco object matching HLT object passing filter i
365  //--------------------
366 
367  // // Et
368  // histName =
369  // theHLTCollectionLabels[i].label()+"et_RECO_matched_monpath"; histTitle
370  // = HltHistTitle[i]+" Et (RECO matched, monpath)"; tmphisto =
371  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
372  // ethistmatchrecomonpath.push_back(tmphisto);
373  //
374  // // Eta
375  // histName =
376  // theHLTCollectionLabels[i].label()+"eta_RECO_matched_monpath";
377  // histTitle = HltHistTitle[i]+" #eta (RECO matched, monpath)";
378  // tmphisto =
379  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
380  // etahistmatchrecomonpath.push_back(tmphisto);
381  //
382  // // phi
383  // histName =
384  // theHLTCollectionLabels[i].label()+"phi_RECO_matched_monpath";
385  // histTitle = HltHistTitle[i]+" #phi (RECO matched, monpath)";
386  // tmphisto =
387  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
388  // phiHistMatchRecoMonPath.push_back(tmphisto);
389 
390  histMatchRecoMonPath.push_back(std::make_unique<FourVectorMonitorElements>(
391  this,
392  iBooker,
393  theHLTCollectionLabels[i].label() + "%s_RECO_matched_monpath", // histogram name
394  HltHistTitle[i] + " %s (RECO matched, monpath)" // histogram title
395  ));
396  //--------------------
397  // distributions of HLT object that is closest delta-R match to sorted reco
398  // particle(s)
399  //--------------------
400 
401  // Et
402  // histName = theHLTCollectionLabels[i].label()+"et_reco";
403  // histTitle = HltHistTitle[i]+" Et (reco)";
404  // tmphisto =
405  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
406  // histEtOfHltObjMatchToReco.push_back(tmphisto);
407  //
408  // // eta
409  // histName = theHLTCollectionLabels[i].label()+"eta_reco";
410  // histTitle = HltHistTitle[i]+" eta (reco)";
411  // tmphisto =
412  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
413  // histEtaOfHltObjMatchToReco.push_back(tmphisto);
414  //
415  // // phi
416  // histName = theHLTCollectionLabels[i].label()+"phi_reco";
417  // histTitle = HltHistTitle[i]+" phi (reco)";
418  // tmphisto =
419  // iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
420  // histPhiOfHltObjMatchToReco.push_back(tmphisto);
421 
422  histHltObjMatchToReco.push_back(std::make_unique<FourVectorMonitorElements>(
423  this,
424  iBooker,
425  theHLTCollectionLabels[i].label() + "%s_reco", // histogram name
426  HltHistTitle[i] + " %s (reco)" // histogram title
427  ));
428 
429  //--------------------
430 
431  if (!plotiso[i]) {
432  tmpiso = nullptr;
433  etahistiso.push_back(tmpiso);
434  ethistiso.push_back(tmpiso);
435  phiHistIso.push_back(tmpiso);
436 
437  etahistisomatchreco.push_back(tmpiso);
438  ethistisomatchreco.push_back(tmpiso);
439  phiHistIsoMatchReco.push_back(tmpiso);
440 
441  histEtaIsoOfHltObjMatchToReco.push_back(tmpiso);
442  histEtIsoOfHltObjMatchToReco.push_back(tmpiso);
443  histPhiIsoOfHltObjMatchToReco.push_back(tmpiso);
444 
445  } else {
446  //--------------------
447  // 2D plot: Isolation values vs X for all objects
448  //--------------------
449 
450  // X = eta
451  histName = theHLTCollectionLabels[i].label() + "eta_isolation_all";
452  histTitle = HltHistTitle[i] + " isolation vs #eta (all)";
453  tmpiso = iBooker.book2D(histName.c_str(),
454  histTitle.c_str(),
455  plotBins,
456  -plotEtaMax,
457  plotEtaMax,
458  plotBins,
459  plotBounds[i].first,
460  plotBounds[i].second);
461  etahistiso.push_back(tmpiso);
462 
463  // X = et
464  histName = theHLTCollectionLabels[i].label() + "et_isolation_all";
465  histTitle = HltHistTitle[i] + " isolation vs Et (all)";
466  tmpiso = iBooker.book2D(histName.c_str(),
467  histTitle.c_str(),
468  plotBins,
469  plotPtMin,
470  plotPtMax,
471  plotBins,
472  plotBounds[i].first,
473  plotBounds[i].second);
474  ethistiso.push_back(tmpiso);
475 
476  // X = phi
477  histName = theHLTCollectionLabels[i].label() + "phi_isolation_all";
478  histTitle = HltHistTitle[i] + " isolation vs #phi (all)";
479  tmpiso = iBooker.book2D(histName.c_str(),
480  histTitle.c_str(),
481  plotBins,
482  -plotPhiMax,
483  plotPhiMax,
484  plotBins,
485  plotBounds[i].first,
486  plotBounds[i].second);
487  phiHistIso.push_back(tmpiso);
488 
489  //--------------------
490  // 2D plot: Isolation values vs X for reco matched objects
491  //--------------------
492 
493  // X = eta
494  histName = theHLTCollectionLabels[i].label() + "eta_isolation_RECO_matched";
495  histTitle = HltHistTitle[i] + " isolation vs #eta (reco matched)";
496  tmpiso = iBooker.book2D(histName.c_str(),
497  histTitle.c_str(),
498  plotBins,
499  -plotEtaMax,
500  plotEtaMax,
501  plotBins,
502  plotBounds[i].first,
503  plotBounds[i].second);
504  etahistisomatchreco.push_back(tmpiso);
505 
506  // X = et
507  histName = theHLTCollectionLabels[i].label() + "et_isolation_RECO_matched";
508  histTitle = HltHistTitle[i] + " isolation vs Et (reco matched)";
509  tmpiso = iBooker.book2D(histName.c_str(),
510  histTitle.c_str(),
511  plotBins,
512  plotPtMin,
513  plotPtMax,
514  plotBins,
515  plotBounds[i].first,
516  plotBounds[i].second);
517  ethistisomatchreco.push_back(tmpiso);
518 
519  // X = eta
520  histName = theHLTCollectionLabels[i].label() + "phi_isolation_RECO_matched";
521  histTitle = HltHistTitle[i] + " isolation vs #phi (reco matched)";
522  tmpiso = iBooker.book2D(histName.c_str(),
523  histTitle.c_str(),
524  plotBins,
525  -plotPhiMax,
526  plotPhiMax,
527  plotBins,
528  plotBounds[i].first,
529  plotBounds[i].second);
530  phiHistIsoMatchReco.push_back(tmpiso);
531 
532  //--------------------
533  // 2D plot: Isolation values vs X for HLT object that
534  // is closest delta-R match to sorted reco particle(s)
535  //--------------------
536 
537  // X = eta
538  histName = theHLTCollectionLabels[i].label() + "eta_isolation_reco";
539  histTitle = HltHistTitle[i] + " isolation vs #eta (reco)";
540  tmpiso = iBooker.book2D(histName.c_str(),
541  histTitle.c_str(),
542  plotBins,
543  -plotEtaMax,
544  plotEtaMax,
545  plotBins,
546  plotBounds[i].first,
547  plotBounds[i].second);
548  histEtaIsoOfHltObjMatchToReco.push_back(tmpiso);
549 
550  // X = et
551  histName = theHLTCollectionLabels[i].label() + "et_isolation_reco";
552  histTitle = HltHistTitle[i] + " isolation vs Et (reco)";
553  tmpiso = iBooker.book2D(histName.c_str(),
554  histTitle.c_str(),
555  plotBins,
556  plotPtMin,
557  plotPtMax,
558  plotBins,
559  plotBounds[i].first,
560  plotBounds[i].second);
561  histEtIsoOfHltObjMatchToReco.push_back(tmpiso);
562 
563  // X = phi
564  histName = theHLTCollectionLabels[i].label() + "phi_isolation_reco";
565  histTitle = HltHistTitle[i] + " isolation vs #phi (reco)";
566  tmpiso = iBooker.book2D(histName.c_str(),
567  histTitle.c_str(),
568  plotBins,
569  -plotPhiMax,
570  plotPhiMax,
571  plotBins,
572  plotBounds[i].first,
573  plotBounds[i].second);
574  histPhiIsoOfHltObjMatchToReco.push_back(tmpiso);
575  //--------------------
576 
577  } // END of HLT histograms
578  }
579 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dirname_, etahistiso, etahistisomatchreco, ethistiso, ethistisomatchreco, histEtaIsoOfHltObjMatchToReco, histEtIsoOfHltObjMatchToReco, histHltObjMatchToReco, histMatchReco, histMatchRecoMonPath, histMonpath, histPhiIsoOfHltObjMatchToReco, histReco, histRecoMonpath, B2GTnPMonitor_cfi::histTitle, mps_fire::i, label, numOfHLTCollectionLabels, pdgGen, phiHistIso, phiHistIsoMatchReco, plotBins, plotBounds, plotEtaMax, plotiso, plotPhiMax, plotPtMax, plotPtMin, dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), standardHist, AlCaHLTBitMon_QueryRunRegistry::string, theHLTCollectionHumanNames, theHLTCollectionLabels, totalmatchreco, totalreco, and useHumanReadableHistTitles.

◆ dqmBeginRun()

void EmDQMReco::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 199 of file EmDQMReco.cc.

199  {
200  bool isHltConfigChanged = false; // change of cfg at run boundaries?
201  isHltConfigInitialized_ = hltConfig_.init(iRun, iSetup, "HLT", isHltConfigChanged);
202 }

References hltConfig_, HLTConfigProvider::init(), and isHltConfigInitialized_.

Friends And Related Function Documentation

◆ HistoFillerReco< l1extra::L1EmParticleCollection >

Definition at line 83 of file EmDQMReco.h.

◆ HistoFillerReco< reco::ElectronCollection >

friend class HistoFillerReco< reco::ElectronCollection >
friend

Definition at line 81 of file EmDQMReco.h.

◆ HistoFillerReco< reco::RecoEcalCandidateCollection >

Definition at line 82 of file EmDQMReco.h.

Member Data Documentation

◆ dirname_

std::string EmDQMReco::dirname_
private

Definition at line 224 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

◆ etahistiso

std::vector<MonitorElement *> EmDQMReco::etahistiso
private

\label Isolation distributions

Definition at line 184 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ etahistisomatchreco

std::vector<MonitorElement *> EmDQMReco::etahistisomatchreco
private

Definition at line 188 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ ethistiso

std::vector<MonitorElement *> EmDQMReco::ethistiso
private

Definition at line 185 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ ethistisomatchreco

std::vector<MonitorElement *> EmDQMReco::ethistisomatchreco
private

Definition at line 189 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ eventnum

int EmDQMReco::eventnum
private

Definition at line 220 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ histEtaIsoOfHltObjMatchToReco

std::vector<MonitorElement *> EmDQMReco::histEtaIsoOfHltObjMatchToReco
private

Definition at line 193 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histEtIsoOfHltObjMatchToReco

std::vector<MonitorElement *> EmDQMReco::histEtIsoOfHltObjMatchToReco
private

Definition at line 192 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histHltObjMatchToReco

std::vector<std::unique_ptr<FourVectorMonitorElements> > EmDQMReco::histHltObjMatchToReco
private

Definition at line 178 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histMatchReco

std::vector<std::unique_ptr<FourVectorMonitorElements> > EmDQMReco::histMatchReco
private

Definition at line 168 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histMatchRecoMonPath

std::vector<std::unique_ptr<FourVectorMonitorElements> > EmDQMReco::histMatchRecoMonPath
private

Definition at line 173 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histMonpath

std::unique_ptr<FourVectorMonitorElements> EmDQMReco::histMonpath
private

Definition at line 217 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histoFillerClu

HistoFillerReco<reco::RecoEcalCandidateCollection>* EmDQMReco::histoFillerClu
private

Definition at line 227 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ histoFillerEle

HistoFillerReco<reco::ElectronCollection>* EmDQMReco::histoFillerEle
private

Definition at line 226 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ histoFillerL1Iso

HistoFillerReco<l1extra::L1EmParticleCollection>* EmDQMReco::histoFillerL1Iso
private

Definition at line 230 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ histoFillerL1NonIso

HistoFillerReco<l1extra::L1EmParticleCollection>* EmDQMReco::histoFillerL1NonIso
private

Definition at line 228 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ histoFillerPho

HistoFillerReco<reco::RecoEcalCandidateCollection>* EmDQMReco::histoFillerPho
private

Definition at line 229 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ histPhiIsoOfHltObjMatchToReco

std::vector<MonitorElement *> EmDQMReco::histPhiIsoOfHltObjMatchToReco
private

Definition at line 194 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ histReco

std::unique_ptr<FourVectorMonitorElements> EmDQMReco::histReco
private

Definition at line 207 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

◆ histRecoMonpath

std::unique_ptr<FourVectorMonitorElements> EmDQMReco::histRecoMonpath
private

Definition at line 212 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

◆ hltConfig_

HLTConfigProvider EmDQMReco::hltConfig_
private

Definition at line 112 of file EmDQMReco.h.

Referenced by analyze(), and dqmBeginRun().

◆ hltResultsT

edm::EDGetTokenT<edm::TriggerResults> EmDQMReco::hltResultsT
private

Definition at line 151 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ isHltConfigInitialized_

bool EmDQMReco::isHltConfigInitialized_
private

Definition at line 113 of file EmDQMReco.h.

Referenced by analyze(), dqmBeginRun(), and EmDQMReco().

◆ isoNames

std::vector<std::vector<edm::InputTag> > EmDQMReco::isoNames
private

Definition at line 109 of file EmDQMReco.h.

Referenced by EmDQMReco().

◆ numOfHLTCollectionLabels

unsigned int EmDQMReco::numOfHLTCollectionLabels
private

Definition at line 102 of file EmDQMReco.h.

Referenced by analyze(), bookHistograms(), and EmDQMReco().

◆ pdgGen

int EmDQMReco::pdgGen
private

Definition at line 120 of file EmDQMReco.h.

Referenced by analyze(), bookHistograms(), and EmDQMReco().

◆ phiHistIso

std::vector<MonitorElement *> EmDQMReco::phiHistIso
private

Definition at line 186 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ phiHistIsoMatchReco

std::vector<MonitorElement *> EmDQMReco::phiHistIsoMatchReco
private

Definition at line 190 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ plotBins

unsigned int EmDQMReco::plotBins
private

number of bins to use for ALL plots (?)

Definition at line 130 of file EmDQMReco.h.

Referenced by bookHistograms(), EmDQMReco(), and EmDQMReco::FourVectorMonitorElements::FourVectorMonitorElements().

◆ plotBounds

std::vector<std::pair<double, double> > EmDQMReco::plotBounds
private

Definition at line 110 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

◆ plotEtaMax

double EmDQMReco::plotEtaMax
private

◆ plotiso

std::vector<bool> EmDQMReco::plotiso
private

Definition at line 108 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

◆ plotPhiMax

double EmDQMReco::plotPhiMax
private

◆ plotPtMax

double EmDQMReco::plotPtMax
private

◆ plotPtMin

double EmDQMReco::plotPtMin
private

◆ processNameRecoMonPath

std::string EmDQMReco::processNameRecoMonPath
private

process name for the trigger results for events to be filled into {et,eta,phi}recomonpath

Definition at line 143 of file EmDQMReco.h.

Referenced by EmDQMReco().

◆ pTComparator_

GreaterByPt<reco::Particle> EmDQMReco::pTComparator_
private

Definition at line 235 of file EmDQMReco.h.

Referenced by analyze().

◆ pTRecoComparator_

GreaterByPt<reco::GsfElectron> EmDQMReco::pTRecoComparator_
private

Definition at line 236 of file EmDQMReco.h.

◆ recocut_

unsigned int EmDQMReco::recocut_
private

Definition at line 134 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ recoElectronsInput

edm::EDGetTokenT<reco::GsfElectronCollection> EmDQMReco::recoElectronsInput
private

input tag for the reconstructed electron collection (with respect to which the HLT efficiencies are calculated ?)

Definition at line 148 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ recoEtaAcc

double EmDQMReco::recoEtaAcc
private

Definition at line 121 of file EmDQMReco.h.

Referenced by EmDQMReco().

◆ recoEtAcc

double EmDQMReco::recoEtAcc
private

Definition at line 122 of file EmDQMReco.h.

Referenced by EmDQMReco().

◆ recoObjectsEBT

edm::EDGetTokenT<std::vector<reco::SuperCluster> > EmDQMReco::recoObjectsEBT
private

Definition at line 149 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ recoObjectsEET

edm::EDGetTokenT<std::vector<reco::SuperCluster> > EmDQMReco::recoObjectsEET
private

Definition at line 150 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ reqNum

unsigned int EmDQMReco::reqNum
private

Definition at line 119 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ standardHist

std::vector<std::unique_ptr<FourVectorMonitorElements> > EmDQMReco::standardHist
private

\label Et, eta and phi distributions (RECO) for the different HLT modules to be looked at.

Definition at line 163 of file EmDQMReco.h.

Referenced by bookHistograms().

◆ theHLTCollectionHumanNames

std::vector<std::string> EmDQMReco::theHLTCollectionHumanNames
private

Definition at line 105 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

◆ theHLTCollectionLabels

std::vector<edm::InputTag> EmDQMReco::theHLTCollectionLabels
private

the HLT collections to be looked at

Definition at line 100 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

◆ theHltName

std::string EmDQMReco::theHltName
private

Definition at line 111 of file EmDQMReco.h.

◆ theHLTOutputTypes

std::vector<int> EmDQMReco::theHLTOutputTypes
private

Definition at line 107 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ totalmatchreco

MonitorElement* EmDQMReco::totalmatchreco
private

Definition at line 200 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

◆ totalreco

MonitorElement* EmDQMReco::totalreco
private

Plots of efficiency per step (note that these are NOT filled with four vector quantities but rather event counts)

Definition at line 199 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

◆ triggerNameRecoMonPath

std::string EmDQMReco::triggerNameRecoMonPath
private

events which fire this trigger are filled into {et,eta,phi}recomonpath

Definition at line 138 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ triggerObjT

edm::EDGetTokenT<trigger::TriggerEventWithRefs> EmDQMReco::triggerObjT
private

Definition at line 152 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

◆ useHumanReadableHistTitles

bool EmDQMReco::useHumanReadableHistTitles
private

Definition at line 104 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

EmDQMReco::ethistisomatchreco
std::vector< MonitorElement * > ethistisomatchreco
Definition: EmDQMReco.h:189
EmDQMReco::plotEtaMax
double plotEtaMax
Definition: EmDQMReco.h:124
mps_fire.i
i
Definition: mps_fire.py:428
trigger::TriggerElectron
Definition: TriggerTypeDefs.h:78
filters
std::vector< TPRegexp > filters
Definition: eve_filter.cc:22
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
trigger::TriggerL1IsoEG
Definition: TriggerTypeDefs.h:32
EmDQMReco::pTComparator_
GreaterByPt< reco::Particle > pTComparator_
Definition: EmDQMReco.h:235
reco::Particle
Definition: Particle.h:16
EmDQMReco::histEtaIsoOfHltObjMatchToReco
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:193
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
EmDQMReco::standardHist
std::vector< std::unique_ptr< FourVectorMonitorElements > > standardHist
Definition: EmDQMReco.h:163
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
EmDQMReco::phiHistIsoMatchReco
std::vector< MonitorElement * > phiHistIsoMatchReco
Definition: EmDQMReco.h:190
EmDQMReco::recoObjectsEBT
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:149
EmDQMReco::histReco
std::unique_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:207
cms::cuda::assert
assert(be >=bs)
EmDQMReco::etahistisomatchreco
std::vector< MonitorElement * > etahistisomatchreco
Definition: EmDQMReco.h:188
EmDQMReco::totalmatchreco
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:200
EmDQMReco::recoEtaAcc
double recoEtaAcc
Definition: EmDQMReco.h:121
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
EmDQMReco::processNameRecoMonPath
std::string processNameRecoMonPath
Definition: EmDQMReco.h:143
edm::Handle
Definition: AssociativeIterator.h:50
HistoFillerReco::isoNameTokens_
std::vector< edm::EDGetTokenT< edm::AssociationMap< edm::OneToValue< T, float > > > > isoNameTokens_
Definition: EmDQMReco.h:40
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
EmDQMReco::ethistiso
std::vector< MonitorElement * > ethistiso
Definition: EmDQMReco.h:185
HistoFillerReco::fillHistos
void fillHistos(edm::Handle< trigger::TriggerEventWithRefs > &triggerObj, const edm::Event &iEvent, unsigned int n, std::vector< reco::Particle > &sortedReco, bool plotReco, bool plotMonpath)
Definition: EmDQMReco.cc:778
EmDQMReco::eventnum
int eventnum
Definition: EmDQMReco.h:220
EmDQMReco::histEtIsoOfHltObjMatchToReco
std::vector< MonitorElement * > histEtIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:192
EmDQMReco::pdgGen
int pdgGen
Definition: EmDQMReco.h:120
EmDQMReco::histoFillerL1Iso
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:230
EmDQMReco::totalreco
MonitorElement * totalreco
Definition: EmDQMReco.h:199
EmDQMReco::theHLTOutputTypes
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:107
EmDQMReco::recoObjectsEET
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:150
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
EmDQMReco::histoFillerEle
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:226
EmDQMReco::phiHistIso
std::vector< MonitorElement * > phiHistIso
Definition: EmDQMReco.h:186
EmDQMReco::recocut_
unsigned int recocut_
Definition: EmDQMReco.h:134
EmDQMReco::isHltConfigInitialized_
bool isHltConfigInitialized_
Definition: EmDQMReco.h:113
EmDQMReco::plotiso
std::vector< bool > plotiso
Definition: EmDQMReco.h:108
EmDQMReco::useHumanReadableHistTitles
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:104
EmDQMReco::plotPhiMax
double plotPhiMax
Definition: EmDQMReco.h:127
EmDQMReco::histoFillerL1NonIso
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:228
EmDQMReco::recoEtAcc
double recoEtAcc
Definition: EmDQMReco.h:122
EmDQMReco::plotPtMin
double plotPtMin
Definition: EmDQMReco.h:125
EmDQMReco::reqNum
unsigned int reqNum
Definition: EmDQMReco.h:119
EmDQMReco::etahistiso
std::vector< MonitorElement * > etahistiso
Definition: EmDQMReco.h:184
EmDQMReco::plotPtMax
double plotPtMax
Definition: EmDQMReco.h:126
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
EmDQMReco::numOfHLTCollectionLabels
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:102
B2GTnPMonitor_cfi.histTitle
histTitle
Definition: B2GTnPMonitor_cfi.py:112
edm::AssociationMap
Definition: AssociationMap.h:48
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
EmDQMReco::histHltObjMatchToReco
std::vector< std::unique_ptr< FourVectorMonitorElements > > histHltObjMatchToReco
Definition: EmDQMReco.h:178
createfilelist.int
int
Definition: createfilelist.py:10
EmDQMReco::plotBins
unsigned int plotBins
Definition: EmDQMReco.h:130
p4
double p4[4]
Definition: TauolaWrapper.h:92
dqm::impl::MonitorElement::setBinLabel
virtual 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)
Definition: MonitorElement.cc:771
EmDQMReco::hltConfig_
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:112
EmDQMReco::hltResultsT
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:151
trigger::TriggerCluster
Definition: TriggerTypeDefs.h:88
EmDQMReco::histRecoMonpath
std::unique_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:212
reco::Particle::energy
double energy() const
energy
Definition: Particle.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EmDQMReco::histMatchRecoMonPath
std::vector< std::unique_ptr< FourVectorMonitorElements > > histMatchRecoMonPath
Definition: EmDQMReco.h:173
HLTConfigProvider::triggerIndex
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
Definition: HLTConfigProvider.h:73
EmDQMReco::histMatchReco
std::vector< std::unique_ptr< FourVectorMonitorElements > > histMatchReco
Definition: EmDQMReco.h:168
EmDQMReco::isoNames
std::vector< std::vector< edm::InputTag > > isoNames
Definition: EmDQMReco.h:109
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
EmDQMReco::recoElectronsInput
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:148
EmDQMReco::theHLTCollectionHumanNames
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:105
EmDQMReco::triggerObjT
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:152
trigger::TriggerL1NoIsoEG
Definition: TriggerTypeDefs.h:31
HLTConfigProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
Definition: HLTConfigProvider.cc:36
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
EmDQMReco::dirname_
std::string dirname_
Definition: EmDQMReco.h:224
EmDQMReco::histMonpath
std::unique_ptr< FourVectorMonitorElements > histMonpath
Definition: EmDQMReco.h:217
edm::HLTGlobalStatus::accept
bool accept() const
Has at least one path accepted the event?
Definition: HLTGlobalStatus.h:49
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
EmDQMReco::theHLTCollectionLabels
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:100
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
EmDQMReco::histPhiIsoOfHltObjMatchToReco
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:194
cms::Exception
Definition: Exception.h:70
EmDQMReco::histoFillerClu
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:227
trigger::TriggerPhoton
HLT.
Definition: TriggerTypeDefs.h:77
EmDQMReco::triggerNameRecoMonPath
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:138
reco::Candidate::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
EmDQMReco::plotBounds
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:110
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
event
Definition: event.py:1
edm::OneToValue
Definition: OneToValue.h:12
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
EmDQMReco::histoFillerPho
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:229
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443