CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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::TriggerResults
hltResultsT
 
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::GsfElectronCollection
recoElectronsInput
 
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::TriggerEventWithRefs
triggerObjT
 
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
< FourVectorMonitorElements
histReco
 
std::unique_ptr
< FourVectorMonitorElements
histRecoMonpath
 
std::unique_ptr
< FourVectorMonitorElements
histMonpath
 

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
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (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 ( const edm::ParameterSet pset)
explicit

Constructor.

Definition at line 89 of file EmDQMReco.cc.

References cms::cuda::assert(), dirname_, eventnum, filters, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), 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, 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.

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 }
int pdgGen
Definition: EmDQMReco.h:120
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::vector< edm::InputTag > > isoNames
Definition: EmDQMReco.h:109
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:229
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:226
std::string dirname_
Definition: EmDQMReco.h:224
int eventnum
Definition: EmDQMReco.h:220
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:107
std::vector< edm::EDGetTokenT< edm::AssociationMap< edm::OneToValue< T, float > > > > isoNameTokens_
Definition: EmDQMReco.h:40
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:150
assert(be >=bs)
unsigned int plotBins
Definition: EmDQMReco.h:130
std::vector< TPRegexp > filters
Definition: eve_filter.cc:22
bool isHltConfigInitialized_
Definition: EmDQMReco.h:113
double recoEtaAcc
Definition: EmDQMReco.h:121
double recoEtAcc
Definition: EmDQMReco.h:122
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:105
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:102
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:230
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:149
unsigned int recocut_
Definition: EmDQMReco.h:134
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:138
std::vector< bool > plotiso
Definition: EmDQMReco.h:108
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:148
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:104
double plotPhiMax
Definition: EmDQMReco.h:127
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:152
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:228
unsigned int reqNum
Definition: EmDQMReco.h:119
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:100
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:110
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:151
double plotPtMin
Definition: EmDQMReco.h:125
double plotPtMax
Definition: EmDQMReco.h:126
double plotEtaMax
Definition: EmDQMReco.h:124
std::string processNameRecoMonPath
Definition: EmDQMReco.h:143
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:227
EmDQMReco::~EmDQMReco ( )
override

Destructor.

Definition at line 584 of file EmDQMReco.cc.

584 {}

Member Function Documentation

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.

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

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 }
int pdgGen
Definition: EmDQMReco.h:120
double energy() const
energy
Definition: Particle.h:99
std::unique_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:207
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:229
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:226
int eventnum
Definition: EmDQMReco.h:220
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:107
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
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:150
bool isHltConfigInitialized_
Definition: EmDQMReco.h:113
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:112
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
void Fill(long long x)
std::unique_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:212
GreaterByPt< reco::Particle > pTComparator_
Definition: EmDQMReco.h:235
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:102
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:230
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * totalreco
Definition: EmDQMReco.h:199
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:149
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:200
unsigned int recocut_
Definition: EmDQMReco.h:134
bool isValid() const
Definition: HandleBase.h:70
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:138
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:148
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:152
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:228
unsigned int reqNum
Definition: EmDQMReco.h:119
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:151
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
Log< level::Warning, false > LogWarning
tuple size
Write out results.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:227
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.

References dqm::implementation::IBooker::book1D(), dirname_, etahistiso, etahistisomatchreco, ethistiso, ethistisomatchreco, histEtaIsoOfHltObjMatchToReco, histEtIsoOfHltObjMatchToReco, histHltObjMatchToReco, histMatchReco, histMatchRecoMonPath, histMonpath, histPhiIsoOfHltObjMatchToReco, histReco, histRecoMonpath, 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.

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);
233  totalmatchreco->setBinLabel(numOfHLTCollectionLabels + 1, "Total");
234  totalmatchreco->setBinLabel(numOfHLTCollectionLabels + 2, "Reco");
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;
291  if (theHLTCollectionHumanNames.size() == numOfHLTCollectionLabels && useHumanReadableHistTitles) {
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 }
std::vector< MonitorElement * > histEtIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:192
int pdgGen
Definition: EmDQMReco.h:120
std::vector< std::unique_ptr< FourVectorMonitorElements > > histMatchReco
Definition: EmDQMReco.h:168
std::vector< std::unique_ptr< FourVectorMonitorElements > > standardHist
Definition: EmDQMReco.h:163
std::unique_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:207
std::vector< MonitorElement * > etahistisomatchreco
Definition: EmDQMReco.h:188
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
std::string dirname_
Definition: EmDQMReco.h:224
std::vector< MonitorElement * > etahistiso
Definition: EmDQMReco.h:184
unsigned int plotBins
Definition: EmDQMReco.h:130
std::vector< MonitorElement * > phiHistIsoMatchReco
Definition: EmDQMReco.h:190
std::unique_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:212
std::vector< std::unique_ptr< FourVectorMonitorElements > > histMatchRecoMonPath
Definition: EmDQMReco.h:173
char const * label
std::vector< MonitorElement * > ethistiso
Definition: EmDQMReco.h:185
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:105
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:102
MonitorElement * totalreco
Definition: EmDQMReco.h:199
std::vector< std::unique_ptr< FourVectorMonitorElements > > histHltObjMatchToReco
Definition: EmDQMReco.h:178
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:200
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:194
std::vector< MonitorElement * > phiHistIso
Definition: EmDQMReco.h:186
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)
std::vector< bool > plotiso
Definition: EmDQMReco.h:108
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:104
double plotPhiMax
Definition: EmDQMReco.h:127
std::vector< MonitorElement * > ethistisomatchreco
Definition: EmDQMReco.h:189
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:100
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:110
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:193
double plotPtMin
Definition: EmDQMReco.h:125
double plotPtMax
Definition: EmDQMReco.h:126
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
double plotEtaMax
Definition: EmDQMReco.h:124
std::unique_ptr< FourVectorMonitorElements > histMonpath
Definition: EmDQMReco.h:217
void EmDQMReco::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 199 of file EmDQMReco.cc.

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

199  {
200  bool isHltConfigChanged = false; // change of cfg at run boundaries?
201  isHltConfigInitialized_ = hltConfig_.init(iRun, iSetup, "HLT", isHltConfigChanged);
202 }
bool isHltConfigInitialized_
Definition: EmDQMReco.h:113
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:112
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor

Friends And Related Function Documentation

Definition at line 83 of file EmDQMReco.h.

friend class HistoFillerReco< reco::ElectronCollection >
friend

Definition at line 81 of file EmDQMReco.h.

Definition at line 82 of file EmDQMReco.h.

Member Data Documentation

std::string EmDQMReco::dirname_
private

Definition at line 224 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

Isolation distributions

Definition at line 184 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 188 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 185 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 189 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

int EmDQMReco::eventnum
private

Definition at line 220 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 193 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 192 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 178 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 168 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 173 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 217 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 227 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 226 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 230 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 228 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 229 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 194 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 207 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 212 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

HLTConfigProvider EmDQMReco::hltConfig_
private

Definition at line 112 of file EmDQMReco.h.

Referenced by analyze(), and dqmBeginRun().

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

Definition at line 151 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::isHltConfigInitialized_
private

Definition at line 113 of file EmDQMReco.h.

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

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

Definition at line 109 of file EmDQMReco.h.

Referenced by EmDQMReco().

unsigned int EmDQMReco::numOfHLTCollectionLabels
private

Definition at line 102 of file EmDQMReco.h.

Referenced by analyze(), bookHistograms(), EmDQMReco(), and HistoFillerReco< T >::fillHistos().

int EmDQMReco::pdgGen
private

Definition at line 120 of file EmDQMReco.h.

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

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

Definition at line 186 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 190 of file EmDQMReco.h.

Referenced by bookHistograms(), and HistoFillerReco< T >::fillHistos().

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().

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

Definition at line 110 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

Definition at line 108 of file EmDQMReco.h.

Referenced by bookHistograms(), EmDQMReco(), and HistoFillerReco< T >::fillHistos().

double EmDQMReco::plotPhiMax
private
double EmDQMReco::plotPtMax
private
double EmDQMReco::plotPtMin
private
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().

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

Definition at line 235 of file EmDQMReco.h.

Referenced by analyze().

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

Definition at line 236 of file EmDQMReco.h.

unsigned int EmDQMReco::recocut_
private

Definition at line 134 of file EmDQMReco.h.

Referenced by analyze(), EmDQMReco(), and HistoFillerReco< T >::fillHistos().

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().

double EmDQMReco::recoEtaAcc
private

Definition at line 121 of file EmDQMReco.h.

Referenced by EmDQMReco().

double EmDQMReco::recoEtAcc
private

Definition at line 122 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 149 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 150 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

unsigned int EmDQMReco::reqNum
private

Definition at line 119 of file EmDQMReco.h.

Referenced by analyze(), EmDQMReco(), and HistoFillerReco< T >::fillHistos().

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

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(), and HistoFillerReco< T >::fillHistos().

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

Definition at line 105 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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(), EmDQMReco(), HistoFillerReco< T >::fillHistos(), and HistoFiller< T >::fillHistos().

std::string EmDQMReco::theHltName
private

Definition at line 111 of file EmDQMReco.h.

std::vector<int> EmDQMReco::theHLTOutputTypes
private
MonitorElement* EmDQMReco::totalmatchreco
private

Definition at line 200 of file EmDQMReco.h.

Referenced by analyze(), bookHistograms(), and HistoFillerReco< T >::fillHistos().

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(), bookHistograms(), and HistoFillerReco< T >::fillHistos().

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().

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

Definition at line 152 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::useHumanReadableHistTitles
private

Definition at line 104 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().