CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Attributes | Friends
EmDQMReco Class Reference

#include <EmDQMReco.h>

Inheritance diagram for EmDQMReco:
DQMEDAnalyzer edm::stream::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 &)
 
void beginJob ()
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &)
 
 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
 
 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
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

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

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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (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::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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 43 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, 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:123
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
std::vector< std::vector< edm::InputTag > > isoNames
Definition: EmDQMReco.h:112
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:233
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:230
std::string dirname_
Definition: EmDQMReco.h:228
int eventnum
Definition: EmDQMReco.h:224
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:110
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:153
unsigned int plotBins
Definition: EmDQMReco.h:133
std::vector< TPRegexp > filters
Definition: eve_filter.cc:25
bool isHltConfigInitialized_
Definition: EmDQMReco.h:116
double recoEtaAcc
Definition: EmDQMReco.h:124
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
double recoEtAcc
Definition: EmDQMReco.h:125
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:108
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:105
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:234
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:152
unsigned int recocut_
Definition: EmDQMReco.h:137
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:141
std::vector< bool > plotiso
Definition: EmDQMReco.h:111
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:151
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:107
double plotPhiMax
Definition: EmDQMReco.h:130
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:155
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:232
unsigned int reqNum
Definition: EmDQMReco.h:122
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:113
std::vector< edm::EDGetTokenT< edm::AssociationMap< edm::OneToValue< T, float > > > > isoNameTokens_
Definition: EmDQMReco.h:37
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:103
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:154
double plotPtMin
Definition: EmDQMReco.h:128
double plotPtMax
Definition: EmDQMReco.h:129
double plotEtaMax
Definition: EmDQMReco.h:127
std::string processNameRecoMonPath
Definition: EmDQMReco.h:146
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:231
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 
)
virtual

NOTE: hltConfigProvider initialization has been moved to beginRun()

Implements edm::stream::EDAnalyzerBase.

Definition at line 513 of file EmDQMReco.cc.

References reco::Particle::energy(), eventnum, MonitorElement::Fill(), HistoFillerReco< T >::fillHistos(), histoFillerClu, histoFillerEle, histoFillerL1Iso, histoFillerL1NonIso, histoFillerPho, histReco, histRecoMonpath, hltConfig_, hltResultsT, i, isHltConfigInitialized_, edm::HandleBase::isValid(), n, numOfHLTCollectionLabels, p4, pdgGen, funct::pow(), pTComparator_, recocut_, recoElectronsInput, recoObjectsEBT, recoObjectsEET, reqNum, findQualityFiles::size, python.multivaluedict::sort(), 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 }
int pdgGen
Definition: EmDQMReco.h:123
int i
Definition: DBlmapReader.cc:9
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
double energy() const
energy
Definition: Particle.cc:112
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerPho
Definition: EmDQMReco.h:233
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:230
int eventnum
Definition: EmDQMReco.h:224
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:110
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:153
bool isHltConfigInitialized_
Definition: EmDQMReco.h:116
void Fill(long long x)
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:115
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:237
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:105
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:234
T sqrt(T t)
Definition: SSEVec.h:48
double p4[4]
Definition: TauolaWrapper.h:92
MonitorElement * totalreco
Definition: EmDQMReco.h:203
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:152
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:204
unsigned int recocut_
Definition: EmDQMReco.h:137
bool isValid() const
Definition: HandleBase.h:76
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:141
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:151
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:155
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:232
unsigned int reqNum
Definition: EmDQMReco.h:122
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:216
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:41
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:154
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:211
tuple size
Write out results.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
HistoFillerReco< reco::RecoEcalCandidateCollection > * histoFillerClu
Definition: EmDQMReco.h:231
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, histEtaIsoOfHltObjMatchToReco, histEtIsoOfHltObjMatchToReco, histHltObjMatchToReco, histMatchReco, histMatchRecoMonPath, histMonpath, histPhiIsoOfHltObjMatchToReco, histReco, histRecoMonpath, 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:123
int i
Definition: DBlmapReader.cc:9
boost::ptr_vector< FourVectorMonitorElements > standardHist
Definition: EmDQMReco.h:166
std::string dirname_
Definition: EmDQMReco.h:228
boost::ptr_vector< FourVectorMonitorElements > histMatchReco
Definition: EmDQMReco.h:171
std::vector< MonitorElement * > histEtIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:196
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:190
unsigned int plotBins
Definition: EmDQMReco.h:133
std::vector< MonitorElement * > histEtaIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:197
boost::ptr_vector< FourVectorMonitorElements > histMatchRecoMonPath
Definition: EmDQMReco.h:176
std::vector< std::string > theHLTCollectionHumanNames
Definition: EmDQMReco.h:108
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:105
MonitorElement * totalreco
Definition: EmDQMReco.h:203
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:113
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:204
std::vector< MonitorElement * > ethistisomatchreco
Definition: EmDQMReco.h:193
std::vector< bool > plotiso
Definition: EmDQMReco.h:111
bool useHumanReadableHistTitles
Definition: EmDQMReco.h:107
double plotPhiMax
Definition: EmDQMReco.h:130
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:216
std::vector< MonitorElement * > etahistiso
Definition: EmDQMReco.h:188
boost::scoped_ptr< FourVectorMonitorElements > histMonpath
Definition: EmDQMReco.h:221
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:131
std::vector< MonitorElement * > etahistisomatchreco
Definition: EmDQMReco.h:192
std::vector< std::pair< double, double > > plotBounds
Definition: EmDQMReco.h:113
std::vector< edm::InputTag > theHLTCollectionLabels
Definition: EmDQMReco.h:103
double plotPtMin
Definition: EmDQMReco.h:128
double plotPtMax
Definition: EmDQMReco.h:129
boost::ptr_vector< FourVectorMonitorElements > histHltObjMatchToReco
Definition: EmDQMReco.h:182
double plotEtaMax
Definition: EmDQMReco.h:127
std::vector< MonitorElement * > ethistiso
Definition: EmDQMReco.h:189
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:211
std::vector< MonitorElement * > phiHistIsoMatchReco
Definition: EmDQMReco.h:194
std::vector< MonitorElement * > histPhiIsoOfHltObjMatchToReco
Definition: EmDQMReco.h:198
void EmDQMReco::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from DQMEDAnalyzer.

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:116
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:115
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.

895  {
896 
897 }

Friends And Related Function Documentation

Definition at line 83 of file EmDQMReco.h.

friend class HistoFillerReco< reco::ElectronCollection >
friend

Definition at line 81 of file EmDQMReco.h.

Definition at line 82 of file EmDQMReco.h.

Member Data Documentation

std::string EmDQMReco::dirname_
private

Definition at line 228 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

Isolation distributions

Definition at line 188 of file EmDQMReco.h.

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

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

Definition at line 192 of file EmDQMReco.h.

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

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

Definition at line 189 of file EmDQMReco.h.

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

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

Definition at line 193 of file EmDQMReco.h.

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

int EmDQMReco::eventnum
private

Definition at line 224 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 197 of file EmDQMReco.h.

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

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

Definition at line 196 of file EmDQMReco.h.

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

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

Definition at line 182 of file EmDQMReco.h.

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

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

Definition at line 171 of file EmDQMReco.h.

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

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

Definition at line 176 of file EmDQMReco.h.

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

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

Definition at line 221 of file EmDQMReco.h.

Referenced by bookHistograms().

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

Definition at line 231 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 230 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 234 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 232 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 233 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 198 of file EmDQMReco.h.

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

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

Definition at line 211 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 216 of file EmDQMReco.h.

Referenced by analyze(), and bookHistograms().

HLTConfigProvider EmDQMReco::hltConfig_
private

Definition at line 115 of file EmDQMReco.h.

Referenced by analyze(), and dqmBeginRun().

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

Definition at line 154 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::isHltConfigInitialized_
private

Definition at line 116 of file EmDQMReco.h.

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

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

Definition at line 112 of file EmDQMReco.h.

Referenced by EmDQMReco().

unsigned int EmDQMReco::numOfHLTCollectionLabels
private

Definition at line 105 of file EmDQMReco.h.

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

int EmDQMReco::pdgGen
private

Definition at line 123 of file EmDQMReco.h.

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

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

Definition at line 190 of file EmDQMReco.h.

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

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

Definition at line 194 of file EmDQMReco.h.

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

unsigned int EmDQMReco::plotBins
private

number of bins to use for ALL plots (?)

Definition at line 133 of file EmDQMReco.h.

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

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

Definition at line 113 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().

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

Definition at line 111 of file EmDQMReco.h.

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

double EmDQMReco::plotPhiMax
private
double EmDQMReco::plotPtMax
private
double EmDQMReco::plotPtMin
private
std::string EmDQMReco::processNameRecoMonPath
private

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

Definition at line 146 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 237 of file EmDQMReco.h.

Referenced by analyze().

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

Definition at line 238 of file EmDQMReco.h.

unsigned int EmDQMReco::recocut_
private

Definition at line 137 of file EmDQMReco.h.

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

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

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

Definition at line 151 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

double EmDQMReco::recoEtaAcc
private

Definition at line 124 of file EmDQMReco.h.

Referenced by EmDQMReco().

double EmDQMReco::recoEtAcc
private

Definition at line 125 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 152 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 153 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

unsigned int EmDQMReco::reqNum
private

Definition at line 122 of file EmDQMReco.h.

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

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

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

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

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

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

std::string EmDQMReco::theHltName
private

Definition at line 114 of file EmDQMReco.h.

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

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

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

std::string EmDQMReco::triggerNameRecoMonPath
private

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

Definition at line 141 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 155 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::useHumanReadableHistTitles
private

Definition at line 107 of file EmDQMReco.h.

Referenced by bookHistograms(), and EmDQMReco().