CMS 3D CMS Logo

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

#include <EmDQMReco.h>

Inheritance diagram for EmDQMReco:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Classes

class  FourVectorMonitorElements
 

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &) override
 
void beginJob ()
 
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...
 
void endJob ()
 
 ~EmDQMReco ()
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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 & itemsToGetFromEvent () 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
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
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 edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 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)
 

Detailed Description

Definition at line 44 of file EmDQMReco.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 102 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, 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.

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

Destructor.

Definition at line 505 of file EmDQMReco.cc.

505  {
506 }

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 513 of file EmDQMReco.cc.

References edm::HLTGlobalStatus::accept(), reco::Particle::energy(), eventnum, MonitorElement::Fill(), HistoFillerReco< T >::fillHistos(), histoFillerClu, histoFillerEle, histoFillerL1Iso, histoFillerL1NonIso, histoFillerPho, histReco, histRecoMonpath, hltConfig_, hltResultsT, mps_fire::i, createfilelist::int, isHltConfigInitialized_, edm::HandleBase::isValid(), gen::n, numOfHLTCollectionLabels, p4, 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.

514 {
515 
516  // protect from hlt config failure
517  if( !isHltConfigInitialized_ ) return;
518 
519  eventnum++;
520  bool plotMonpath = false;
521  bool plotReco = true;
522 
526 
527  if (pdgGen == 11) {
528 
529  event.getByToken(recoElectronsInput, recoObjects);
530 
531  if (recoObjects->size() < (unsigned int)recocut_) {
532  // edm::LogWarning("EmDQMReco") << "Less than "<< recocut_ <<" Reco particles with pdgId=" << pdgGen << ". Only " << cutRecoCounter->size() << " particles.";
533  return;
534  }
535  } else if (pdgGen == 22) {
536 
537  event.getByToken(recoObjectsEBT, recoObjectsEB);
538  event.getByToken(recoObjectsEET, recoObjectsEE);
539 
540  if (recoObjectsEB->size() + recoObjectsEE->size() < (unsigned int)recocut_) {
541  // edm::LogWarning("EmDQMReco") << "Less than "<< recocut_ <<" Reco particles with pdgId=" << pdgGen << ". Only " << cutRecoCounter.size() << " particles.";
542  return;
543  }
544  }
545 
547  event.getByToken(hltResultsT, HLTR);
548 
553 
554  /* if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedSingleEgammaEt8"){
555  triggerIndex = hltConfig.triggerIndex("HLT_L1SingleEG8");
556  } else if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedSingleEgammaEt5") {
557  triggerIndex = hltConfig.triggerIndex("HLT_L1SingleEG5");
558  } else if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedDoubleEgammaEt5") {
559  triggerIndex = hltConfig.triggerIndex("HLT_L1DoubleEG5");
560  } else {
561  triggerIndex = hltConfig.triggerIndex("");
562  } */
563 
564  unsigned int triggerIndex;
566 
567  //triggerIndex must be less than the size of HLTR or you get a CMSException
568  bool isFired = false;
569  if (triggerIndex < HLTR->size()){
570  isFired = HLTR->accept(triggerIndex);
571  }
572 
573  // fill L1 and HLT info
574  // get objects possed by each filter
576  event.getByToken(triggerObjT, triggerObj);
577 
578  if(!triggerObj.isValid()) {
579  edm::LogWarning("EmDQMReco") << "RAW-type HLT results not found, skipping event";
580  return;
581  }
582 
584  // Fill the bin labeled "Total" //
585  // This will be the number of events looked at. //
589 
591  // Fill the bin labeled "Total" //
592  // This will be the number of events looked at. //
594  //total->Fill(numOfHLTCollectionLabels+0.5);
595  //totalmatch->Fill(numOfHLTCollectionLabels+0.5);
596 
597 
599  // Fill reconstruction info //
601  // the recocut_ highest Et generator objects of the preselected type are our matches
602 
603  std::vector<reco::Particle> sortedReco;
604  if (plotReco == true) {
605  if (pdgGen == 11) {
606  for(edm::View<reco::Candidate>::const_iterator recopart = recoObjects->begin(); recopart != recoObjects->end();recopart++){
607  reco::Particle tmpcand( recopart->charge(), recopart->p4(), recopart->vertex(),recopart->pdgId(),recopart->status() );
608  sortedReco.push_back(tmpcand);
609  }
610  }
611  else if (pdgGen == 22) {
612  for(std::vector<reco::SuperCluster>::const_iterator recopart2 = recoObjectsEB->begin(); recopart2 != recoObjectsEB->end();recopart2++){
613  float en = recopart2->energy();
614  float er = sqrt(pow(recopart2->x(),2) + pow(recopart2->y(),2) + pow(recopart2->z(),2) );
615  float px = recopart2->energy()*recopart2->x()/er;
616  float py = recopart2->energy()*recopart2->y()/er;
617  float pz = recopart2->energy()*recopart2->z()/er;
618  reco::Candidate::LorentzVector thisLV(px,py,pz,en);
619  reco::Particle tmpcand( 0, thisLV, math::XYZPoint(0.,0.,0.), 22, 1 );
620  sortedReco.push_back(tmpcand);
621  }
622  for(std::vector<reco::SuperCluster>::const_iterator recopart2 = recoObjectsEE->begin(); recopart2 != recoObjectsEE->end();recopart2++){
623  float en = recopart2->energy();
624  float er = sqrt(pow(recopart2->x(),2) + pow(recopart2->y(),2) + pow(recopart2->z(),2) );
625  float px = recopart2->energy()*recopart2->x()/er;
626  float py = recopart2->energy()*recopart2->y()/er;
627  float pz = recopart2->energy()*recopart2->z()/er;
628  reco::Candidate::LorentzVector thisLV(px,py,pz,en);
629  reco::Particle tmpcand( 0, thisLV, math::XYZPoint(0.,0.,0.), 22, 1 );
630  sortedReco.push_back(tmpcand);
631  }
632  }
633 
634  std::sort(sortedReco.begin(),sortedReco.end(),pTComparator_ );
635 
636  // Now the collection of gen particles is sorted by pt.
637  // So, remove all particles from the collection so that we
638  // only have the top "1 thru recocut_" particles in it
639 
640  sortedReco.erase(sortedReco.begin()+recocut_,sortedReco.end());
641 
642  for (unsigned int i = 0 ; i < recocut_ ; i++ ) {
643  //validity has been implicitily checked by the cut on recocut_ above
644  histReco->fill(sortedReco[i].p4());
645 
646 // etreco ->Fill( sortedReco[i].et() );
647 // etareco->Fill( sortedReco[i].eta() );
648 // phiReco->Fill( sortedReco[i].phi() );
649 
650  if (isFired) {
651  histRecoMonpath->fill(sortedReco[i].p4());
652  plotMonpath = true;
653  }
654 
655  } // END of loop over Reconstructed particles
656 
657  if (recocut_ >= reqNum) totalreco->Fill(numOfHLTCollectionLabels+1.5); // this isn't really needed anymore keep for backward comp.
658  if (recocut_ >= reqNum) totalmatchreco->Fill(numOfHLTCollectionLabels+1.5); // this isn't really needed anymore keep for backward comp.
659 
660  }
661 
662 
663 
664 
666  // Loop over filter modules //
668  for(unsigned int n=0; n < numOfHLTCollectionLabels ; n++) {
669  // These numbers are from the Parameter Set, such as:
670  // theHLTOutputTypes = cms.uint32(100)
671  switch(theHLTOutputTypes[n])
672  {
673  case trigger::TriggerL1NoIsoEG: // Non-isolated Level 1
674  histoFillerL1NonIso->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
675  break;
676  case trigger::TriggerL1IsoEG: // Isolated Level 1
677  histoFillerL1Iso->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
678  break;
679  case trigger::TriggerPhoton: // Photon
680  histoFillerPho->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
681  break;
682  case trigger::TriggerElectron: // Electron
683  histoFillerEle->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
684  break;
685  case trigger::TriggerCluster: // TriggerCluster
686  histoFillerClu->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
687  break;
688  default:
689  throw(cms::Exception("Release Validation Error") << "HLT output type not implemented: theHLTOutputTypes[n]" );
690  }
691  } // END of loop over filter modules
692 }
size
Write out results.
int pdgGen
Definition: EmDQMReco.h:124
double energy() const
energy
Definition: Particle.h:83
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:234
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:231
int eventnum
Definition: EmDQMReco.h:225
bool accept() const
Has at least one path accepted the event?
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:111
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:699
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:154
bool isHltConfigInitialized_
Definition: EmDQMReco.h:117
void Fill(long long x)
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:116
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
GreaterByPt< reco::Particle > pTComparator_
Definition: EmDQMReco.h:238
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:106
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:235
T sqrt(T t)
Definition: SSEVec.h:18
double p4[4]
Definition: TauolaWrapper.h:92
MonitorElement * totalreco
Definition: EmDQMReco.h:204
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:153
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:205
unsigned int recocut_
Definition: EmDQMReco.h:138
bool isValid() const
Definition: HandleBase.h:74
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:142
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:152
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:156
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:233
unsigned int reqNum
Definition: EmDQMReco.h:123
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:217
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:155
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:212
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:232
void EmDQMReco::beginJob ( )
void EmDQMReco::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 214 of file EmDQMReco.cc.

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

215 {
216  //edm::Service<TFileService> fs;
217  iBooker.setCurrentFolder(dirname_);
218 
220  // Set up Histogram of Effiency vs Step. //
221  // theHLTCollectionLabels is a vector of InputTags //
222  // from the configuration file. //
224 
225  std::string histName="total_eff";
226  std::string histTitle = "total events passing";
227  // This plot will have bins equal to 2+(number of
228  // HLTCollectionLabels in the config file)
229  totalreco = iBooker.book1D(histName.c_str(),histTitle.c_str(),numOfHLTCollectionLabels+2,0,numOfHLTCollectionLabels+2);
232  for (unsigned int u=0; u<numOfHLTCollectionLabels; u++){totalreco->setBinLabel(u+1,theHLTCollectionLabels[u].label().c_str());}
233 
234  histName="total_eff_RECO_matched";
235  histTitle="total events passing (Reco matched)";
236  totalmatchreco = iBooker.book1D(histName.c_str(),histTitle.c_str(),numOfHLTCollectionLabels+2,0,numOfHLTCollectionLabels+2);
237  totalmatchreco->setBinLabel(numOfHLTCollectionLabels+1,"Total");
238  totalmatchreco->setBinLabel(numOfHLTCollectionLabels+2,"Reco");
239  for (unsigned int u=0; u<numOfHLTCollectionLabels; u++){totalmatchreco->setBinLabel(u+1,theHLTCollectionLabels[u].label().c_str());}
240 
241  // MonitorElement* tmphisto;
242  MonitorElement* tmpiso;
243 
245  // Set up generator-level histograms //
247  std::string pdgIdString;
248  switch(pdgGen) {
249  case 11:
250  pdgIdString="Electron";break;
251  case 22:
252  pdgIdString="Photon";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(
262  new FourVectorMonitorElements(this, iBooker,
263  "reco_%s", // pattern for histogram name
264  "%s of " + pdgIdString + "s"
265  ));
266 
267  //--------------------
268 
269  // monpath
270  histRecoMonpath.reset(
271  new FourVectorMonitorElements(this, iBooker,
272  "reco_%s_monpath", // pattern for histogram name
273  "%s of " + pdgIdString + "s monpath"
274  )
275  );
276 
277  //--------------------
278 
279  // TODO: WHAT ARE THESE HISTOGRAMS FOR ? THEY SEEM NEVER REFERENCED ANYWHERE IN THIS FILE...
280  // final X monpath
281  histMonpath.reset(
282  new FourVectorMonitorElements(this, iBooker,
283  "final_%s_monpath", // pattern for histogram name
284  "Final %s Monpath"
285  )
286  );
287 
288  //--------------------
289 
291  // Set up histograms of HLT objects //
293 
294  // Determine what strings to use for histogram titles
295  std::vector<std::string> HltHistTitle;
296  if ( theHLTCollectionHumanNames.size() == numOfHLTCollectionLabels && useHumanReadableHistTitles ) {
297  HltHistTitle = theHLTCollectionHumanNames;
298  } else {
299  for (unsigned int i =0; i < numOfHLTCollectionLabels; i++) {
300  HltHistTitle.push_back(theHLTCollectionLabels[i].label());
301  }
302  }
303 
304  for(unsigned int i = 0; i< numOfHLTCollectionLabels ; i++){
305  //--------------------
306  // distributions of HLT objects passing filter i
307  //--------------------
308 
309 // // Et
310 // histName = theHLTCollectionLabels[i].label()+"et_all";
311 // histTitle = HltHistTitle[i]+" Et (ALL)";
312 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
313 // ethist.push_back(tmphisto);
314 //
315 // // Eta
316 // histName = theHLTCollectionLabels[i].label()+"eta_all";
317 // histTitle = HltHistTitle[i]+" #eta (ALL)";
318 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
319 // etahist.push_back(tmphisto);
320 //
321 // // phi
322 // histName = theHLTCollectionLabels[i].label()+"phi_all";
323 // histTitle = HltHistTitle[i]+" #phi (ALL)";
324 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
325 // phiHist.push_back(tmphisto);
326 
327  standardHist.push_back(new FourVectorMonitorElements(this, 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 = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
340 // ethistmatchreco.push_back(tmphisto);
341 
342 // // Eta
343 // histName = theHLTCollectionLabels[i].label()+"eta_RECO_matched";
344 // histTitle = HltHistTitle[i]+" #eta (RECO matched)";
345 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
346 // etahistmatchreco.push_back(tmphisto);
347 //
348 // // phi
349 // histName = theHLTCollectionLabels[i].label()+"phi_RECO_matched";
350 // histTitle = HltHistTitle[i]+" #phi (RECO matched)";
351 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
352 // phiHistMatchReco.push_back(tmphisto);
353  histMatchReco.push_back(new FourVectorMonitorElements(this, iBooker,
354  theHLTCollectionLabels[i].label()+"%s_RECO_matched", // histogram name
355  HltHistTitle[i]+" %s (RECO matched)" // histogram title
356  ));
357 
358  //--------------------
359  // distributions of reco object matching HLT object passing filter i
360  //--------------------
361 
362 // // Et
363 // histName = theHLTCollectionLabels[i].label()+"et_RECO_matched_monpath";
364 // histTitle = HltHistTitle[i]+" Et (RECO matched, monpath)";
365 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
366 // ethistmatchrecomonpath.push_back(tmphisto);
367 //
368 // // Eta
369 // histName = theHLTCollectionLabels[i].label()+"eta_RECO_matched_monpath";
370 // histTitle = HltHistTitle[i]+" #eta (RECO matched, monpath)";
371 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
372 // etahistmatchrecomonpath.push_back(tmphisto);
373 //
374 // // phi
375 // histName = theHLTCollectionLabels[i].label()+"phi_RECO_matched_monpath";
376 // histTitle = HltHistTitle[i]+" #phi (RECO matched, monpath)";
377 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
378 // phiHistMatchRecoMonPath.push_back(tmphisto);
379 
380  histMatchRecoMonPath.push_back(new FourVectorMonitorElements(this, iBooker,
381  theHLTCollectionLabels[i].label()+"%s_RECO_matched_monpath", // histogram name
382  HltHistTitle[i]+" %s (RECO matched, monpath)" // histogram title
383  ));
384  //--------------------
385  // distributions of HLT object that is closest delta-R match to sorted reco particle(s)
386  //--------------------
387 
388  // Et
389 // histName = theHLTCollectionLabels[i].label()+"et_reco";
390 // histTitle = HltHistTitle[i]+" Et (reco)";
391 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax);
392 // histEtOfHltObjMatchToReco.push_back(tmphisto);
393 //
394 // // eta
395 // histName = theHLTCollectionLabels[i].label()+"eta_reco";
396 // histTitle = HltHistTitle[i]+" eta (reco)";
397 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax);
398 // histEtaOfHltObjMatchToReco.push_back(tmphisto);
399 //
400 // // phi
401 // histName = theHLTCollectionLabels[i].label()+"phi_reco";
402 // histTitle = HltHistTitle[i]+" phi (reco)";
403 // tmphisto = iBooker.book1D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax);
404 // histPhiOfHltObjMatchToReco.push_back(tmphisto);
405 
406  histHltObjMatchToReco.push_back(new FourVectorMonitorElements(this, iBooker,
407  theHLTCollectionLabels[i].label()+"%s_reco", // histogram name
408  HltHistTitle[i]+" %s (reco)" // histogram title
409  ));
410 
411  //--------------------
412 
413  if (!plotiso[i]) {
414  tmpiso = NULL;
415  etahistiso.push_back(tmpiso);
416  ethistiso.push_back(tmpiso);
417  phiHistIso.push_back(tmpiso);
418 
419  etahistisomatchreco.push_back(tmpiso);
420  ethistisomatchreco.push_back(tmpiso);
421  phiHistIsoMatchReco.push_back(tmpiso);
422 
423  histEtaIsoOfHltObjMatchToReco.push_back(tmpiso);
424  histEtIsoOfHltObjMatchToReco.push_back(tmpiso);
425  histPhiIsoOfHltObjMatchToReco.push_back(tmpiso);
426 
427  } else {
428 
429  //--------------------
430  // 2D plot: Isolation values vs X for all objects
431  //--------------------
432 
433  // X = eta
434  histName = theHLTCollectionLabels[i].label()+"eta_isolation_all";
435  histTitle = HltHistTitle[i]+" isolation vs #eta (all)";
436  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax,plotBins,plotBounds[i].first,plotBounds[i].second);
437  etahistiso.push_back(tmpiso);
438 
439  // X = et
440  histName = theHLTCollectionLabels[i].label()+"et_isolation_all";
441  histTitle = HltHistTitle[i]+" isolation vs Et (all)";
442  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax,plotBins,plotBounds[i].first,plotBounds[i].second);
443  ethistiso.push_back(tmpiso);
444 
445  // X = phi
446  histName = theHLTCollectionLabels[i].label()+"phi_isolation_all";
447  histTitle = HltHistTitle[i]+" isolation vs #phi (all)";
448  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax,plotBins,plotBounds[i].first,plotBounds[i].second);
449  phiHistIso.push_back(tmpiso);
450 
451  //--------------------
452  // 2D plot: Isolation values vs X for reco matched objects
453  //--------------------
454 
455  // X = eta
456  histName = theHLTCollectionLabels[i].label()+"eta_isolation_RECO_matched";
457  histTitle = HltHistTitle[i]+" isolation vs #eta (reco matched)";
458  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax,plotBins,plotBounds[i].first,plotBounds[i].second);
459  etahistisomatchreco.push_back(tmpiso);
460 
461  // X = et
462  histName = theHLTCollectionLabels[i].label()+"et_isolation_RECO_matched";
463  histTitle = HltHistTitle[i]+" isolation vs Et (reco matched)";
464  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax,plotBins,plotBounds[i].first,plotBounds[i].second);
465  ethistisomatchreco.push_back(tmpiso);
466 
467  // X = eta
468  histName = theHLTCollectionLabels[i].label()+"phi_isolation_RECO_matched";
469  histTitle = HltHistTitle[i]+" isolation vs #phi (reco matched)";
470  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax,plotBins,plotBounds[i].first,plotBounds[i].second);
471  phiHistIsoMatchReco.push_back(tmpiso);
472 
473  //--------------------
474  // 2D plot: Isolation values vs X for HLT object that
475  // is closest delta-R match to sorted reco particle(s)
476  //--------------------
477 
478  // X = eta
479  histName = theHLTCollectionLabels[i].label()+"eta_isolation_reco";
480  histTitle = HltHistTitle[i]+" isolation vs #eta (reco)";
481  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,-plotEtaMax,plotEtaMax,plotBins,plotBounds[i].first,plotBounds[i].second);
482  histEtaIsoOfHltObjMatchToReco.push_back(tmpiso);
483 
484  // X = et
485  histName = theHLTCollectionLabels[i].label()+"et_isolation_reco";
486  histTitle = HltHistTitle[i]+" isolation vs Et (reco)";
487  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,plotPtMin,plotPtMax,plotBins,plotBounds[i].first,plotBounds[i].second);
488  histEtIsoOfHltObjMatchToReco.push_back(tmpiso);
489 
490  // X = phi
491  histName = theHLTCollectionLabels[i].label()+"phi_isolation_reco";
492  histTitle = HltHistTitle[i]+" isolation vs #phi (reco)";
493  tmpiso = iBooker.book2D(histName.c_str(),histTitle.c_str(),plotBins,-plotPhiMax,plotPhiMax,plotBins,plotBounds[i].first,plotBounds[i].second);
494  histPhiIsoOfHltObjMatchToReco.push_back(tmpiso);
495  //--------------------
496 
497  } // END of HLT histograms
498  }
499 }
int pdgGen
Definition: EmDQMReco.h:124
boost::ptr_vector< FourVectorMonitorElements > standardHist
Definition: EmDQMReco.h:167
std::string dirname_
Definition: EmDQMReco.h:229
boost::ptr_vector< FourVectorMonitorElements > histMatchReco
Definition: EmDQMReco.h:172
std::vector< MonitorElement * > histEtIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:197
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)
#define NULL
Definition: scimark2.h:8
std::vector< MonitorElement * > phiHistIso
Definition: EmDQMReco.h:191
unsigned int plotBins
Definition: EmDQMReco.h:134
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:198
boost::ptr_vector< FourVectorMonitorElements > histMatchRecoMonPath
Definition: EmDQMReco.h:177
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:109
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:106
MonitorElement * totalreco
Definition: EmDQMReco.h:204
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:205
std::vector< MonitorElement * > ethistisomatchreco
Definition: EmDQMReco.h:194
std::vector< bool > plotiso
Definition: EmDQMReco.h:112
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:108
double plotPhiMax
Definition: EmDQMReco.h:131
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:217
std::vector< MonitorElement * > etahistiso
Definition: EmDQMReco.h:189
boost::scoped_ptr< FourVectorMonitorElements > histMonpath
Definition: EmDQMReco.h:222
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::vector< MonitorElement * > etahistisomatchreco
Definition: EmDQMReco.h:193
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:114
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:104
double plotPtMin
Definition: EmDQMReco.h:129
double plotPtMax
Definition: EmDQMReco.h:130
boost::ptr_vector< FourVectorMonitorElements > histHltObjMatchToReco
Definition: EmDQMReco.h:183
double plotEtaMax
Definition: EmDQMReco.h:128
std::vector< MonitorElement * > ethistiso
Definition: EmDQMReco.h:190
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:212
std::vector< MonitorElement * > phiHistIsoMatchReco
Definition: EmDQMReco.h:195
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:199
void EmDQMReco::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
override

Definition at line 203 of file EmDQMReco.cc.

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

203  {
204 
205  bool isHltConfigChanged = false; // change of cfg at run boundaries?
206  isHltConfigInitialized_ = hltConfig_.init( iRun, iSetup, "HLT", isHltConfigChanged );
207 
208 }
bool isHltConfigInitialized_
Definition: EmDQMReco.h:117
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:116
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
void EmDQMReco::endJob ( void  )

Definition at line 895 of file EmDQMReco.cc.

References DEFINE_FWK_MODULE.

895  {
896 
897 }

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

Referenced by bookHistograms(), and EmDQMReco().

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

Isolation distributions

Definition at line 189 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 193 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 190 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 194 of file EmDQMReco.h.

Referenced by bookHistograms().

int EmDQMReco::eventnum
private

Definition at line 225 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 198 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 197 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 183 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 172 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 177 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 222 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 232 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 231 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 235 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 233 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 234 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 199 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 212 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 217 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

HLTConfigProvider EmDQMReco::hltConfig_
private

Definition at line 116 of file EmDQMReco.h.

Referenced by analyze(), and dqmBeginRun().

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

Definition at line 155 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::isHltConfigInitialized_
private

Definition at line 117 of file EmDQMReco.h.

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

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

Definition at line 113 of file EmDQMReco.h.

Referenced by EmDQMReco().

unsigned int EmDQMReco::numOfHLTCollectionLabels
private

Definition at line 106 of file EmDQMReco.h.

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

int EmDQMReco::pdgGen
private

Definition at line 124 of file EmDQMReco.h.

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

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

Definition at line 191 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 195 of file EmDQMReco.h.

Referenced by bookHistograms().

unsigned int EmDQMReco::plotBins
private

number of bins to use for ALL plots (?)

Definition at line 134 of file EmDQMReco.h.

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

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

Definition at line 114 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

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

Referenced by EmDQMReco().

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

Definition at line 238 of file EmDQMReco.h.

Referenced by analyze().

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

Definition at line 239 of file EmDQMReco.h.

unsigned int EmDQMReco::recocut_
private

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

Referenced by analyze(), and EmDQMReco().

double EmDQMReco::recoEtaAcc
private

Definition at line 125 of file EmDQMReco.h.

Referenced by EmDQMReco().

double EmDQMReco::recoEtAcc
private

Definition at line 126 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 153 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 154 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

unsigned int EmDQMReco::reqNum
private

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

Referenced by bookHistograms().

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

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

Referenced by bookHistograms(), and EmDQMReco().

std::string EmDQMReco::theHltName
private

Definition at line 115 of file EmDQMReco.h.

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

Definition at line 111 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

MonitorElement* EmDQMReco::totalmatchreco
private

Definition at line 205 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 204 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 142 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 156 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::useHumanReadableHistTitles
private

Definition at line 108 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().