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:
edm::EDAnalyzer edm::EDConsumerBase

Classes

class  FourVectorMonitorElements
 

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &)
 
void beginJob ()
 
void beginRun (const edm::Run &, const edm::EventSetup &)
 
 EmDQMReco (const edm::ParameterSet &pset)
 Constructor. More...
 
void endJob ()
 
 ~EmDQMReco ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- 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
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

DQMStoredbe
 
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::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- 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 42 of file EmDQMReco.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 101 of file EmDQMReco.cc.

References edm::EDConsumerBase::consumes(), dbe, dirname_, eventnum, filters, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), histoFillerClu, histoFillerEle, histoFillerL1Iso, histoFillerL1NonIso, histoFillerPho, hltResultsT, i, isHltConfigInitialized_, isoNames, HistoFillerReco< T >::isoNameTokens_, numOfHLTCollectionLabels, cppFunctionSkipper::operator, pdgGen, plotBins, plotBounds, plotEtaMax, plotiso, plotPhiMax, plotPtMax, plotPtMin, processNameRecoMonPath, recocut_, recoElectronsInput, recoEtaAcc, recoEtAcc, recoObjectsEBT, recoObjectsEET, reqNum, DQMStore::setCurrentFolder(), DQMStore::setVerbose(), AlCaHLTBitMon_QueryRunRegistry::string, theHLTCollectionHumanNames, theHLTCollectionLabels, theHLTOutputTypes, trigger::TriggerCluster, trigger::TriggerElectron, trigger::TriggerL1IsoEG, trigger::TriggerL1NoIsoEG, triggerNameRecoMonPath, triggerObjT, trigger::TriggerPhoton, and useHumanReadableHistTitles.

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

Destructor.

Definition at line 517 of file EmDQMReco.cc.

517  {
518 }

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::EDAnalyzer.

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

526 {
527 
528  // protect from hlt config failure
529  if( !isHltConfigInitialized_ ) return;
530 
531  eventnum++;
532  bool plotMonpath = false;
533  bool plotReco = true;
534 
538 
539  if (pdgGen == 11) {
540 
541  event.getByToken(recoElectronsInput, recoObjects);
542 
543  if (recoObjects->size() < (unsigned int)recocut_) {
544  // edm::LogWarning("EmDQMReco") << "Less than "<< recocut_ <<" Reco particles with pdgId=" << pdgGen << ". Only " << cutRecoCounter->size() << " particles.";
545  return;
546  }
547  } else if (pdgGen == 22) {
548 
549  event.getByToken(recoObjectsEBT, recoObjectsEB);
550  event.getByToken(recoObjectsEET, recoObjectsEE);
551 
552  if (recoObjectsEB->size() + recoObjectsEE->size() < (unsigned int)recocut_) {
553  // edm::LogWarning("EmDQMReco") << "Less than "<< recocut_ <<" Reco particles with pdgId=" << pdgGen << ". Only " << cutRecoCounter.size() << " particles.";
554  return;
555  }
556  }
557 
559  event.getByToken(hltResultsT, HLTR);
560 
565 
566  /* if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedSingleEgammaEt8"){
567  triggerIndex = hltConfig.triggerIndex("HLT_L1SingleEG8");
568  } else if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedSingleEgammaEt5") {
569  triggerIndex = hltConfig.triggerIndex("HLT_L1SingleEG5");
570  } else if (theHLTCollectionHumanNames[0] == "hltL1sRelaxedDoubleEgammaEt5") {
571  triggerIndex = hltConfig.triggerIndex("HLT_L1DoubleEG5");
572  } else {
573  triggerIndex = hltConfig.triggerIndex("");
574  } */
575 
576  unsigned int triggerIndex;
578 
579  //triggerIndex must be less than the size of HLTR or you get a CMSException
580  bool isFired = false;
581  if (triggerIndex < HLTR->size()){
582  isFired = HLTR->accept(triggerIndex);
583  }
584 
585  // fill L1 and HLT info
586  // get objects possed by each filter
588  event.getByToken(triggerObjT, triggerObj);
589 
590  if(!triggerObj.isValid()) {
591  edm::LogWarning("EmDQMReco") << "RAW-type HLT results not found, skipping event";
592  return;
593  }
594 
596  // Fill the bin labeled "Total" //
597  // This will be the number of events looked at. //
601 
602  /* edm::Handle< edm::View<reco::GsfElectron> > recoParticles;
603  event.getByLabel("gsfElectrons", recoParticles);
604 
605  std::vector<reco::GsfElectron> allSortedRecoParticles;
606 
607  for(edm::View<reco::GsfElectron>::const_iterator currentRecoParticle = recoParticles->begin(); currentRecoParticle != recoParticles->end(); currentRecoParticle++){
608  if ( !((*currentRecoParticle).et() > 2.0) ) continue;
609  reco::GsfElectron tmpcand( *(currentRecoParticle) );
610  allSortedRecoParticles.push_back(tmpcand);
611  }
612 
613  std::sort(allSortedRecoParticles.begin(), allSortedRecoParticles.end(),pTRecoComparator_);*/
614 
615  // Were enough high energy gen particles found?
616  // It was an event worth keeping. Continue.
617 
619  // Fill the bin labeled "Total" //
620  // This will be the number of events looked at. //
622  //total->Fill(numOfHLTCollectionLabels+0.5);
623  //totalmatch->Fill(numOfHLTCollectionLabels+0.5);
624 
625 
627  // Fill reconstruction info //
629  // the recocut_ highest Et generator objects of the preselected type are our matches
630 
631  std::vector<reco::Particle> sortedReco;
632  if (plotReco == true) {
633  if (pdgGen == 11) {
634  for(edm::View<reco::Candidate>::const_iterator recopart = recoObjects->begin(); recopart != recoObjects->end();recopart++){
635  reco::Particle tmpcand( recopart->charge(), recopart->p4(), recopart->vertex(),recopart->pdgId(),recopart->status() );
636  sortedReco.push_back(tmpcand);
637  }
638  }
639  else if (pdgGen == 22) {
640  for(std::vector<reco::SuperCluster>::const_iterator recopart2 = recoObjectsEB->begin(); recopart2 != recoObjectsEB->end();recopart2++){
641  float en = recopart2->energy();
642  float er = sqrt(pow(recopart2->x(),2) + pow(recopart2->y(),2) + pow(recopart2->z(),2) );
643  float px = recopart2->energy()*recopart2->x()/er;
644  float py = recopart2->energy()*recopart2->y()/er;
645  float pz = recopart2->energy()*recopart2->z()/er;
646  reco::Candidate::LorentzVector thisLV(px,py,pz,en);
647  reco::Particle tmpcand( 0, thisLV, math::XYZPoint(0.,0.,0.), 22, 1 );
648  sortedReco.push_back(tmpcand);
649  }
650  for(std::vector<reco::SuperCluster>::const_iterator recopart2 = recoObjectsEE->begin(); recopart2 != recoObjectsEE->end();recopart2++){
651  float en = recopart2->energy();
652  float er = sqrt(pow(recopart2->x(),2) + pow(recopart2->y(),2) + pow(recopart2->z(),2) );
653  float px = recopart2->energy()*recopart2->x()/er;
654  float py = recopart2->energy()*recopart2->y()/er;
655  float pz = recopart2->energy()*recopart2->z()/er;
656  reco::Candidate::LorentzVector thisLV(px,py,pz,en);
657  reco::Particle tmpcand( 0, thisLV, math::XYZPoint(0.,0.,0.), 22, 1 );
658  sortedReco.push_back(tmpcand);
659  }
660  }
661 
662  std::sort(sortedReco.begin(),sortedReco.end(),pTComparator_ );
663 
664  // Now the collection of gen particles is sorted by pt.
665  // So, remove all particles from the collection so that we
666  // only have the top "1 thru recocut_" particles in it
667 
668  sortedReco.erase(sortedReco.begin()+recocut_,sortedReco.end());
669 
670  for (unsigned int i = 0 ; i < recocut_ ; i++ ) {
671  //validity has been implicitily checked by the cut on recocut_ above
672  histReco->fill(sortedReco[i].p4());
673 
674 // etreco ->Fill( sortedReco[i].et() );
675 // etareco->Fill( sortedReco[i].eta() );
676 // phiReco->Fill( sortedReco[i].phi() );
677 
678  if (isFired) {
679  histRecoMonpath->fill(sortedReco[i].p4());
680  plotMonpath = true;
681  }
682 
683  } // END of loop over Reconstructed particles
684 
685  if (recocut_ >= reqNum) totalreco->Fill(numOfHLTCollectionLabels+1.5); // this isn't really needed anymore keep for backward comp.
686  if (recocut_ >= reqNum) totalmatchreco->Fill(numOfHLTCollectionLabels+1.5); // this isn't really needed anymore keep for backward comp.
687 
688  }
689 
690 
691 
692 
694  // Loop over filter modules //
696  for(unsigned int n=0; n < numOfHLTCollectionLabels ; n++) {
697  // These numbers are from the Parameter Set, such as:
698  // theHLTOutputTypes = cms.uint32(100)
699  switch(theHLTOutputTypes[n])
700  {
701  case trigger::TriggerL1NoIsoEG: // Non-isolated Level 1
702  histoFillerL1NonIso->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
703  break;
704  case trigger::TriggerL1IsoEG: // Isolated Level 1
705  histoFillerL1Iso->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
706  break;
707  case trigger::TriggerPhoton: // Photon
708  histoFillerPho->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
709  break;
710  case trigger::TriggerElectron: // Electron
711  histoFillerEle->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
712  break;
713  case trigger::TriggerCluster: // TriggerCluster
714  histoFillerClu->fillHistos(triggerObj,event,n, sortedReco, plotReco, plotMonpath);
715  break;
716  default:
717  throw(cms::Exception("Release Validation Error") << "HLT output type not implemented: theHLTOutputTypes[n]" );
718  }
719  } // END of loop over filter modules
720 }
int pdgGen
Definition: EmDQMReco.h:120
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:231
HistoFillerReco< reco::ElectronCollection > * histoFillerEle
Definition: EmDQMReco.h:228
int eventnum
Definition: EmDQMReco.h:221
std::vector< int > theHLTOutputTypes
Definition: EmDQMReco.h:107
void fillHistos(edm::Handle< trigger::TriggerEventWithRefs > &triggerObj, const edm::Event &iEvent, unsigned int n, std::vector< reco::Particle > &sortedReco, bool plotReco, bool plotMonpath)
Definition: EmDQMReco.cc:727
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEET
Definition: EmDQMReco.h:150
bool isHltConfigInitialized_
Definition: EmDQMReco.h:113
void Fill(long long x)
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:112
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
GreaterByPt< reco::Particle > pTComparator_
Definition: EmDQMReco.h:235
unsigned int numOfHLTCollectionLabels
Definition: EmDQMReco.h:102
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1Iso
Definition: EmDQMReco.h:232
T sqrt(T t)
Definition: SSEVec.h:48
double p4[4]
Definition: TauolaWrapper.h:92
MonitorElement * totalreco
Definition: EmDQMReco.h:200
edm::EDGetTokenT< std::vector< reco::SuperCluster > > recoObjectsEBT
Definition: EmDQMReco.h:149
MonitorElement * totalmatchreco
Definition: EmDQMReco.h:201
unsigned int recocut_
Definition: EmDQMReco.h:134
bool isValid() const
Definition: HandleBase.h:76
std::string triggerNameRecoMonPath
Definition: EmDQMReco.h:138
edm::EDGetTokenT< reco::GsfElectronCollection > recoElectronsInput
Definition: EmDQMReco.h:148
edm::EDGetTokenT< trigger::TriggerEventWithRefs > triggerObjT
Definition: EmDQMReco.h:152
HistoFillerReco< l1extra::L1EmParticleCollection > * histoFillerL1NonIso
Definition: EmDQMReco.h:230
unsigned int reqNum
Definition: EmDQMReco.h:119
boost::scoped_ptr< FourVectorMonitorElements > histRecoMonpath
Definition: EmDQMReco.h:213
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:41
edm::EDGetTokenT< edm::TriggerResults > hltResultsT
Definition: EmDQMReco.h:151
boost::scoped_ptr< FourVectorMonitorElements > histReco
Definition: EmDQMReco.h:208
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:229
void EmDQMReco::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 225 of file EmDQMReco.cc.

References DQMStore::book1D(), DQMStore::book2D(), dbe, 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::setCurrentFolder(), standardHist, AlCaHLTBitMon_QueryRunRegistry::string, theHLTCollectionHumanNames, theHLTCollectionLabels, totalmatchreco, totalreco, and useHumanReadableHistTitles.

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

Reimplemented from edm::EDAnalyzer.

Definition at line 210 of file EmDQMReco.cc.

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

210  {
211 
212  bool isHltConfigChanged = false; // change of cfg at run boundaries?
213  isHltConfigInitialized_ = hltConfig_.init( iRun, iSetup, "HLT", isHltConfigChanged );
214 
215 }
bool isHltConfigInitialized_
Definition: EmDQMReco.h:113
HLTConfigProvider hltConfig_
Definition: EmDQMReco.h:112
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
void EmDQMReco::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 923 of file EmDQMReco.cc.

923  {
924 
925 }

Friends And Related Function Documentation

Definition at line 81 of file EmDQMReco.h.

friend class HistoFillerReco< reco::ElectronCollection >
friend

Definition at line 79 of file EmDQMReco.h.

Definition at line 80 of file EmDQMReco.h.

Member Data Documentation

DQMStore* EmDQMReco::dbe
private
std::string EmDQMReco::dirname_
private

Definition at line 226 of file EmDQMReco.h.

Referenced by beginJob(), and EmDQMReco().

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

Isolation distributions

Definition at line 185 of file EmDQMReco.h.

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

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

Definition at line 189 of file EmDQMReco.h.

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

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

Definition at line 186 of file EmDQMReco.h.

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

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

Definition at line 190 of file EmDQMReco.h.

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

int EmDQMReco::eventnum
private

Definition at line 221 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 194 of file EmDQMReco.h.

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

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

Definition at line 193 of file EmDQMReco.h.

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

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

Definition at line 179 of file EmDQMReco.h.

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

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

Definition at line 168 of file EmDQMReco.h.

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

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

Definition at line 173 of file EmDQMReco.h.

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

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

Definition at line 218 of file EmDQMReco.h.

Referenced by beginJob().

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

Definition at line 229 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 228 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 232 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 230 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 231 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 195 of file EmDQMReco.h.

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

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

Definition at line 208 of file EmDQMReco.h.

Referenced by analyze(), and beginJob().

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

Definition at line 213 of file EmDQMReco.h.

Referenced by analyze(), and beginJob().

HLTConfigProvider EmDQMReco::hltConfig_
private

Definition at line 112 of file EmDQMReco.h.

Referenced by analyze(), and beginRun().

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

Definition at line 151 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::isHltConfigInitialized_
private

Definition at line 113 of file EmDQMReco.h.

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

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

Definition at line 109 of file EmDQMReco.h.

Referenced by EmDQMReco().

unsigned int EmDQMReco::numOfHLTCollectionLabels
private

Definition at line 102 of file EmDQMReco.h.

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

int EmDQMReco::pdgGen
private

Definition at line 120 of file EmDQMReco.h.

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

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

Definition at line 187 of file EmDQMReco.h.

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

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

Definition at line 191 of file EmDQMReco.h.

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

unsigned int EmDQMReco::plotBins
private

number of bins to use for ALL plots (?)

Definition at line 130 of file EmDQMReco.h.

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

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

Definition at line 110 of file EmDQMReco.h.

Referenced by beginJob(), and EmDQMReco().

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

Definition at line 108 of file EmDQMReco.h.

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

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

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

Definition at line 143 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 235 of file EmDQMReco.h.

Referenced by analyze().

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

Definition at line 236 of file EmDQMReco.h.

unsigned int EmDQMReco::recocut_
private

Definition at line 134 of file EmDQMReco.h.

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

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

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

Definition at line 148 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

double EmDQMReco::recoEtaAcc
private

Definition at line 121 of file EmDQMReco.h.

Referenced by EmDQMReco().

double EmDQMReco::recoEtAcc
private

Definition at line 122 of file EmDQMReco.h.

Referenced by EmDQMReco().

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

Definition at line 149 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 150 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

unsigned int EmDQMReco::reqNum
private

Definition at line 119 of file EmDQMReco.h.

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

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

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

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

Definition at line 105 of file EmDQMReco.h.

Referenced by beginJob(), and EmDQMReco().

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

the HLT collections to be looked at

Definition at line 100 of file EmDQMReco.h.

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

std::string EmDQMReco::theHltName
private

Definition at line 111 of file EmDQMReco.h.

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

Definition at line 201 of file EmDQMReco.h.

Referenced by analyze(), beginJob(), 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 200 of file EmDQMReco.h.

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

std::string EmDQMReco::triggerNameRecoMonPath
private

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

Definition at line 138 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

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

Definition at line 152 of file EmDQMReco.h.

Referenced by analyze(), and EmDQMReco().

bool EmDQMReco::useHumanReadableHistTitles
private

Definition at line 104 of file EmDQMReco.h.

Referenced by beginJob(), and EmDQMReco().