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::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

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
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

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
 
boost::ptr_vector< FourVectorMonitorElementsstandardHist
 
boost::ptr_vector< FourVectorMonitorElementshistMatchReco
 
boost::ptr_vector< FourVectorMonitorElementshistMatchRecoMonPath
 
boost::ptr_vector< FourVectorMonitorElementshistHltObjMatchToReco
 
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
boost::scoped_ptr< FourVectorMonitorElementshistReco
 
boost::scoped_ptr< FourVectorMonitorElementshistRecoMonpath
 
boost::scoped_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::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 47 of file EmDQMReco.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 89 of file EmDQMReco.cc.

References edm::EDConsumerBase::consumes(), dirname_, eventnum, filters, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), histoFillerClu, histoFillerEle, histoFillerL1Iso, histoFillerL1NonIso, histoFillerPho, hltResultsT, mps_fire::i, HLT_2018_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:121
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::vector< edm::InputTag > > isoNames
Definition: EmDQMReco.h:110
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:230
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:227
std::string dirname_
Definition: EmDQMReco.h:225
int eventnum
Definition: EmDQMReco.h:221
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:108
std::vector< edm::EDGetTokenT< edm::AssociationMap< edm::OneToValue< T, float > > > > isoNameTokens_
Definition: EmDQMReco.h:41
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:151
unsigned int plotBins
Definition: EmDQMReco.h:131
std::vector< TPRegexp > filters
Definition: eve_filter.cc:22
bool isHltConfigInitialized_
Definition: EmDQMReco.h:114
double recoEtaAcc
Definition: EmDQMReco.h:122
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
double recoEtAcc
Definition: EmDQMReco.h:123
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:106
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:103
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:231
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:150
unsigned int recocut_
Definition: EmDQMReco.h:135
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:139
std::vector< bool > plotiso
Definition: EmDQMReco.h:109
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:149
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:105
double plotPhiMax
Definition: EmDQMReco.h:128
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:153
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:229
unsigned int reqNum
Definition: EmDQMReco.h:120
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:101
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:111
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:152
double plotPtMin
Definition: EmDQMReco.h:126
double plotPtMax
Definition: EmDQMReco.h:127
double plotEtaMax
Definition: EmDQMReco.h:125
std::string processNameRecoMonPath
Definition: EmDQMReco.h:144
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:228
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 
)
override

NOTE: hltConfigProvider initialization has been moved to beginRun()

Definition at line 589 of file EmDQMReco.cc.

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, 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 }
size
Write out results.
int pdgGen
Definition: EmDQMReco.h:121
double energy() const
energy
Definition: Particle.h:99
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:230
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:227
int eventnum
Definition: EmDQMReco.h:221
bool accept() const
Has at least one path accepted the event?
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:108
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:151
bool isHltConfigInitialized_
Definition: EmDQMReco.h:114
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:113
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)
GreaterByPt< reco::Particle > pTComparator_
Definition: EmDQMReco.h:236
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:103
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:231
T sqrt(T t)
Definition: SSEVec.h:19
double p4[4]
Definition: TauolaWrapper.h:92
MonitorElement * totalreco
Definition: EmDQMReco.h:200
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:150
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:201
unsigned int recocut_
Definition: EmDQMReco.h:135
bool isValid() const
Definition: HandleBase.h:70
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:139
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:149
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:153
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:229
unsigned int reqNum
Definition: EmDQMReco.h:120
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:213
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:152
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:208
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:228
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::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dirname_, etahistiso, etahistisomatchreco, ethistiso, ethistisomatchreco, EmDQMReco::FourVectorMonitorElements::FourVectorMonitorElements(), 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::dqmstoreimpl::DQMStore::IBooker::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.reset(new FourVectorMonitorElements(this,
262  iBooker,
263  "reco_%s", // pattern for histogram name
264  "%s of " + pdgIdString + "s"));
265 
266  //--------------------
267 
268  // monpath
269  histRecoMonpath.reset(new 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.reset(new 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(new 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(new 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(new 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(new 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:193
int pdgGen
Definition: EmDQMReco.h:121
boost::ptr_vector< FourVectorMonitorElements > standardHist
Definition: EmDQMReco.h:164
std::vector< MonitorElement * > etahistisomatchreco
Definition: EmDQMReco.h:189
std::string dirname_
Definition: EmDQMReco.h:225
boost::ptr_vector< FourVectorMonitorElements > histMatchReco
Definition: EmDQMReco.h:169
std::vector< MonitorElement * > etahistiso
Definition: EmDQMReco.h:185
unsigned int plotBins
Definition: EmDQMReco.h:131
std::vector< MonitorElement * > phiHistIsoMatchReco
Definition: EmDQMReco.h:191
char const * label
boost::ptr_vector< FourVectorMonitorElements > histMatchRecoMonPath
Definition: EmDQMReco.h:174
std::vector< MonitorElement * > ethistiso
Definition: EmDQMReco.h:186
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:106
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:103
MonitorElement * totalreco
Definition: EmDQMReco.h:200
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:201
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:195
std::vector< MonitorElement * > phiHistIso
Definition: EmDQMReco.h:187
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:109
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:105
double plotPhiMax
Definition: EmDQMReco.h:128
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:213
boost::scoped_ptr< FourVectorMonitorElements > histMonpath
Definition: EmDQMReco.h:218
std::vector< MonitorElement * > ethistisomatchreco
Definition: EmDQMReco.h:190
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:101
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:111
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:194
double plotPtMin
Definition: EmDQMReco.h:126
double plotPtMax
Definition: EmDQMReco.h:127
boost::ptr_vector< FourVectorMonitorElements > histHltObjMatchToReco
Definition: EmDQMReco.h:179
double plotEtaMax
Definition: EmDQMReco.h:125
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:208
void EmDQMReco::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
override

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:114
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:113
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 84 of file EmDQMReco.h.

friend class HistoFillerReco< reco::ElectronCollection >
friend

Definition at line 82 of file EmDQMReco.h.

Definition at line 83 of file EmDQMReco.h.

Member Data Documentation

std::string EmDQMReco::dirname_
private

Definition at line 225 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

Isolation distributions

Definition at line 185 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 189 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 186 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 190 of file EmDQMReco.h.

Referenced by bookHistograms().

int EmDQMReco::eventnum
private

Definition at line 221 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 194 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 193 of file EmDQMReco.h.

Referenced by bookHistograms().

boost::ptr_vector<FourVectorMonitorElements> EmDQMReco::histHltObjMatchToReco
private

Definition at line 179 of file EmDQMReco.h.

Referenced by bookHistograms().

boost::ptr_vector<FourVectorMonitorElements> EmDQMReco::histMatchReco
private

Definition at line 169 of file EmDQMReco.h.

Referenced by bookHistograms().

boost::ptr_vector<FourVectorMonitorElements> EmDQMReco::histMatchRecoMonPath
private

Definition at line 174 of file EmDQMReco.h.

Referenced by bookHistograms().

boost::scoped_ptr<FourVectorMonitorElements> EmDQMReco::histMonpath
private

Definition at line 218 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 228 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 227 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 231 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 229 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 230 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 195 of file EmDQMReco.h.

Referenced by bookHistograms().

boost::scoped_ptr<FourVectorMonitorElements> EmDQMReco::histReco
private

Definition at line 208 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

boost::scoped_ptr<FourVectorMonitorElements> EmDQMReco::histRecoMonpath
private

Definition at line 213 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

HLTConfigProvider EmDQMReco::hltConfig_
private

Definition at line 113 of file EmDQMReco.h.

Referenced by analyze(), and dqmBeginRun().

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

Definition at line 152 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::isHltConfigInitialized_
private

Definition at line 114 of file EmDQMReco.h.

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

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

Definition at line 110 of file EmDQMReco.h.

Referenced by EmDQMReco().

unsigned int EmDQMReco::numOfHLTCollectionLabels
private

Definition at line 103 of file EmDQMReco.h.

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

int EmDQMReco::pdgGen
private

Definition at line 121 of file EmDQMReco.h.

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

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

Definition at line 187 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 191 of file EmDQMReco.h.

Referenced by bookHistograms().

unsigned int EmDQMReco::plotBins
private

number of bins to use for ALL plots (?)

Definition at line 131 of file EmDQMReco.h.

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

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

Definition at line 111 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

Definition at line 109 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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 144 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 236 of file EmDQMReco.h.

Referenced by analyze().

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

Definition at line 237 of file EmDQMReco.h.

unsigned int EmDQMReco::recocut_
private

Definition at line 135 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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 149 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

double EmDQMReco::recoEtaAcc
private

Definition at line 122 of file EmDQMReco.h.

Referenced by EmDQMReco().

double EmDQMReco::recoEtAcc
private

Definition at line 123 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 150 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 151 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

unsigned int EmDQMReco::reqNum
private

Definition at line 120 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

boost::ptr_vector<FourVectorMonitorElements> EmDQMReco::standardHist
private

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

Definition at line 164 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 106 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 101 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

std::string EmDQMReco::theHltName
private

Definition at line 112 of file EmDQMReco.h.

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

Definition at line 108 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

MonitorElement* EmDQMReco::totalmatchreco
private

Definition at line 201 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

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 200 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

std::string EmDQMReco::triggerNameRecoMonPath
private

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

Definition at line 139 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 153 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::useHumanReadableHistTitles
private

Definition at line 105 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().