CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
EwkElecDQM Class Reference

#include <EwkElecDQM.h>

Inheritance diagram for EwkElecDQM:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 EwkElecDQM (const edm::ParameterSet &)
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
double calcDeltaPhi (double phi1, double phi2)
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void dqmEndRun (const edm::Run &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Private Attributes

edm::EDGetTokenT< reco::BeamSpotbeamSpotTag_
 
MonitorElementdetainbarrel_after_
 
MonitorElementdetainbarrel_before_
 
double detainCutBarrel_
 
double detainCutEndcap_
 
MonitorElementdetainendcap_after_
 
MonitorElementdetainendcap_before_
 
MonitorElementecalisobarrel_after_
 
MonitorElementecalisobarrel_before_
 
double ecalIsoCutBarrel_
 
double ecalIsoCutEndcap_
 
MonitorElementecalisoendcap_after_
 
MonitorElementecalisoendcap_before_
 
double eJetMin_
 
edm::EDGetTokenT< edm::View< reco::GsfElectron > > elecTag_
 
const std::vector< std::string > elecTrig_
 
MonitorElementeta_after_
 
MonitorElementeta_before_
 
double etaCut_
 
MonitorElementhcalisobarrel_after_
 
MonitorElementhcalisobarrel_before_
 
double hcalIsoCutBarrel_
 
double hcalIsoCutEndcap_
 
MonitorElementhcalisoendcap_after_
 
MonitorElementhcalisoendcap_before_
 
HLTPrescaleProvider hltPrescaleProvider_
 
MonitorElementinvmass_after_
 
MonitorElementinvmass_before_
 
MonitorElementinvmassPU_afterZ_
 
MonitorElementinvmassPU_before_
 
bool isValidHltConfig_
 
MonitorElementjet_et_after_
 
MonitorElementjet_et_before_
 
MonitorElementjet_eta_after_
 
MonitorElementjet_eta_before_
 
edm::InputTag jetTag_
 
edm::EDGetTokenT< edm::View< reco::Jet > > jetToken_
 
MonitorElementmet_after_
 
MonitorElementmet_before_
 
bool metIncludesMuons_
 
double metMax_
 
double metMin_
 
edm::InputTag metTag_
 
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
 
MonitorElementmt_after_
 
MonitorElementmt_before_
 
double mtMax_
 
double mtMin_
 
unsigned int nall
 
unsigned int neid
 
MonitorElementnelectrons_after_
 
MonitorElementnelectrons_before_
 
unsigned int nGoodElectrons
 
unsigned int niso
 
int nJetMax_
 
MonitorElementnjets_after_
 
MonitorElementnjets_before_
 
MonitorElementnpvs_afterZ_
 
MonitorElementnpvs_before_
 
unsigned int nrec
 
unsigned int nsel
 
MonitorElementpt_after_
 
MonitorElementpt_before_
 
double ptCut_
 
unsigned int PUBinCount_
 
unsigned int PUMax_
 
MonitorElementsieiebarrel_after_
 
MonitorElementsieiebarrel_before_
 
double sieieCutBarrel_
 
double sieieCutEndcap_
 
MonitorElementsieieendcap_after_
 
MonitorElementsieieendcap_before_
 
MonitorElementtrig_after_
 
MonitorElementtrig_before_
 
edm::EDGetTokenT< edm::TriggerResultstrigTag_
 
MonitorElementtrkisobarrel_after_
 
MonitorElementtrkisobarrel_before_
 
double trkIsoCutBarrel_
 
double trkIsoCutEndcap_
 
MonitorElementtrkisoendcap_after_
 
MonitorElementtrkisoendcap_before_
 
edm::EDGetTokenT< edm::View< reco::Vertex > > vertexTag_
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

DQM offline for EWK Electrons

Definition at line 27 of file EwkElecDQM.h.

Constructor & Destructor Documentation

◆ EwkElecDQM()

EwkElecDQM::EwkElecDQM ( const edm::ParameterSet cfg)

Definition at line 36 of file EwkElecDQM.cc.

37  : // Input collections
38  metTag_(cfg.getUntrackedParameter<edm::InputTag>("METTag", edm::InputTag("met"))),
39  jetTag_(cfg.getUntrackedParameter<edm::InputTag>("JetTag", edm::InputTag("sisCone5CaloJets"))),
40  // trigTag_(consumes<edm::TriggerResults>(
41  // cfg.getUntrackedParameter<edm::InputTag>(
42  // "TrigTag", edm::InputTag("TriggerResults::HLT")))),
44  cfg.getUntrackedParameter<edm::InputTag>("ElecTag", edm::InputTag("gsfElectrons")))),
45  metToken_(
46  consumes<edm::View<reco::MET> >(cfg.getUntrackedParameter<edm::InputTag>("METTag", edm::InputTag("met")))),
48  cfg.getUntrackedParameter<edm::InputTag>("JetTag", edm::InputTag("sisCone5CaloJets")))),
50  cfg.getUntrackedParameter<edm::InputTag>("VertexTag", edm::InputTag("offlinePrimaryVertices")))),
52  consumes<reco::BeamSpot>(cfg.getUntrackedParameter<edm::InputTag>("BeamSpotTag", edm::InputTag("BeamSpot")))),
53 
54  // Main cuts
55  // muonTrig_(cfg.getUntrackedParameter<std::string> ("MuonTrig",
56  // "HLT_Mu9")),
57  // elecTrig_(cfg.getUntrackedParameter<std::vector< std::string >
58  // >("ElecTrig", "HLT_Ele10_SW_L1R")),
59  elecTrig_(cfg.getUntrackedParameter<std::vector<std::string> >("ElecTrig")),
60  // ptCut_(cfg.getUntrackedParameter<double>("PtCut", 25.)),
61  ptCut_(cfg.getUntrackedParameter<double>("PtCut", 10.)),
62  // etaCut_(cfg.getUntrackedParameter<double>("EtaCut", 2.1)),
63  etaCut_(cfg.getUntrackedParameter<double>("EtaCut", 2.4)),
64  sieieCutBarrel_(cfg.getUntrackedParameter<double>("SieieBarrel", 0.01)),
65  sieieCutEndcap_(cfg.getUntrackedParameter<double>("SieieEndcap", 0.028)),
66  detainCutBarrel_(cfg.getUntrackedParameter<double>("DetainBarrel", 0.0071)),
67  detainCutEndcap_(cfg.getUntrackedParameter<double>("DetainEndcap", 0.0066)),
68  // isRelativeIso_(cfg.getUntrackedParameter<bool>("IsRelativeIso",
69  // true)),
70  // isCombinedIso_(cfg.getUntrackedParameter<bool>("IsCombinedIso",
71  // false)),
72  // isoCut03_(cfg.getUntrackedParameter<double>("IsoCut03", 0.1)),
73  ecalIsoCutBarrel_(cfg.getUntrackedParameter<double>("EcalIsoCutBarrel", 5.7)),
74  ecalIsoCutEndcap_(cfg.getUntrackedParameter<double>("EcalIsoCutEndcap", 5.0)),
75  hcalIsoCutBarrel_(cfg.getUntrackedParameter<double>("HcalIsoCutBarrel", 8.1)),
76  hcalIsoCutEndcap_(cfg.getUntrackedParameter<double>("HcalIsoCutEndcap", 3.4)),
77  trkIsoCutBarrel_(cfg.getUntrackedParameter<double>("TrkIsoCutBarrel", 7.2)),
78  trkIsoCutEndcap_(cfg.getUntrackedParameter<double>("TrkIsoCutEndcap", 5.1)),
79  mtMin_(cfg.getUntrackedParameter<double>("MtMin", -999999)),
80  mtMax_(cfg.getUntrackedParameter<double>("MtMax", 999999.)),
81  metMin_(cfg.getUntrackedParameter<double>("MetMin", -999999.)),
82  metMax_(cfg.getUntrackedParameter<double>("MetMax", 999999.)),
83  // acopCut_(cfg.getUntrackedParameter<double>("AcopCut", 2.)),
84 
85  // Muon quality cuts
86  // dxyCut_(cfg.getUntrackedParameter<double>("DxyCut", 0.2)),
87  // normalizedChi2Cut_(cfg.getUntrackedParameter<double>("NormalizedChi2Cut",
88  // 10.)),
89  // trackerHitsCut_(cfg.getUntrackedParameter<int>("TrackerHitsCut",
90  // 11)),
91  // isAlsoTrackerMuon_(cfg.getUntrackedParameter<bool>("IsAlsoTrackerMuon",
92  // true)),
93 
94  // Z rejection
95  // ptThrForZ1_(cfg.getUntrackedParameter<double>("PtThrForZ1", 20.)),
96  // ptThrForZ2_(cfg.getUntrackedParameter<double>("PtThrForZ2", 10.)),
97 
98  // Top rejection
99  eJetMin_(cfg.getUntrackedParameter<double>("EJetMin", 999999.)),
100  nJetMax_(cfg.getUntrackedParameter<int>("NJetMax", 999999)),
101  PUMax_(cfg.getUntrackedParameter<unsigned int>("PUMax", 60)),
102  PUBinCount_(cfg.getUntrackedParameter<unsigned int>("PUBinCount", 12)),
104 // caloJetCollection_(cfg.getUntrackedParameter<edm:InputTag>("CaloJetCollection","sisCone5CaloJets"))
105 {
106  isValidHltConfig_ = false;
107 }

References isValidHltConfig_.

Member Function Documentation

◆ analyze()

void EwkElecDQM::analyze ( const edm::Event ev,
const edm::EventSetup iSet 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 347 of file EwkElecDQM.cc.

347  {
348  // Reset global event selection flags
349  bool rec_sel = false;
350  bool eid_sel = false;
351  bool iso_sel = false;
352  bool all_sel = false;
353 
354  // Electron collection
356  if (!ev.getByToken(elecTag_, electronCollection)) {
357  // LogWarning("") << ">>> Electron collection does not exist !!!";
358  return;
359  }
360  unsigned int electronCollectionSize = electronCollection->size();
361 
362  // Beam spot
363  Handle<reco::BeamSpot> beamSpotHandle;
364  if (!ev.getByToken(beamSpotTag_, beamSpotHandle)) {
365  // LogWarning("") << ">>> No beam spot found !!!";
366  return;
367  }
368 
369  // MET
370  double met_px = 0.;
371  double met_py = 0.;
373  if (!ev.getByToken(metToken_, metCollection)) {
374  // LogWarning("") << ">>> MET collection does not exist !!!";
375  return;
376  }
377 
378  const MET& met = metCollection->at(0);
379  met_px = met.px();
380  met_py = met.py();
381  // if (!metIncludesMuons_) {
382  // for (unsigned int i=0; i<muonCollectionSize; i++) {
383  // const Muon& mu = muonCollection->at(i);
384  // if (!mu.isGlobalMuon()) continue;
385  // met_px -= mu.px();
386  // met_py -= mu.py();
387  // }
388  // }
389  double met_et = sqrt(met_px * met_px + met_py * met_py);
390  LogTrace("") << ">>> MET, MET_px, MET_py: " << met_et << ", " << met_px << ", " << met_py << " [GeV]";
391  met_before_->Fill(met_et);
392 
393  // Vertices in the event
394  int npvCount = 0;
396  if (!ev.getByToken(vertexTag_, vertexCollection)) {
397  LogError("") << ">>> Vertex collection does not exist !!!";
398  return;
399  }
400 
401  for (unsigned int i = 0; i < vertexCollection->size(); i++) {
402  const Vertex& vertex = vertexCollection->at(i);
403  if (vertex.isValid())
404  npvCount++;
405  }
406  npvs_before_->Fill(npvCount);
407 
408  // Trigger
409  // Handle<TriggerResults> triggerResults;
410  // if (!ev.getByToken(trigTag_, triggerResults)) {
411  // LogWarning("") << ">>> TRIGGER collection does not exist !!!";
412  return;
413  // }
414  // const edm::TriggerNames& trigNames = ev.triggerNames(*triggerResults);
415  // bool trigger_fired = false;
416 
417  // HLTConfigProvider const& hltConfigProvider = hltPrescaleProvider_.hltConfigProvider();
418 
419  /* very old code
420  for (unsigned int i=0; i<triggerResults->size(); i++) {
421  if (triggerResults->accept(i)) {
422  LogTrace("") << "Accept by: " << i << ", Trigger: " <<
423  trigNames.triggerName(i);
424  }
425  }
426  */
427 
428  // the following gives error on CRAFT08 data where itrig1=19 (vector index out
429  // of range)
430  /*
431  int itrig1 = trigNames.triggerIndex(muonTrig_);
432  if (triggerResults->accept(itrig1)) trigger_fired = true;
433  */
434  // suggested replacement: lm250909
435  /* Fix buggy trigger logic
436  for (unsigned int i=0; i<triggerResults->size(); i++)
437  {
438  std::string trigName = trigNames.triggerName(i);
439  bool found=false;
440 
441 // for (unsigned int j = 0; j < elecTrig_.size(); j++)
442 // {
443 // if ( trigName == elecTrig_.at(j) && triggerResults->accept(i))
444 // {
445 // trigger_fired = true;
446 // }
447 // }
448 
449 
450  for(unsigned int index=0; index<elecTrig_.size() && found==false; index++)
451 {
452  size_t trigPath = trigName.find(elecTrig_.at(index)); // 0 if found, pos
453 if not
454  if (trigPath==0) found=true;
455  }
456  if(!found) continue;
457 
458  bool prescaled=false;
459  for (unsigned int ps= 0; ps< hltConfigProvider.prescaleSize();
460 ps++){
461  const unsigned int prescaleValue =
462 hltConfigProvider.prescaleValue(ps, trigName) ;
463  if (prescaleValue != 1) prescaled =true;
464  }
465 
466  if(triggerResults->accept(i) && !prescaled) trigger_fired=true;
467 
468  }
469  */
470 
471  // get the prescale set for this event
472  const int prescaleSet = hltPrescaleProvider_.prescaleSet(ev, iSet);
473  if (prescaleSet == -1) {
474  LogTrace("") << "Failed to determine prescaleSet\n";
475  // std::cout << "Failed to determine prescaleSet. Check cmsRun GlobalTag\n";
476  return;
477  }
478 
479  // for (unsigned int i = 0;
480  // (i < triggerResults->size()) && (trigger_fired == false); i++) {
481  // skip trigger, if it did not fire
482  // if (!triggerResults->accept(i)) continue;
483 
484  // skip trigger, if it is not on our list
485  // bool found = false;
486  // const std::string trigName = trigNames.triggerName(i);
487  // for (unsigned int index = 0; index < elecTrig_.size() && found == false;
488  // index++) {
489  // if (trigName.find(elecTrig_.at(index)) == 0) found = true;
490  // }
491  // if (!found) continue;
492 
493  // skip trigger, if it is prescaled
494  // if (hltConfigProvider.prescaleValue(prescaleSet, trigName) != 1) continue;
495 
496  // std::cout << "found unprescaled trigger that fired: " << trigName <<
497  // "\n";
498  // trigger_fired = true;
499  // }
500 
501  /* LogTrace("") << ">>> Trigger bit: " << trigger_fired << " for one of ( ";
502  for (unsigned int k = 0; k < elecTrig_.size(); k++) {
503  LogTrace("") << elecTrig_.at(k) << " ";
504  }
505  LogTrace("") << ")";
506  trig_before_->Fill(trigger_fired);
507 */
508  // Jet collection
510  if (!ev.getByToken(jetToken_, jetCollection)) {
511  // LogError("") << ">>> JET collection does not exist !!!";
512  return;
513  }
514  float electron_et = -8.0;
515  float electron_eta = -8.0;
516  float electron_phi = -8.0;
517  float electron2_et = -9.0;
518  float electron2_eta = -9.0;
519  float electron2_phi = -9.0;
520  // need to get some electron info so jets can be cleaned of them
521  for (unsigned int i = 0; i < electronCollectionSize; i++) {
522  const GsfElectron& elec = electronCollection->at(i);
523 
524  if (i < 1) {
525  electron_et = elec.pt();
526  electron_eta = elec.eta();
527  electron_phi = elec.phi();
528  }
529  if (i == 2) {
530  electron2_et = elec.pt();
531  electron2_eta = elec.eta();
532  electron2_phi = elec.phi();
533  }
534  }
535 
536  float jet_et = -8.0;
537  float jet_eta = -8.0;
538  int jet_count = 0;
539  float jet2_et = -9.0;
540  unsigned int jetCollectionSize = jetCollection->size();
541  int njets = 0;
542  for (unsigned int i = 0; i < jetCollectionSize; i++) {
543  const Jet& jet = jetCollection->at(i);
544 
545  float jet_current_et = jet.et();
546  // cout << "jet_current_et " << jet_current_et << endl;
547  // if it overlaps with electron, it is not a jet
548  if (electron_et > 0.0 && fabs(jet.eta() - electron_eta) < 0.2 && calcDeltaPhi(jet.phi(), electron_phi) < 0.2)
549  continue;
550  if (electron2_et > 0.0 && fabs(jet.eta() - electron2_eta) < 0.2 && calcDeltaPhi(jet.phi(), electron2_phi) < 0.2)
551  continue;
552 
553  // if it has too low Et, throw away
554  // if (jet_current_et < eJetMin_) continue; //Keep if only want to plot
555  // above jet cut
556 
557  if (jet.et() > eJetMin_) {
558  njets++;
559  jet_count++;
560  }
561  if (jet_current_et > jet_et) {
562  jet2_et = jet_et; // 2nd highest jet get's et from current highest
563  jet_et = jet.et(); // current highest jet gets et from the new highest
564  jet_eta = jet.eta();
565  } else if (jet_current_et > jet2_et) {
566  jet2_et = jet.et();
567  }
568  }
569 
570  // Fill After all electron cuts (or both before and after)
571  if (jet_et > 10) // don't want low energy "jets"
572  {
573  jet_et_before_->Fill(jet_et);
574  // jet2_et_before_ ->Fill(jet2_et);
575  jet_eta_before_->Fill(jet_eta);
576  }
577 
578  LogTrace("") << ">>> Total number of jets: " << jetCollectionSize;
579  LogTrace("") << ">>> Number of jets above " << eJetMin_ << " [GeV]: " << njets;
581 
582  // Start counting
583  nall++;
584 
585  // Histograms per event should be done only once, so keep track of them
586  //bool hlt_hist_done = false;
587  // bool minv_hist_done = false;
588  bool met_hist_done = false;
589  // bool nz1_hist_done = false;
590  // bool nz2_hist_done = false;
591  bool njets_hist_done = false;
592 
593  // Central selection criteria
594  // const int NFLAGS = 13; // number of individual selection criteria
595  const int NFLAGS = 10; // number of individual selection criteria
596  // 0: pt cut | rec
597  // 1: eta cut | rec
598  // 2: sieie | eid
599  // 3: detain | eid
600  // 4: ecal iso | iso
601  // 5: hcal iso | iso
602  // 6: trk iso | iso
603  // 7: trigger fired | hlt/all
604  bool electron_sel[NFLAGS];
605 
606  // for invariant mass calculation
607  // keep track of highest-pt electrons for initial (RECO) electrons
608  // and "good" electrons (passing all cuts)
609  // first array dimension is for first or second good electron
610  // second array dimension is for relevant quantities of good electron
611  // [0]: 1 for electron found or 0 for not found (if 0, no other quantities
612  // filled)
613  // [1]: mSqr
614  // [2]: E
615  // [3]: px
616  // [4]: py
617  // [5]: pz
618  // inv mass = sqrt(m_1^2 + m_2^2 + 2*(E_1*E_2 - (px1*px2 + py1*py2 + pz1+pz2)
619  // ) )
620  double electron[2][6];
621  double goodElectron[2][6];
622  nGoodElectrons = 0;
623  for (unsigned int i = 0; i < 2; i++) {
624  for (unsigned int j = 0; j < 6; j++) {
625  electron[i][j] = 0.;
626  goodElectron[i][j] = 0.;
627  }
628  }
629 
630  for (unsigned int i = 0; i < electronCollectionSize; i++) {
631  for (int j = 0; j < NFLAGS; ++j) {
632  electron_sel[j] = false;
633  }
634 
635  const GsfElectron& elec = electronCollection->at(i);
636  // if (!mu.isGlobalMuon()) continue;
637  // if (mu.globalTrack().isNull()) continue;
638  // if (mu.innerTrack().isNull()) continue;
639 
640  LogTrace("") << "> elec: processing electron number " << i << "...";
641  // reco::TrackRef gm = mu.globalTrack();
642  // reco::TrackRef tk = mu.innerTrack();
643  // should have stuff for electron track?
644 
645  if (i < 2) {
646  electron[i][0] = 1.;
647  electron[i][1] = elec.massSqr();
648  electron[i][2] = elec.energy();
649  electron[i][3] = elec.px();
650  electron[i][4] = elec.py();
651  electron[i][5] = elec.pz();
652  }
653 
654  // Pt,eta cuts
655  double pt = elec.pt();
656  double px = elec.px();
657  double py = elec.py();
658  double eta = elec.eta();
659  LogTrace("") << "\t... pt, eta: " << pt << " [GeV], " << eta;
660  ;
661  if (pt > ptCut_)
662  electron_sel[0] = true;
663  if (fabs(eta) < etaCut_)
664  electron_sel[1] = true;
665 
666  bool isBarrel = false;
667  bool isEndcap = false;
668  if (eta < 1.4442 && eta > -1.4442) {
669  isBarrel = true;
670  } else if ((eta > 1.56 && eta < 2.4) || (eta < -1.56 && eta > -2.4)) {
671  isEndcap = true;
672  }
673 
674  // // d0, chi2, nhits quality cuts
675  // double dxy = tk->dxy(beamSpotHandle->position());
676  // double normalizedChi2 = gm->normalizedChi2();
677  // double trackerHits = tk->numberOfValidHits();
678  // LogTrace("") << "\t... dxy, normalizedChi2, trackerHits,
679  // isTrackerMuon?: " << dxy << " [cm], " << normalizedChi2 << ", " <<
680  // trackerHits << ", " << mu.isTrackerMuon();
681  // if (fabs(dxy)<dxyCut_) muon_sel[2] = true;
682  // if (normalizedChi2<normalizedChi2Cut_) muon_sel[3] = true;
683  // if (trackerHits>=trackerHitsCut_) muon_sel[4] = true;
684  // if (mu.isTrackerMuon()) muon_sel[5] = true;
685 
686  pt_before_->Fill(pt);
687  eta_before_->Fill(eta);
688  // dxy_before_->Fill(dxy);
689  // chi2_before_->Fill(normalizedChi2);
690  // nhits_before_->Fill(trackerHits);
691  // tkmu_before_->Fill(mu.isTrackerMuon());
692 
693  // Electron ID cuts
694  double sieie = (double)elec.sigmaIetaIeta();
695  double detain = (double)elec.deltaEtaSuperClusterTrackAtVtx(); // think this is detain
696  if (sieie < sieieCutBarrel_ && isBarrel)
697  electron_sel[2] = true;
698  if (sieie < sieieCutEndcap_ && isEndcap)
699  electron_sel[2] = true;
700  if (detain < detainCutBarrel_ && isBarrel)
701  electron_sel[3] = true;
702  if (detain < detainCutEndcap_ && isEndcap)
703  electron_sel[3] = true;
704  if (isBarrel) {
705  LogTrace("") << "\t... sieie value " << sieie << " (barrel), pass? " << electron_sel[2];
706  LogTrace("") << "\t... detain value " << detain << " (barrel), pass? " << electron_sel[3];
707  } else if (isEndcap) {
708  LogTrace("") << "\t... sieie value " << sieie << " (endcap), pass? " << electron_sel[2];
709  LogTrace("") << "\t... detain value " << detain << " (endcap), pass? " << electron_sel[2];
710  }
711 
712  if (isBarrel) {
714  detainbarrel_before_->Fill(detain);
715  } else if (isEndcap) {
717  detainendcap_before_->Fill(detain);
718  }
719 
720  // Isolation cuts
721  // double isovar = mu.isolationR03().sumPt;
722  double ecalisovar = elec.dr03EcalRecHitSumEt(); // picked one set!
723  double hcalisovar = elec.dr03HcalTowerSumEt(); // try others if
724  double trkisovar = elec.dr04TkSumPt(); // doesn't work
725  // if (isCombinedIso_) {
726  // isovar += mu.isolationR03().emEt;
727  // isovar += mu.isolationR03().hadEt;
728  //}
729  // if (isRelativeIso_) isovar /= pt;
730  if (ecalisovar < ecalIsoCutBarrel_ && isBarrel)
731  electron_sel[4] = true;
732  if (ecalisovar < ecalIsoCutEndcap_ && isEndcap)
733  electron_sel[4] = true;
734  if (hcalisovar < hcalIsoCutBarrel_ && isBarrel)
735  electron_sel[5] = true;
736  if (hcalisovar < hcalIsoCutEndcap_ && isEndcap)
737  electron_sel[5] = true;
738  if (trkisovar < trkIsoCutBarrel_ && isBarrel)
739  electron_sel[6] = true;
740  if (trkisovar < trkIsoCutEndcap_ && isEndcap)
741  electron_sel[6] = true;
742  if (isBarrel) {
743  LogTrace("") << "\t... ecal isolation value " << ecalisovar << " (barrel), pass? " << electron_sel[4];
744  LogTrace("") << "\t... hcal isolation value " << hcalisovar << " (barrel), pass? " << electron_sel[5];
745  LogTrace("") << "\t... trk isolation value " << trkisovar << " (barrel), pass? " << electron_sel[6];
746  } else if (isEndcap) {
747  LogTrace("") << "\t... ecal isolation value " << ecalisovar << " (endcap), pass? " << electron_sel[4];
748  LogTrace("") << "\t... hcal isolation value " << hcalisovar << " (endcap), pass? " << electron_sel[5];
749  LogTrace("") << "\t... trk isolation value " << trkisovar << " (endcap), pass? " << electron_sel[6];
750  }
751 
752  // iso_before_->Fill(isovar);
753  if (isBarrel) {
754  ecalisobarrel_before_->Fill(ecalisovar);
755  hcalisobarrel_before_->Fill(hcalisovar);
756  trkisobarrel_before_->Fill(trkisovar);
757  } else if (isEndcap) {
758  ecalisoendcap_before_->Fill(ecalisovar);
759  hcalisoendcap_before_->Fill(hcalisovar);
760  trkisoendcap_before_->Fill(trkisovar);
761  }
762 
763  // HLT
764  // if (trigger_fired) electron_sel[7] = true;
765 
766  // // MET/MT cuts
767  double w_et = met_et + pt;
768  double w_px = met_px + px;
769  double w_py = met_py + py;
770 
771  double massT = w_et * w_et - w_px * w_px - w_py * w_py;
772  massT = (massT > 0) ? sqrt(massT) : 0;
773 
774  LogTrace("") << "\t... W mass, W_et, W_px, W_py: " << massT << ", " << w_et << ", " << w_px << ", " << w_py
775  << " [GeV]";
776  if (massT > mtMin_ && massT < mtMax_)
777  electron_sel[7] = true;
778  mt_before_->Fill(massT);
779  if (met_et > metMin_ && met_et < metMax_)
780  electron_sel[8] = true;
781 
782  // // Acoplanarity cuts
783  // Geom::Phi<double> deltaphi(mu.phi()-atan2(met_py,met_px));
784  // double acop = deltaphi.value();
785  // if (acop<0) acop = - acop;
786  // acop = M_PI - acop;
787  // LogTrace("") << "\t... acoplanarity: " << acop;
788  // if (acop<acopCut_) muon_sel[10] = true;
789  // acop_before_->Fill(acop);
790 
791  // // Remaining flags (from global event information)
792  // if (nmuonsForZ1<1 || nmuonsForZ2<2) muon_sel[11] = true;
793  if (njets <= nJetMax_)
794  electron_sel[9] = true;
795 
796  // Collect necessary flags "per electron"
797  int flags_passed = 0;
798  bool rec_sel_this = true;
799  bool eid_sel_this = true;
800  bool iso_sel_this = true;
801  bool all_sel_this = true;
802  for (int j = 0; j < NFLAGS; ++j) {
803  if (electron_sel[j])
804  flags_passed += 1;
805  if (j < 2 && !electron_sel[j])
806  rec_sel_this = false;
807  if (j < 4 && !electron_sel[j])
808  eid_sel_this = false;
809  if (j < 7 && !electron_sel[j])
810  iso_sel_this = false;
811  if (!electron_sel[j])
812  all_sel_this = false;
813  }
814 
815  if (all_sel_this) {
816  if (nGoodElectrons < 2) {
817  goodElectron[nGoodElectrons][0] = 1.;
818  goodElectron[nGoodElectrons][1] = elec.massSqr();
819  goodElectron[nGoodElectrons][2] = elec.energy();
820  goodElectron[nGoodElectrons][3] = elec.px();
821  goodElectron[nGoodElectrons][4] = elec.py();
822  goodElectron[nGoodElectrons][5] = elec.pz();
823  }
824  nGoodElectrons++;
825  }
826 
827  // // "rec" => pt,eta and quality cuts are satisfied
828  // if (rec_sel_this) rec_sel = true;
829  // // "iso" => "rec" AND "muon is isolated"
830  // if (iso_sel_this) iso_sel = true;
831  // // "hlt" => "iso" AND "event is triggered"
832  // if (hlt_sel_this) hlt_sel = true;
833  // // "all" => "met" AND "Z/top rejection cuts"
834  // if (all_sel_this) all_sel = true;
835 
836  // "rec" => pt,eta cuts are satisfied
837  if (rec_sel_this)
838  rec_sel = true;
839  // "eid" => "rec" AND "electron passes ID"
840  if (eid_sel_this)
841  iso_sel = true;
842  // "iso" => "eid" AND "electron is isolated"
843  if (iso_sel_this)
844  iso_sel = true;
845  // "met" => "iso" AND "MET/MT"
846  // "all" => "met" AND "event is triggered"
847  if (all_sel_this)
848  all_sel = true;
849 
850  // Do N-1 histograms now (and only once for global event quantities)
851  if (flags_passed >= (NFLAGS - 1)) {
852  if (!electron_sel[0] || flags_passed == NFLAGS) {
853  pt_after_->Fill(pt);
854  }
855  if (!electron_sel[1] || flags_passed == NFLAGS) {
856  eta_after_->Fill(eta);
857  }
858  if (!electron_sel[2] || flags_passed == NFLAGS) {
859  if (isBarrel) {
861  } else if (isEndcap) {
863  }
864  }
865  if (!electron_sel[3] || flags_passed == NFLAGS) {
866  if (isBarrel) {
867  detainbarrel_after_->Fill(detain);
868  } else if (isEndcap) {
869  detainendcap_after_->Fill(detain);
870  }
871  }
872  if (!electron_sel[4] || flags_passed == NFLAGS) {
873  if (isBarrel) {
874  ecalisobarrel_after_->Fill(ecalisovar);
875  } else if (isEndcap) {
876  ecalisoendcap_after_->Fill(ecalisovar);
877  }
878  }
879  if (!electron_sel[5] || flags_passed == NFLAGS) {
880  if (isBarrel) {
881  hcalisobarrel_after_->Fill(hcalisovar);
882  } else if (isEndcap) {
883  hcalisoendcap_after_->Fill(hcalisovar);
884  }
885  }
886  if (!electron_sel[6] || flags_passed == NFLAGS) {
887  if (isBarrel) {
888  trkisobarrel_after_->Fill(trkisovar);
889  } else if (isEndcap) {
890  trkisoendcap_after_->Fill(trkisovar);
891  }
892  }
893  // if (!electron_sel[3] || flags_passed==NFLAGS)
894  // {
895  // detain_after_->Fill(detain);
896  // }
897  // if (!electron_sel[4] || flags_passed==NFLAGS)
898  // {
899  // ecaliso_after_->Fill(trackerHits);
900  // }
901  // if (!electron_sel[5] || flags_passed==NFLAGS)
902  // {
903  // tkelectr_after_->Fill(electr.isTrackerElectron());
904  // }
905  // if (!electron_sel[6] || flags_passed==NFLAGS)
906  // {
907  // iso_after_->Fill(isovar);
908  // }
909  /* if (!electron_sel[7] || flags_passed == NFLAGS) {
910  if (!hlt_hist_done) {
911  trig_after_->Fill(trigger_fired);
912  }
913  }*/
914  //hlt_hist_done = true;
915  if (!electron_sel[7] || flags_passed == NFLAGS) {
916  mt_after_->Fill(massT);
917  }
918  if (!electron_sel[8] || flags_passed == NFLAGS) {
919  if (!met_hist_done) {
920  met_after_->Fill(met_et);
921  }
922  }
923  met_hist_done = true;
924  // if (!muon_sel[10] || flags_passed==NFLAGS)
925  // acop_after_->Fill(acop);
926  // if (!muon_sel[11] || flags_passed==NFLAGS)
927  // if (!nz1_hist_done)
928  // nz1_after_->Fill(nmuonsForZ1);
929  // nz1_hist_done = true;
930  // if (!muon_sel[11] || flags_passed==NFLAGS)
931  // if (!nz2_hist_done)
932  // nz2_after_->Fill(nmuonsForZ2);
933  // nz2_hist_done = true;
934  if (!electron_sel[9] || flags_passed == NFLAGS) {
935  if (!njets_hist_done) {
937  if (jet_et > 10) // don't want low energy "jets"
938  {
939  jet_et_after_->Fill(jet_et);
940  jet_eta_after_->Fill(jet_eta);
941  }
942  }
943  }
944  njets_hist_done = true;
945 
946  } // end N-1 histos block
947 
948  } // end loop through electrons
949 
950  // inv mass = sqrt(m_1^2 + m_2^2 + 2*(E_1*E_2 - (px1*px2 + py1*py2 + pz1+pz2)
951  // ) )
952  double invMass = 0;
953 
954  nelectrons_before_->Fill(electronCollectionSize);
955  if (electronCollectionSize > 1) {
956  invMass =
957  sqrt(electron[0][1] + electron[1][1] +
958  2 * (electron[0][2] * electron[1][2] - (electron[0][3] * electron[1][3] + electron[0][4] * electron[1][4] +
959  electron[0][5] * electron[1][5])));
960  invmass_before_->Fill(invMass);
961  invmassPU_before_->Fill(invMass, npvCount);
962  }
963 
965  if (nGoodElectrons > 1) {
966  invMass = sqrt(goodElectron[0][1] + goodElectron[1][1] +
967  2 * (goodElectron[0][2] * goodElectron[1][2] -
968  (goodElectron[0][3] * goodElectron[1][3] + goodElectron[0][4] * goodElectron[1][4] +
969  goodElectron[0][5] * goodElectron[1][5])));
970  invmass_after_->Fill(invMass);
971  invmassPU_afterZ_->Fill(invMass, npvCount);
972  npvs_afterZ_->Fill(npvCount);
973  }
974 
975  // Collect final flags
976  if (rec_sel)
977  nrec++;
978  if (eid_sel)
979  neid++;
980  if (iso_sel)
981  niso++;
982  // if (hlt_sel) nhlt++;
983  // if (met_sel) nmet++;
984 
985  if (all_sel) {
986  nsel++;
987  LogTrace("") << ">>>> Event ACCEPTED";
988  } else {
989  LogTrace("") << ">>>> Event REJECTED";
990  }
991 
992  return;
993 }

References beamSpotTag_, calcDeltaPhi(), reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), detainbarrel_after_, detainbarrel_before_, detainCutBarrel_, detainCutEndcap_, detainendcap_after_, detainendcap_before_, reco::GsfElectron::dr03EcalRecHitSumEt(), reco::GsfElectron::dr03HcalTowerSumEt(), reco::GsfElectron::dr04TkSumPt(), ecalisobarrel_after_, ecalisobarrel_before_, ecalIsoCutBarrel_, ecalIsoCutEndcap_, ecalisoendcap_after_, ecalisoendcap_before_, eJetMin_, elecTag_, HPSPFTauProducerPuppi_cfi::electron, pdwgLeptonRecoSkim_cfi::electronCollection, reco::LeafCandidate::energy(), PVValHelper::eta, reco::LeafCandidate::eta(), eta_after_, eta_before_, etaCut_, ev, dqm::impl::MonitorElement::Fill(), hcalisobarrel_after_, hcalisobarrel_before_, hcalIsoCutBarrel_, hcalIsoCutEndcap_, hcalisoendcap_after_, hcalisoendcap_before_, hltPrescaleProvider_, mps_fire::i, invmass_after_, invmass_before_, invmassPU_afterZ_, invmassPU_before_, PixelPluginsPhase0_cfi::isBarrel, GeomDetEnumerators::isEndcap(), dqmiolumiharvest::j, metsig::jet, jet_et_after_, jet_et_before_, jet_eta_after_, jet_eta_before_, jetfilter_cfi::jetCollection, jetToken_, LogTrace, reco::LeafCandidate::massSqr(), BTaggingMonitor_cfi::met, met_after_, met_before_, susyDQM_cfi::metCollection, metMax_, metMin_, metToken_, mt_after_, mt_before_, mtMax_, mtMin_, nall, neid, nelectrons_after_, nelectrons_before_, nGoodElectrons, niso, nJetMax_, BTaggingMonitoring_cff::njets, njets_after_, njets_before_, npvs_afterZ_, npvs_before_, nrec, nsel, reco::LeafCandidate::phi(), HLTPrescaleProvider::prescaleSet(), DiDispStaMuonMonitor_cfi::pt, reco::LeafCandidate::pt(), pt_after_, pt_before_, ptCut_, multPhiCorr_741_25nsDY_cfi::px, reco::LeafCandidate::px(), multPhiCorr_741_25nsDY_cfi::py, reco::LeafCandidate::py(), reco::LeafCandidate::pz(), electrons_cff::sieie, sieiebarrel_after_, sieiebarrel_before_, sieieCutBarrel_, sieieCutEndcap_, sieieendcap_after_, sieieendcap_before_, reco::GsfElectron::sigmaIetaIeta(), mathSSE::sqrt(), trkisobarrel_after_, trkisobarrel_before_, trkIsoCutBarrel_, trkIsoCutEndcap_, trkisoendcap_after_, trkisoendcap_before_, bphysicsOniaDQM_cfi::vertex, spclusmultinvestigator_cfi::vertexCollection, and vertexTag_.

◆ bookHistograms()

void EwkElecDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

1.5); // elecTrig_ is now a vector of strings!

Implements DQMOneEDAnalyzer<>.

Definition at line 128 of file EwkElecDQM.cc.

128  {
129  ibooker.setCurrentFolder("Physics/EwkElecDQM");
130 
131  char chtitle[256] = "";
132 
133  pt_before_ = ibooker.book1D("PT_BEFORECUTS", "Electron transverse momentum [GeV]", 100, 0., 100.);
134  pt_after_ = ibooker.book1D("PT_LASTCUT", "Electron transverse momentum [GeV]", 100, 0., 100.);
135 
136  eta_before_ = ibooker.book1D("ETA_BEFORECUTS", "Electron pseudo-rapidity", 50, -2.5, 2.5);
137  eta_after_ = ibooker.book1D("ETA_LASTCUT", "Electron pseudo-rapidity", 50, -2.5, 2.5);
138 
139  sieiebarrel_before_ = ibooker.book1D("SIEIEBARREL_BEFORECUTS", "Electron #sigma_{i#etai#eta} (barrel)", 70, 0., 0.07);
140  sieiebarrel_after_ = ibooker.book1D("SIEIEBARREL_LASTCUT", "Electron #sigma_{i#etai#eta} (barrel)", 70, 0., 0.07);
141 
142  sieieendcap_before_ = ibooker.book1D("SIEIEENDCAP_BEFORECUTS", "Electron #sigma_{i#etai#eta} (endcap)", 70, 0., 0.07);
143  sieieendcap_after_ = ibooker.book1D("SIEIEENDCAP_LASTCUT", "Electron #sigma_{i#etai#eta} (endcap)", 70, 0., 0.07);
144 
146  ibooker.book1D("DETAINBARREL_BEFORECUTS", "Electron #Delta#eta_{in} (barrel)", 40, -0.02, 0.02);
147  detainbarrel_after_ = ibooker.book1D("DETAINBARREL_LASTCUT", "Electron #Delta#eta_{in} (barrel)", 40, -0.02, 0.02);
148 
150  ibooker.book1D("DETAINENDCAP_BEFORECUTS", "Electron #Delta#eta_{in} (endcap)", 40, -0.02, 0.02);
151  detainendcap_after_ = ibooker.book1D("DETAINENDCAP_LASTCUT", "Electron #Delta#eta_{in} (endcap)", 40, -0.02, 0.02);
152 
153  ecalisobarrel_before_ = ibooker.book1D(
154  "ECALISOBARREL_BEFORECUTS", "Absolute electron ECAL isolation variable (barrel) [GeV]", 50, 0., 50.);
156  ibooker.book1D("ECALISOBARREL_LASTCUT", "Absolute electron ECAL isolation variable (barrel) [GeV]", 50, 0., 50.);
157 
158  ecalisoendcap_before_ = ibooker.book1D(
159  "ECALISOENDCAP_BEFORECUTS", "Absolute electron ECAL isolation variable (endcap) [GeV]", 50, 0., 50.);
161  ibooker.book1D("ECALISOENDCAP_LASTCUT", "Absolute electron ECAL isolation variable (endcap) [GeV]", 50, 0., 50.);
162 
163  hcalisobarrel_before_ = ibooker.book1D(
164  "HCALISOBARREL_BEFORECUTS", "Absolute electron HCAL isolation variable (barrel) [GeV]", 50, 0., 50.);
166  ibooker.book1D("HCALISOBARREL_LASTCUT", "Absolute electron HCAL isolation variable (barrel) [GeV]", 50, 0., 50.);
167 
168  hcalisoendcap_before_ = ibooker.book1D(
169  "HCALISOENDCAP_BEFORECUTS", "Absolute electron HCAL isolation variable (endcap) [GeV]", 50, 0., 50.);
171  ibooker.book1D("HCALISOENDCAP_LASTCUT", "Absolute electron HCAL isolation variable (endcap) [GeV]", 50, 0., 50.);
172 
173  trkisobarrel_before_ = ibooker.book1D(
174  "TRKISOBARREL_BEFORECUTS", "Absolute electron track isolation variable (barrel) [GeV]", 50, 0., 50.);
176  ibooker.book1D("TRKISOBARREL_LASTCUT", "Absolute electron track isolation variable (barrel) [GeV]", 50, 0., 50.);
177 
178  trkisoendcap_before_ = ibooker.book1D(
179  "TRKISOENDCAP_BEFORECUTS", "Absolute electron track isolation variable (endcap) [GeV]", 50, 0., 50.);
181  ibooker.book1D("TRKISOENDCAP_LASTCUT", "Absolute electron track isolation variable (endcap) [GeV]", 50, 0., 50.);
182 
183  // trig_before_ = ibooker.book1D("TRIG_BEFORECUTS", "Trigger response", 2, -0.5,
185  // trig_after_ = ibooker.book1D("TRIG_LASTCUT", "Trigger response", 2, -0.5, 1.5);
186 
187  invmass_before_ = ibooker.book1D("INVMASS_BEFORECUTS", "Di-electron invariant mass [GeV]", 100, 0., 200.);
188  invmass_after_ = ibooker.book1D("INVMASS_AFTERCUTS", "Di-electron invariant mass [GeV]", 100, 0., 200.);
189 
190  invmassPU_before_ = ibooker.book2D("INVMASS_PU_BEFORECUTS",
191  "Di-electron invariant mass [GeV] vs PU; mass [GeV]; PU count",
192  100,
193  0.,
194  200.,
195  PUBinCount_,
196  -0.5,
197  PUMax_ + 0.5);
198  invmassPU_afterZ_ = ibooker.book2D("INVMASS_PU_AFTERZCUTS",
199  "Di-electron invariant mass [GeV] vs PU; mass [GeV]; PU count",
200  100,
201  0.,
202  200.,
203  PUBinCount_,
204  -0.5,
205  PUMax_ + 0.5);
206 
207  npvs_before_ =
208  ibooker.book1D("NPVs_BEFORECUTS", "Number of Valid Primary Vertices; nGoodPVs", PUMax_ + 1, -0.5, PUMax_ + 0.5);
209 
210  npvs_afterZ_ =
211  ibooker.book1D("NPVs_AFTERZCUTS", "Number of Valid Primary Vertices; nGoodPVs", PUMax_ + 1, -0.5, PUMax_ + 0.5);
212 
213  nelectrons_before_ = ibooker.book1D("NELECTRONS_BEFORECUTS", "Number of electrons in event", 10, -0.5, 9.5);
214  nelectrons_after_ = ibooker.book1D("NELECTRONS_AFTERCUTS", "Number of electrons in event", 10, -0.5, 9.5);
215 
216  snprintf(chtitle, 255, "Transverse mass (%s) [GeV]", metTag_.label().data());
217  mt_before_ = ibooker.book1D("MT_BEFORECUTS", chtitle, 150, 0., 300.);
218  mt_after_ = ibooker.book1D("MT_LASTCUT", chtitle, 150, 0., 300.);
219 
220  snprintf(chtitle, 255, "Missing transverse energy (%s) [GeV]", metTag_.label().data());
221  met_before_ = ibooker.book1D("MET_BEFORECUTS", chtitle, 100, 0., 200.);
222  met_after_ = ibooker.book1D("MET_LASTCUT", chtitle, 100, 0., 200.);
223 
224  snprintf(chtitle, 255, "Number of jets (%s) above %.2f GeV", jetTag_.label().data(), eJetMin_);
225  njets_before_ = ibooker.book1D("NJETS_BEFORECUTS", chtitle, 10, -0.5, 9.5);
226  njets_after_ = ibooker.book1D("NJETS_LASTCUT", chtitle, 10, -0.5, 9.5);
227 
228  snprintf(chtitle, 255, "Jet with highest E_{T} (%s)", jetTag_.label().data());
229  jet_et_before_ = ibooker.book1D("JETET1_BEFORECUTS", chtitle, 20, 0., 200.0);
230  jet_et_after_ = ibooker.book1D("JETET1_AFTERCUTS", chtitle, 20, 0., 200.0);
231 
232  snprintf(chtitle, 255, "Eta of Jet with highest E_{T} (%s)", jetTag_.label().data());
233  jet_eta_before_ = ibooker.book1D("JETETA1_BEFORECUTS", chtitle, 20, -5, 5);
234  jet_eta_after_ = ibooker.book1D("JETETA1_AFTERCUTS", chtitle, 20, -5, 5);
235 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), detainbarrel_after_, detainbarrel_before_, detainendcap_after_, detainendcap_before_, ecalisobarrel_after_, ecalisobarrel_before_, ecalisoendcap_after_, ecalisoendcap_before_, eJetMin_, eta_after_, eta_before_, hcalisobarrel_after_, hcalisobarrel_before_, hcalisoendcap_after_, hcalisoendcap_before_, invmass_after_, invmass_before_, invmassPU_afterZ_, invmassPU_before_, jet_et_after_, jet_et_before_, jet_eta_after_, jet_eta_before_, jetTag_, edm::InputTag::label(), met_after_, met_before_, metTag_, mt_after_, mt_before_, nelectrons_after_, nelectrons_before_, njets_after_, njets_before_, npvs_afterZ_, npvs_before_, pt_after_, pt_before_, PUBinCount_, PUMax_, dqm::implementation::NavigatorBase::setCurrentFolder(), sieiebarrel_after_, sieiebarrel_before_, sieieendcap_after_, sieieendcap_before_, trkisobarrel_after_, trkisobarrel_before_, trkisoendcap_after_, and trkisoendcap_before_.

◆ calcDeltaPhi()

double EwkElecDQM::calcDeltaPhi ( double  phi1,
double  phi2 
)
protected

Definition at line 996 of file EwkElecDQM.cc.

996  {
997  double deltaPhi = phi1 - phi2;
998 
999  if (deltaPhi < 0)
1000  deltaPhi = -deltaPhi;
1001 
1002  if (deltaPhi > 3.1415926) {
1003  deltaPhi = 2 * 3.1415926 - deltaPhi;
1004  }
1005 
1006  return deltaPhi;
1007 }

References SiPixelRawToDigiRegional_cfi::deltaPhi.

Referenced by analyze().

◆ dqmBeginRun()

void EwkElecDQM::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSet 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 109 of file EwkElecDQM.cc.

109  {
110  nall = 0;
111  nsel = 0;
112 
113  nrec = 0;
114  neid = 0;
115  niso = 0;
116  // nhlt = 0;
117  // nmet = 0;
118 
119  // passed as parameter to HLTConfigProvider::init(), not yet used
120  bool isConfigChanged = false;
121  // isValidHltConfig_ could be used to short-circuit analyze() in case of
122  // problems
123  isValidHltConfig_ = hltPrescaleProvider_.init(iRun, iSet, "HLT", isConfigChanged);
124 
125  LogTrace("") << "isValidHltConfig_=" << isValidHltConfig_ << "\n";
126 }

References hltPrescaleProvider_, HLTPrescaleProvider::init(), isValidHltConfig_, LogTrace, nall, neid, niso, nrec, and nsel.

◆ dqmEndRun()

void EwkElecDQM::dqmEndRun ( const edm::Run r,
const edm::EventSetup  
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 237 of file EwkElecDQM.cc.

237  {
238  // overall
239  double all = nall;
240  double esel = nsel / all;
241  LogVerbatim("") << "\n>>>>>> SELECTION SUMMARY BEGIN >>>>>>>>>>>>>>>";
242  LogVerbatim("") << "Total number of events analyzed: " << nall << " [events]";
243  LogVerbatim("") << "Total number of events selected: " << nsel << " [events]";
244  LogVerbatim("") << "Overall efficiency: "
245  << "(" << setprecision(4) << esel * 100. << " +/- " << setprecision(2)
246  << sqrt(esel * (1 - esel) / all) * 100. << ")%";
247 
248  double erec = nrec / all;
249  double eeid = neid / all;
250  double eiso = niso / all;
251  // double ehlt = nhlt/all;
252  // double emet = nmet/all;
253 
254  // general reconstruction step??
255  double num = nrec;
256  double eff = erec;
257  double err = sqrt(eff * (1 - eff) / all);
258  LogVerbatim("") << "Passing Pt/Eta/Quality cuts: " << num << " [events], (" << setprecision(4) << eff * 100.
259  << " +/- " << setprecision(2) << err * 100. << ")%";
260 
261  // electron ID step
262  num = neid;
263  eff = eeid;
264  err = sqrt(eff * (1 - eff) / all);
265  double effstep = 0.;
266  double errstep = 0.;
267  if (nrec > 0)
268  effstep = eeid / erec;
269  if (nrec > 0)
270  errstep = sqrt(effstep * (1 - effstep) / nrec);
271  LogVerbatim("") << "Passing eID cuts: " << num << " [events], (" << setprecision(4) << eff * 100. << " +/- "
272  << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4) << effstep * 100.
273  << " +/- " << setprecision(2) << errstep * 100. << ")%";
274 
275  // isolation step
276  num = niso;
277  eff = eiso;
278  err = sqrt(eff * (1 - eff) / all);
279  effstep = 0.;
280  errstep = 0.;
281  if (neid > 0)
282  effstep = eiso / eeid;
283  if (neid > 0)
284  errstep = sqrt(effstep * (1 - effstep) / neid);
285  LogVerbatim("") << "Passing isolation cuts: " << num << " [events], (" << setprecision(4) << eff * 100.
286  << " +/- " << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4)
287  << effstep * 100. << " +/- " << setprecision(2) << errstep * 100. << ")%";
288 
289  // // trigger step
290  // num = nhlt;
291  // eff = ehlt;
292  // err = sqrt(eff*(1-eff)/all);
293  // effstep = 0.;
294  // errstep = 0.;
295  // if (niso>0) effstep = ehlt/eiso;
296  // if (niso>0) errstep = sqrt(effstep*(1-effstep)/niso);
297  // LogVerbatim("") << "Passing HLT criteria: " << num << "
298  // [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) <<
299  // err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100.
300  // << " +/- "<< setprecision(2) << errstep*100. <<")%";
301 
302  // trigger step
303  num = nsel;
304  eff = esel;
305  err = sqrt(eff * (1 - eff) / all);
306  effstep = 0.;
307  errstep = 0.;
308  if (niso > 0)
309  effstep = esel / eiso;
310  if (niso > 0)
311  errstep = sqrt(effstep * (1 - effstep) / niso);
312  LogVerbatim("") << "Passing HLT criteria: " << num << " [events], (" << setprecision(4) << eff * 100.
313  << " +/- " << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4)
314  << effstep * 100. << " +/- " << setprecision(2) << errstep * 100. << ")%";
315 
316  // // met/acoplanarity cuts
317  // num = nmet;
318  // eff = emet;
319  // err = sqrt(eff*(1-eff)/all);
320  // effstep = 0.;
321  // errstep = 0.;
322  // if (nhlt>0) effstep = emet/ehlt;
323  // if (nhlt>0) errstep = sqrt(effstep*(1-effstep)/nhlt);
324  // LogVerbatim("") << "Passing MET/acoplanarity cuts: " << num << "
325  // [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) <<
326  // err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100.
327  // << " +/- "<< setprecision(2) << errstep*100. <<")%";
328 
329  // // Z/top selection cuts ALSO LAST STEP so "sel" for "selection"
330  // num = nsel;
331  // eff = esel;
332  // err = sqrt(eff*(1-eff)/all);
333  // effstep = 0.;
334  // errstep = 0.;
335  // if (nmet>0) effstep = esel/emet;
336  // if (nmet>0) errstep = sqrt(effstep*(1-effstep)/nmet);
337  // LogVerbatim("") << "Passing Z/top rejection cuts: " << num << "
338  // [events], (" << setprecision(4) << eff*100. <<" +/- "<< setprecision(2) <<
339  // err*100. << ")%, to previous step: (" << setprecision(4) << effstep*100.
340  // << " +/- "<< setprecision(2) << errstep*100. <<")%";
341 
342  LogVerbatim("") << ">>>>>> SELECTION SUMMARY END >>>>>>>>>>>>>>>\n";
343 }

References python.cmstools::all(), submitPVResolutionJobs::err, nall, neid, niso, nrec, nsel, EgammaValidation_cff::num, and mathSSE::sqrt().

Member Data Documentation

◆ beamSpotTag_

edm::EDGetTokenT<reco::BeamSpot> EwkElecDQM::beamSpotTag_
private

Definition at line 49 of file EwkElecDQM.h.

Referenced by analyze().

◆ detainbarrel_after_

MonitorElement* EwkElecDQM::detainbarrel_after_
private

Definition at line 119 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ detainbarrel_before_

MonitorElement* EwkElecDQM::detainbarrel_before_
private

Definition at line 118 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ detainCutBarrel_

double EwkElecDQM::detainCutBarrel_
private

Definition at line 59 of file EwkElecDQM.h.

Referenced by analyze().

◆ detainCutEndcap_

double EwkElecDQM::detainCutEndcap_
private

Definition at line 60 of file EwkElecDQM.h.

Referenced by analyze().

◆ detainendcap_after_

MonitorElement* EwkElecDQM::detainendcap_after_
private

Definition at line 122 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ detainendcap_before_

MonitorElement* EwkElecDQM::detainendcap_before_
private

Definition at line 121 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ecalisobarrel_after_

MonitorElement* EwkElecDQM::ecalisobarrel_after_
private

Definition at line 137 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ecalisobarrel_before_

MonitorElement* EwkElecDQM::ecalisobarrel_before_
private

Definition at line 136 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ecalIsoCutBarrel_

double EwkElecDQM::ecalIsoCutBarrel_
private

Definition at line 66 of file EwkElecDQM.h.

Referenced by analyze().

◆ ecalIsoCutEndcap_

double EwkElecDQM::ecalIsoCutEndcap_
private

Definition at line 67 of file EwkElecDQM.h.

Referenced by analyze().

◆ ecalisoendcap_after_

MonitorElement* EwkElecDQM::ecalisoendcap_after_
private

Definition at line 140 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ecalisoendcap_before_

MonitorElement* EwkElecDQM::ecalisoendcap_before_
private

Definition at line 139 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ eJetMin_

double EwkElecDQM::eJetMin_
private

Definition at line 86 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ elecTag_

edm::EDGetTokenT<edm::View<reco::GsfElectron> > EwkElecDQM::elecTag_
private

Definition at line 45 of file EwkElecDQM.h.

Referenced by analyze().

◆ elecTrig_

const std::vector<std::string> EwkElecDQM::elecTrig_
private

Definition at line 53 of file EwkElecDQM.h.

◆ eta_after_

MonitorElement* EwkElecDQM::eta_after_
private

Definition at line 110 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ eta_before_

MonitorElement* EwkElecDQM::eta_before_
private

Definition at line 109 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ etaCut_

double EwkElecDQM::etaCut_
private

Definition at line 55 of file EwkElecDQM.h.

Referenced by analyze().

◆ hcalisobarrel_after_

MonitorElement* EwkElecDQM::hcalisobarrel_after_
private

Definition at line 143 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ hcalisobarrel_before_

MonitorElement* EwkElecDQM::hcalisobarrel_before_
private

Definition at line 142 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ hcalIsoCutBarrel_

double EwkElecDQM::hcalIsoCutBarrel_
private

Definition at line 68 of file EwkElecDQM.h.

Referenced by analyze().

◆ hcalIsoCutEndcap_

double EwkElecDQM::hcalIsoCutEndcap_
private

Definition at line 69 of file EwkElecDQM.h.

Referenced by analyze().

◆ hcalisoendcap_after_

MonitorElement* EwkElecDQM::hcalisoendcap_after_
private

Definition at line 146 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ hcalisoendcap_before_

MonitorElement* EwkElecDQM::hcalisoendcap_before_
private

Definition at line 145 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ hltPrescaleProvider_

HLTPrescaleProvider EwkElecDQM::hltPrescaleProvider_
private

Definition at line 93 of file EwkElecDQM.h.

Referenced by analyze(), and dqmBeginRun().

◆ invmass_after_

MonitorElement* EwkElecDQM::invmass_after_
private

Definition at line 158 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ invmass_before_

MonitorElement* EwkElecDQM::invmass_before_
private

Definition at line 157 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ invmassPU_afterZ_

MonitorElement* EwkElecDQM::invmassPU_afterZ_
private

Definition at line 160 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ invmassPU_before_

MonitorElement* EwkElecDQM::invmassPU_before_
private

Definition at line 159 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ isValidHltConfig_

bool EwkElecDQM::isValidHltConfig_
private

Definition at line 92 of file EwkElecDQM.h.

Referenced by dqmBeginRun(), and EwkElecDQM().

◆ jet_et_after_

MonitorElement* EwkElecDQM::jet_et_after_
private

Definition at line 187 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ jet_et_before_

MonitorElement* EwkElecDQM::jet_et_before_
private

Definition at line 186 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ jet_eta_after_

MonitorElement* EwkElecDQM::jet_eta_after_
private

Definition at line 189 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ jet_eta_before_

MonitorElement* EwkElecDQM::jet_eta_before_
private

Definition at line 188 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ jetTag_

edm::InputTag EwkElecDQM::jetTag_
private

Definition at line 43 of file EwkElecDQM.h.

Referenced by bookHistograms().

◆ jetToken_

edm::EDGetTokenT<edm::View<reco::Jet> > EwkElecDQM::jetToken_
private

Definition at line 47 of file EwkElecDQM.h.

Referenced by analyze().

◆ met_after_

MonitorElement* EwkElecDQM::met_after_
private

Definition at line 173 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ met_before_

MonitorElement* EwkElecDQM::met_before_
private

Definition at line 172 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ metIncludesMuons_

bool EwkElecDQM::metIncludesMuons_
private

Definition at line 50 of file EwkElecDQM.h.

◆ metMax_

double EwkElecDQM::metMax_
private

Definition at line 75 of file EwkElecDQM.h.

Referenced by analyze().

◆ metMin_

double EwkElecDQM::metMin_
private

Definition at line 74 of file EwkElecDQM.h.

Referenced by analyze().

◆ metTag_

edm::InputTag EwkElecDQM::metTag_
private

Definition at line 42 of file EwkElecDQM.h.

Referenced by bookHistograms().

◆ metToken_

edm::EDGetTokenT<edm::View<reco::MET> > EwkElecDQM::metToken_
private

Definition at line 46 of file EwkElecDQM.h.

Referenced by analyze().

◆ mt_after_

MonitorElement* EwkElecDQM::mt_after_
private

Definition at line 170 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ mt_before_

MonitorElement* EwkElecDQM::mt_before_
private

Definition at line 169 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ mtMax_

double EwkElecDQM::mtMax_
private

Definition at line 73 of file EwkElecDQM.h.

Referenced by analyze().

◆ mtMin_

double EwkElecDQM::mtMin_
private

Definition at line 72 of file EwkElecDQM.h.

Referenced by analyze().

◆ nall

unsigned int EwkElecDQM::nall
private

Definition at line 95 of file EwkElecDQM.h.

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

◆ neid

unsigned int EwkElecDQM::neid
private

Definition at line 97 of file EwkElecDQM.h.

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

◆ nelectrons_after_

MonitorElement* EwkElecDQM::nelectrons_after_
private

Definition at line 167 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nelectrons_before_

MonitorElement* EwkElecDQM::nelectrons_before_
private

Definition at line 166 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nGoodElectrons

unsigned int EwkElecDQM::nGoodElectrons
private

Definition at line 104 of file EwkElecDQM.h.

Referenced by analyze().

◆ niso

unsigned int EwkElecDQM::niso
private

Definition at line 98 of file EwkElecDQM.h.

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

◆ nJetMax_

int EwkElecDQM::nJetMax_
private

Definition at line 87 of file EwkElecDQM.h.

Referenced by analyze().

◆ njets_after_

MonitorElement* EwkElecDQM::njets_after_
private

Definition at line 185 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ njets_before_

MonitorElement* EwkElecDQM::njets_before_
private

Definition at line 184 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ npvs_afterZ_

MonitorElement* EwkElecDQM::npvs_afterZ_
private

Definition at line 164 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ npvs_before_

MonitorElement* EwkElecDQM::npvs_before_
private

Definition at line 162 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ nrec

unsigned int EwkElecDQM::nrec
private

Definition at line 96 of file EwkElecDQM.h.

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

◆ nsel

unsigned int EwkElecDQM::nsel
private

Definition at line 101 of file EwkElecDQM.h.

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

◆ pt_after_

MonitorElement* EwkElecDQM::pt_after_
private

Definition at line 107 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ pt_before_

MonitorElement* EwkElecDQM::pt_before_
private

Definition at line 106 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ ptCut_

double EwkElecDQM::ptCut_
private

◆ PUBinCount_

unsigned int EwkElecDQM::PUBinCount_
private

Definition at line 90 of file EwkElecDQM.h.

Referenced by bookHistograms().

◆ PUMax_

unsigned int EwkElecDQM::PUMax_
private

Definition at line 90 of file EwkElecDQM.h.

Referenced by bookHistograms().

◆ sieiebarrel_after_

MonitorElement* EwkElecDQM::sieiebarrel_after_
private

Definition at line 113 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ sieiebarrel_before_

MonitorElement* EwkElecDQM::sieiebarrel_before_
private

Definition at line 112 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ sieieCutBarrel_

double EwkElecDQM::sieieCutBarrel_
private

Definition at line 57 of file EwkElecDQM.h.

Referenced by analyze().

◆ sieieCutEndcap_

double EwkElecDQM::sieieCutEndcap_
private

Definition at line 58 of file EwkElecDQM.h.

Referenced by analyze().

◆ sieieendcap_after_

MonitorElement* EwkElecDQM::sieieendcap_after_
private

Definition at line 116 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ sieieendcap_before_

MonitorElement* EwkElecDQM::sieieendcap_before_
private

Definition at line 115 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ trig_after_

MonitorElement* EwkElecDQM::trig_after_
private

Definition at line 155 of file EwkElecDQM.h.

◆ trig_before_

MonitorElement* EwkElecDQM::trig_before_
private

Definition at line 154 of file EwkElecDQM.h.

◆ trigTag_

edm::EDGetTokenT<edm::TriggerResults> EwkElecDQM::trigTag_
private

Definition at line 44 of file EwkElecDQM.h.

◆ trkisobarrel_after_

MonitorElement* EwkElecDQM::trkisobarrel_after_
private

Definition at line 149 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ trkisobarrel_before_

MonitorElement* EwkElecDQM::trkisobarrel_before_
private

Definition at line 148 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ trkIsoCutBarrel_

double EwkElecDQM::trkIsoCutBarrel_
private

Definition at line 70 of file EwkElecDQM.h.

Referenced by analyze().

◆ trkIsoCutEndcap_

double EwkElecDQM::trkIsoCutEndcap_
private

Definition at line 71 of file EwkElecDQM.h.

Referenced by analyze().

◆ trkisoendcap_after_

MonitorElement* EwkElecDQM::trkisoendcap_after_
private

Definition at line 152 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ trkisoendcap_before_

MonitorElement* EwkElecDQM::trkisoendcap_before_
private

Definition at line 151 of file EwkElecDQM.h.

Referenced by analyze(), and bookHistograms().

◆ vertexTag_

edm::EDGetTokenT<edm::View<reco::Vertex> > EwkElecDQM::vertexTag_
private

Definition at line 48 of file EwkElecDQM.h.

Referenced by analyze().

EwkElecDQM::met_after_
MonitorElement * met_after_
Definition: EwkElecDQM.h:173
EwkElecDQM::niso
unsigned int niso
Definition: EwkElecDQM.h:98
EwkElecDQM::detainendcap_before_
MonitorElement * detainendcap_before_
Definition: EwkElecDQM.h:121
EwkElecDQM::hcalisobarrel_after_
MonitorElement * hcalisobarrel_after_
Definition: EwkElecDQM.h:143
mps_fire.i
i
Definition: mps_fire.py:428
EwkElecDQM::hcalisobarrel_before_
MonitorElement * hcalisobarrel_before_
Definition: EwkElecDQM.h:142
EwkElecDQM::neid
unsigned int neid
Definition: EwkElecDQM.h:97
EwkElecDQM::invmassPU_before_
MonitorElement * invmassPU_before_
Definition: EwkElecDQM.h:159
EwkElecDQM::hcalIsoCutBarrel_
double hcalIsoCutBarrel_
Definition: EwkElecDQM.h:68
EwkElecDQM::nall
unsigned int nall
Definition: EwkElecDQM.h:95
EwkElecDQM::sieieendcap_before_
MonitorElement * sieieendcap_before_
Definition: EwkElecDQM.h:115
EwkElecDQM::nGoodElectrons
unsigned int nGoodElectrons
Definition: EwkElecDQM.h:104
susyDQM_cfi.metCollection
metCollection
Definition: susyDQM_cfi.py:11
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
EwkElecDQM::detainbarrel_after_
MonitorElement * detainbarrel_after_
Definition: EwkElecDQM.h:119
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
reco::LeafCandidate::massSqr
double massSqr() const final
mass squared
Definition: LeafCandidate.h:133
EwkElecDQM::metMax_
double metMax_
Definition: EwkElecDQM.h:75
EwkElecDQM::sieiebarrel_after_
MonitorElement * sieiebarrel_after_
Definition: EwkElecDQM.h:113
HLTPrescaleProvider::prescaleSet
int prescaleSet(const edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition: HLTPrescaleProvider.cc:60
EwkElecDQM::elecTag_
edm::EDGetTokenT< edm::View< reco::GsfElectron > > elecTag_
Definition: EwkElecDQM.h:45
EwkElecDQM::detainbarrel_before_
MonitorElement * detainbarrel_before_
Definition: EwkElecDQM.h:118
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
EwkElecDQM::elecTrig_
const std::vector< std::string > elecTrig_
Definition: EwkElecDQM.h:53
EwkElecDQM::pt_before_
MonitorElement * pt_before_
Definition: EwkElecDQM.h:106
EwkElecDQM::ecalisobarrel_before_
MonitorElement * ecalisobarrel_before_
Definition: EwkElecDQM.h:136
EwkElecDQM::PUBinCount_
unsigned int PUBinCount_
Definition: EwkElecDQM.h:90
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
pdwgLeptonRecoSkim_cfi.electronCollection
electronCollection
Definition: pdwgLeptonRecoSkim_cfi.py:5
EwkElecDQM::jetTag_
edm::InputTag jetTag_
Definition: EwkElecDQM.h:43
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
EwkElecDQM::eJetMin_
double eJetMin_
Definition: EwkElecDQM.h:86
edm::Handle
Definition: AssociativeIterator.h:50
EwkElecDQM::sieiebarrel_before_
MonitorElement * sieiebarrel_before_
Definition: EwkElecDQM.h:112
EwkElecDQM::hcalisoendcap_before_
MonitorElement * hcalisoendcap_before_
Definition: EwkElecDQM.h:145
python.cmstools.all
def all(container)
workaround iterator generators for ROOT classes
Definition: cmstools.py:25
EwkElecDQM::beamSpotTag_
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
Definition: EwkElecDQM.h:49
EwkElecDQM::nsel
unsigned int nsel
Definition: EwkElecDQM.h:101
EwkElecDQM::trkisoendcap_after_
MonitorElement * trkisoendcap_after_
Definition: EwkElecDQM.h:152
EwkElecDQM::nelectrons_before_
MonitorElement * nelectrons_before_
Definition: EwkElecDQM.h:166
BTaggingMonitor_cfi.met
met
Definition: BTaggingMonitor_cfi.py:84
EwkElecDQM::mt_after_
MonitorElement * mt_after_
Definition: EwkElecDQM.h:170
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
EwkElecDQM::nJetMax_
int nJetMax_
Definition: EwkElecDQM.h:87
reco::MET
Definition: MET.h:41
EwkElecDQM::trkIsoCutBarrel_
double trkIsoCutBarrel_
Definition: EwkElecDQM.h:70
EwkElecDQM::ecalIsoCutBarrel_
double ecalIsoCutBarrel_
Definition: EwkElecDQM.h:66
EwkElecDQM::pt_after_
MonitorElement * pt_after_
Definition: EwkElecDQM.h:107
EwkElecDQM::ecalisobarrel_after_
MonitorElement * ecalisobarrel_after_
Definition: EwkElecDQM.h:137
Jet
Definition: Jet.py:1
EwkElecDQM::mt_before_
MonitorElement * mt_before_
Definition: EwkElecDQM.h:169
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
EwkElecDQM::trkIsoCutEndcap_
double trkIsoCutEndcap_
Definition: EwkElecDQM.h:71
reco::LeafCandidate::py
double py() const final
y coordinate of momentum vector
Definition: LeafCandidate.h:142
PVValHelper::eta
Definition: PVValidationHelpers.h:70
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
EwkElecDQM::npvs_afterZ_
MonitorElement * npvs_afterZ_
Definition: EwkElecDQM.h:164
EwkElecDQM::invmassPU_afterZ_
MonitorElement * invmassPU_afterZ_
Definition: EwkElecDQM.h:160
EwkElecDQM::ecalIsoCutEndcap_
double ecalIsoCutEndcap_
Definition: EwkElecDQM.h:67
EwkElecDQM::jet_et_before_
MonitorElement * jet_et_before_
Definition: EwkElecDQM.h:186
EwkElecDQM::ptCut_
double ptCut_
Definition: EwkElecDQM.h:54
EwkElecDQM::detainendcap_after_
MonitorElement * detainendcap_after_
Definition: EwkElecDQM.h:122
EwkElecDQM::vertexTag_
edm::EDGetTokenT< edm::View< reco::Vertex > > vertexTag_
Definition: EwkElecDQM.h:48
EwkElecDQM::detainCutBarrel_
double detainCutBarrel_
Definition: EwkElecDQM.h:59
reco::GsfElectron
Definition: GsfElectron.h:35
EwkElecDQM::njets_before_
MonitorElement * njets_before_
Definition: EwkElecDQM.h:184
EwkElecDQM::sieieCutBarrel_
double sieieCutBarrel_
Definition: EwkElecDQM.h:57
jetfilter_cfi.jetCollection
jetCollection
Definition: jetfilter_cfi.py:4
EwkElecDQM::jet_eta_before_
MonitorElement * jet_eta_before_
Definition: EwkElecDQM.h:188
EwkElecDQM::sieieendcap_after_
MonitorElement * sieieendcap_after_
Definition: EwkElecDQM.h:116
EwkElecDQM::invmass_after_
MonitorElement * invmass_after_
Definition: EwkElecDQM.h:158
EwkElecDQM::met_before_
MonitorElement * met_before_
Definition: EwkElecDQM.h:172
PixelPluginsPhase0_cfi.isBarrel
isBarrel
Definition: PixelPluginsPhase0_cfi.py:17
edm::View
Definition: CaloClusterFwd.h:14
EwkElecDQM::calcDeltaPhi
double calcDeltaPhi(double phi1, double phi2)
Definition: EwkElecDQM.cc:996
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:233
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
EwkElecDQM::trkisoendcap_before_
MonitorElement * trkisoendcap_before_
Definition: EwkElecDQM.h:151
EwkElecDQM::sieieCutEndcap_
double sieieCutEndcap_
Definition: EwkElecDQM.h:58
EwkElecDQM::ecalisoendcap_before_
MonitorElement * ecalisoendcap_before_
Definition: EwkElecDQM.h:139
EwkElecDQM::nrec
unsigned int nrec
Definition: EwkElecDQM.h:96
reco::GsfElectron::dr04TkSumPt
float dr04TkSumPt() const
Definition: GsfElectron.h:605
EwkElecDQM::PUMax_
unsigned int PUMax_
Definition: EwkElecDQM.h:90
EwkElecDQM::jet_eta_after_
MonitorElement * jet_eta_after_
Definition: EwkElecDQM.h:189
EwkElecDQM::metMin_
double metMin_
Definition: EwkElecDQM.h:74
EwkElecDQM::metTag_
edm::InputTag metTag_
Definition: EwkElecDQM.h:42
EwkElecDQM::hcalisoendcap_after_
MonitorElement * hcalisoendcap_after_
Definition: EwkElecDQM.h:146
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
submitPVResolutionJobs.err
err
Definition: submitPVResolutionJobs.py:85
EwkElecDQM::trkisobarrel_after_
MonitorElement * trkisobarrel_after_
Definition: EwkElecDQM.h:149
HPSPFTauProducerPuppi_cfi.electron
electron
Definition: HPSPFTauProducerPuppi_cfi.py:13
HLTPrescaleProvider::init
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
Definition: HLTPrescaleProvider.cc:21
EgammaValidation_cff.num
num
Definition: EgammaValidation_cff.py:33
looper.cfg
cfg
Definition: looper.py:296
reco::GsfElectron::sigmaIetaIeta
float sigmaIetaIeta() const
Definition: GsfElectron.h:427
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
EwkElecDQM::eta_after_
MonitorElement * eta_after_
Definition: EwkElecDQM.h:110
EwkElecDQM::mtMin_
double mtMin_
Definition: EwkElecDQM.h:72
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
EwkElecDQM::invmass_before_
MonitorElement * invmass_before_
Definition: EwkElecDQM.h:157
BTaggingMonitoring_cff.njets
njets
Definition: BTaggingMonitoring_cff.py:10
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
spclusmultinvestigator_cfi.vertexCollection
vertexCollection
Definition: spclusmultinvestigator_cfi.py:4
metsig::jet
Definition: SignAlgoResolutions.h:47
EwkElecDQM::isValidHltConfig_
bool isValidHltConfig_
Definition: EwkElecDQM.h:92
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
ev
bool ev
Definition: Hydjet2Hadronizer.cc:97
EwkElecDQM::metToken_
edm::EDGetTokenT< edm::View< reco::MET > > metToken_
Definition: EwkElecDQM.h:46
EwkElecDQM::eta_before_
MonitorElement * eta_before_
Definition: EwkElecDQM.h:109
EwkElecDQM::ecalisoendcap_after_
MonitorElement * ecalisoendcap_after_
Definition: EwkElecDQM.h:140
reco::GsfElectron::dr03HcalTowerSumEt
float dr03HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:584
reco::LeafCandidate::energy
double energy() const final
energy
Definition: LeafCandidate.h:125
EwkElecDQM::nelectrons_after_
MonitorElement * nelectrons_after_
Definition: EwkElecDQM.h:167
EwkElecDQM::njets_after_
MonitorElement * njets_after_
Definition: EwkElecDQM.h:185
EwkElecDQM::jetToken_
edm::EDGetTokenT< edm::View< reco::Jet > > jetToken_
Definition: EwkElecDQM.h:47
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
EwkElecDQM::npvs_before_
MonitorElement * npvs_before_
Definition: EwkElecDQM.h:162
EwkElecDQM::mtMax_
double mtMax_
Definition: EwkElecDQM.h:73
EwkElecDQM::etaCut_
double etaCut_
Definition: EwkElecDQM.h:55
EwkElecDQM::jet_et_after_
MonitorElement * jet_et_after_
Definition: EwkElecDQM.h:187
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:159
EwkElecDQM::trkisobarrel_before_
MonitorElement * trkisobarrel_before_
Definition: EwkElecDQM.h:148
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
GeomDetEnumerators::isEndcap
bool isEndcap(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:62
electrons_cff.sieie
sieie
Definition: electrons_cff.py:361
reco::LeafCandidate::px
double px() const final
x coordinate of momentum vector
Definition: LeafCandidate.h:140
reco::LeafCandidate::pz
double pz() const final
z coordinate of momentum vector
Definition: LeafCandidate.h:144
edm::InputTag
Definition: InputTag.h:15
reco::GsfElectron::dr03EcalRecHitSumEt
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:567
EwkElecDQM::detainCutEndcap_
double detainCutEndcap_
Definition: EwkElecDQM.h:60
reco::Vertex
Definition: Vertex.h:35
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
EwkElecDQM::hltPrescaleProvider_
HLTPrescaleProvider hltPrescaleProvider_
Definition: EwkElecDQM.h:93
EwkElecDQM::hcalIsoCutEndcap_
double hcalIsoCutEndcap_
Definition: EwkElecDQM.h:69