CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
egHLT::EleHLTFilterMon Class Reference

#include <EgHLTEleHLTFilterMon.h>

Public Member Functions

 EleHLTFilterMon (MonElemFuncs &monElemFuncs, const std::string &filterName, TrigCodes::TrigBitSet filterBit, const BinData &bins, const CutMasks &masks, bool doHEP)
 
void fill (const OffEvt &evt, float weight)
 
const std::string & filterName () const
 
bool operator< (const EleHLTFilterMon &rhs) const
 
 ~EleHLTFilterMon ()
 

Static Public Member Functions

static bool ptrCompStr (const EleHLTFilterMon *lhs, const std::string &rhs)
 
static bool ptrCompStr (const std::string &lhs, const EleHLTFilterMon *rhs)
 
template<class T >
static bool ptrLess (const T *lhs, const T *rhs)
 

Private Member Functions

 EleHLTFilterMon (const EleHLTFilterMon &)
 
EleHLTFilterMonoperator= (const EleHLTFilterMon &)
 

Private Attributes

MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothHighME_
 
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothME_
 
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneHighME_
 
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneME_
 
bool doHEP_
 
std::vector< MonElemContainer< OffEle > * > eleEffHists_
 
std::vector< MonElemContainer< OffEle > * > eleFailMonElems_
 
std::vector< MonElemContainer< OffEle > * > eleMonElems_
 
const TrigCodes::TrigBitSet filterBit_
 
std::string filterName_
 
std::vector< MonElemManagerBase< trigger::TriggerObject > * > trigMonElems_
 

Detailed Description

Definition at line 40 of file EgHLTEleHLTFilterMon.h.

Constructor & Destructor Documentation

egHLT::EleHLTFilterMon::EleHLTFilterMon ( const EleHLTFilterMon )
inlineprivate

Definition at line 79 of file EgHLTEleHLTFilterMon.h.

79 {}
EleHLTFilterMon::EleHLTFilterMon ( MonElemFuncs monElemFuncs,
const std::string &  filterName,
TrigCodes::TrigBitSet  filterBit,
const BinData bins,
const CutMasks masks,
bool  doHEP 
)

Definition at line 13 of file EgHLTEleHLTFilterMon.cc.

References create_public_pileup_plots::bins, egHLT::OffEle::cutCode(), diEleMassBothHighME_, diEleMassBothME_, diEleMassOnlyOneHighME_, diEleMassOnlyOneME_, doHEP_, eleEffHists_, eleFailMonElems_, eleMonElems_, egHLT::BinData::et, egHLT::OffEle::et(), egHLT::BinData::eta, egHLT::OffEle::eta(), egHLT::CutMasks::fakeEle, filterName(), filterName_, egHLT::MonElemFuncs::getIB(), mps_fire::i, egHLT::MonElemFuncs::initStdEffHists(), egHLT::MonElemFuncs::initStdEleHists(), egHLT::MonElemFuncs::initStdEleHistsHEP(), egHLT::OffEle::looseCutCode(), egHLT::BinData::mass, egHLT::BinData::massHigh, egHLT::BinData::Data1D::max, egHLT::BinData::Data1D::min, dataset::name, egHLT::BinData::Data1D::nr, egHLT::CutMasks::probeEle, egHLT::CutMasks::stdEle, and AlCaHLTBitMon_QueryRunRegistry::string.

13  :
15  filterBit_(filterBit),
16  doHEP_(doHEP)
17 {
18  bool doChargeSep = false;
19  bool monHLTFailedEle = false;
20  bool doFakeRate=false;
21  bool doTagAndProbe=false;
22  bool doN1andSingleEffs=false;
23  std::string histname="egamma";
24 
25  eleMonElems_.push_back(new MonElemContainer<OffEle>());
26  //---Morse-------
27  //eleMonElems_.push_back(new MonElemContainer<OffEle>("_cut"," cut, debug hists ",new EgHLTDQMVarCut<OffEle>(~0x0,&OffEle::cutCode)));
28  //-----------------
29  if(doChargeSep){
30  eleMonElems_.push_back(new MonElemContainer<OffEle>("_posCharge"," q=+1 ",new ChargeCut<OffEle>(1)));
31  eleMonElems_.push_back(new MonElemContainer<OffEle>("_negCharge"," q=-1 ",new ChargeCut<OffEle>(-1)));
32  }
33 
34  for(auto & eleMonElem : eleMonElems_){
35  if(doHEP_){
36  monElemFuncs.initStdEleHistsHEP(eleMonElem->monElems(),filterName,histname+"_passFilter"+eleMonElem->name(),bins);
37  }else{
38  monElemFuncs.initStdEleHists(eleMonElem->monElems(),filterName,filterName_+"_gsfEle_passFilter"+eleMonElem->name(),bins);
39  }
40  }
41  if(monHLTFailedEle){
43  if(doChargeSep) {
44  eleFailMonElems_.push_back(new MonElemContainer<OffEle>("_posCharge"," q=+1 ",new ChargeCut<OffEle>(1)));
45  eleFailMonElems_.push_back(new MonElemContainer<OffEle>("_negCharge"," q=-1 ",new ChargeCut<OffEle>(-1)));
46  }
47  }
48  for(size_t i=0;i<eleFailMonElems_.size();i++){
49  if(doHEP_){
50  monElemFuncs.initStdEleHistsHEP(eleMonElems_[i]->monElems(),filterName,histname+"_passFilter"+eleMonElems_[i]->name(),bins);
51  }else{
52  monElemFuncs.initStdEleHists(eleFailMonElems_[i]->monElems(),filterName,filterName_+"_gsfEle_failFilter"+eleMonElems_[i]->name(),bins);
53  }
54  }
55 
56  int effProbeCutCode = masks.probeEle;
57  int effTagCutCode = masks.stdEle;
58  int fakeRateProbeCut = masks.fakeEle;
59  eleEffHists_.push_back(new MonElemContainer<OffEle>());
60  if(doTagAndProbe) eleEffHists_.push_back(new MonElemContainer<OffEle>("_tagProbe"," Tag and Probe ",new EgTagProbeCut<OffEle>(effProbeCutCode,&OffEle::cutCode,effTagCutCode,&OffEle::cutCode)));
61  if(doFakeRate) eleEffHists_.push_back(new MonElemContainer<OffEle>("_fakeRate"," Fake Rate ",new EgJetTagProbeCut<OffEle>(fakeRateProbeCut,&OffEle::looseCutCode)));
62  if(doN1andSingleEffs){
63  for(auto & eleEffHist : eleEffHists_){
64  monElemFuncs.initStdEffHists(eleEffHist->cutMonElems(),filterName,
65  filterName_+"_gsfEle_effVsEt"+eleEffHist->name(),bins.et,&OffEle::et,masks);
66  monElemFuncs.initStdEffHists(eleEffHist->cutMonElems(),filterName,
67  filterName_+"_gsfEle_effVsEta"+eleEffHist->name(),bins.eta,&OffEle::eta,masks);
68  /* monElemFuncs.initStdEffHists(eleEffHists_[i]->cutMonElems(),filterName,
69  filterName_+"_gsfEle_effVsPhi"+eleEffHists_[i]->name(),bins.phi,&OffEle::phi,masks); */
70  // monElemFuncs.initStdEffHists(eleEffHists_[i]->cutMonElems(),filterName,
71  // filterName_+"_gsfEle_effVsCharge"+eleEffHists_[i]->name(),bins.charge,&OffEle::chargeF);
72  }
73  }
74  if(!doHEP_)
75  {
76  typedef MonElemManager<ParticlePair<OffEle>,float > DiEleMon;
77  diEleMassBothME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_bothPassFilter_mass",
78  filterName_+"_diEle_bothPassFilter Mass;M_{ee} (GeV/c^{2})",
80  diEleMassOnlyOneME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_onlyOnePass Filter_mass",
81  filterName_+"_diEle_onlyOnePassFilter Mass;M_{ee} (GeV/c^{2})",
83 
84  diEleMassBothHighME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_bothPassFilter_massHigh",
85  filterName_+"_diEle_bothPassFilter Mass;M_{ee} (GeV/c^{2})",
87  diEleMassOnlyOneHighME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_onlyOnePassFilter_massHigh",
88  filterName_+"_diEle_onlyOnePassFilter Mass;M_{ee} (GeV/c^{2})",
90  }
91 }
void initStdEleHists(std::vector< MonElemManagerBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins)
const TrigCodes::TrigBitSet filterBit_
float eta() const
Definition: EgHLTOffEle.h:120
std::vector< MonElemContainer< OffEle > * > eleMonElems_
int looseCutCode() const
Definition: EgHLTOffEle.h:212
float et() const
Definition: EgHLTOffEle.h:117
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneHighME_
const std::string & filterName() const
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothHighME_
std::vector< MonElemContainer< OffEle > * > eleEffHists_
int cutCode() const
Definition: EgHLTOffEle.h:211
void initStdEleHistsHEP(std::vector< MonElemManagerBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, const BinData &bins)
std::vector< MonElemContainer< OffEle > * > eleFailMonElems_
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothME_
DQMStore::IBooker & getIB()
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneME_
void initStdEffHists(std::vector< MonElemWithCutBase< OffEle > * > &histVec, const std::string &filterName, const std::string &baseName, int nrBins, double xMin, double xMax, float(OffEle::*vsVarFunc)() const, const CutMasks &masks)
EleHLTFilterMon::~EleHLTFilterMon ( )

Definition at line 93 of file EgHLTEleHLTFilterMon.cc.

References diEleMassBothHighME_, diEleMassBothME_, diEleMassOnlyOneHighME_, diEleMassOnlyOneME_, doHEP_, eleEffHists_, eleFailMonElems_, and eleMonElems_.

94 {
95  for(auto & eleMonElem : eleMonElems_) delete eleMonElem;
96  for(auto & eleFailMonElem : eleFailMonElems_) delete eleFailMonElem;
97  for(auto & eleEffHist : eleEffHists_) delete eleEffHist;
98  if(!doHEP_)
99  {
100  delete diEleMassBothME_;
101  delete diEleMassOnlyOneME_;
102  delete diEleMassBothHighME_;
104  }
105 }
std::vector< MonElemContainer< OffEle > * > eleMonElems_
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneHighME_
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothHighME_
std::vector< MonElemContainer< OffEle > * > eleEffHists_
std::vector< MonElemContainer< OffEle > * > eleFailMonElems_
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothME_
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneME_

Member Function Documentation

void EleHLTFilterMon::fill ( const OffEvt evt,
float  weight 
)

Definition at line 107 of file EgHLTEleHLTFilterMon.cc.

References diEleMassBothHighME_, diEleMassBothME_, diEleMassOnlyOneHighME_, diEleMassOnlyOneME_, doHEP_, eleEffHists_, eleFailMonElems_, eleMonElems_, egHLT::OffEvt::eles(), egHLT::OffEvt::evtTrigBits(), filterBit_, and egHLT::OffEle::trigBits().

108 {
109  for(size_t eleNr=0;eleNr<evt.eles().size();eleNr++){
110  const OffEle& ele = evt.eles()[eleNr];
111  if((ele.trigBits()&filterBit_)!=0){ //ele passes
112  for(auto & eleMonElem : eleMonElems_) eleMonElem->fill(ele,evt,weight);
113  for(auto & eleEffHist : eleEffHists_) eleEffHist->fill(ele,evt,weight);
114  }else { //ele didnt pass trigger
115  for(auto & eleFailMonElem : eleFailMonElems_) eleFailMonElem->fill(ele,evt,weight);
116  }
117  }//end loop over electrons
118 
119  if((evt.evtTrigBits()&filterBit_)!=0){
120  for(size_t ele1Nr=0;ele1Nr<evt.eles().size();ele1Nr++){
121  for(size_t ele2Nr=ele1Nr+1;ele2Nr<evt.eles().size();ele2Nr++){
122  const OffEle& ele1 = evt.eles()[ele1Nr];
123  const OffEle& ele2 = evt.eles()[ele2Nr];
124  if(!doHEP_)
125  {
126  if((ele1.trigBits()&ele2.trigBits()&filterBit_)==filterBit_) {
127  diEleMassBothME_->fill(ParticlePair<OffEle>(ele1,ele2),weight);
129  }else if((ele1.trigBits()&filterBit_)==filterBit_ ||
130  (ele2.trigBits()&filterBit_)==filterBit_){
133  }
134 
135  }
136  }//end inner ele loop
137  }//end outer ele loop
138  }//end check if filter is present
139 }
const TrigCodes::TrigBitSet filterBit_
std::vector< MonElemContainer< OffEle > * > eleMonElems_
TrigCodes::TrigBitSet trigBits() const
Definition: EgHLTOffEle.h:219
Definition: weight.py:1
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneHighME_
TrigCodes::TrigBitSet evtTrigBits() const
Definition: EgHLTOffEvt.h:52
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothHighME_
std::vector< MonElemContainer< OffEle > * > eleEffHists_
std::vector< MonElemContainer< OffEle > * > eleFailMonElems_
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassBothME_
const std::vector< OffEle > & eles() const
Definition: EgHLTOffEvt.h:48
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneME_
const std::string& egHLT::EleHLTFilterMon::filterName ( ) const
inline

Definition at line 91 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), and ptrCompStr().

91 {return filterName_;}
bool egHLT::EleHLTFilterMon::operator< ( const EleHLTFilterMon rhs) const
inline

Definition at line 89 of file EgHLTEleHLTFilterMon.h.

References filterName_.

89 {return filterName_<rhs.filterName_;}
EleHLTFilterMon& egHLT::EleHLTFilterMon::operator= ( const EleHLTFilterMon )
inlineprivate
static bool egHLT::EleHLTFilterMon::ptrCompStr ( const EleHLTFilterMon lhs,
const std::string &  rhs 
)
inlinestatic

Definition at line 47 of file EgHLTEleHLTFilterMon.h.

References filterName().

47  {
48  return lhs->filterName()<rhs;
49  }
static bool egHLT::EleHLTFilterMon::ptrCompStr ( const std::string &  lhs,
const EleHLTFilterMon rhs 
)
inlinestatic

Definition at line 50 of file EgHLTEleHLTFilterMon.h.

References filterName().

50  {
51  return lhs<rhs->filterName();
52  }
template<class T >
static bool egHLT::EleHLTFilterMon::ptrLess ( const T lhs,
const T rhs 
)
inlinestatic

Definition at line 55 of file EgHLTEleHLTFilterMon.h.

55  {
56  return *lhs<*rhs;
57  }

Member Data Documentation

MonElemManagerBase<ParticlePair<OffEle> >* egHLT::EleHLTFilterMon::diEleMassBothHighME_
private

Definition at line 75 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

MonElemManagerBase<ParticlePair<OffEle> >* egHLT::EleHLTFilterMon::diEleMassBothME_
private

Definition at line 73 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

MonElemManagerBase<ParticlePair<OffEle> >* egHLT::EleHLTFilterMon::diEleMassOnlyOneHighME_
private

Definition at line 76 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

MonElemManagerBase<ParticlePair<OffEle> >* egHLT::EleHLTFilterMon::diEleMassOnlyOneME_
private

Definition at line 74 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

bool egHLT::EleHLTFilterMon::doHEP_
private

Definition at line 62 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

std::vector<MonElemContainer<OffEle>*> egHLT::EleHLTFilterMon::eleEffHists_
private

Definition at line 68 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

std::vector<MonElemContainer<OffEle>*> egHLT::EleHLTFilterMon::eleFailMonElems_
private

Definition at line 70 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

std::vector<MonElemContainer<OffEle>*> egHLT::EleHLTFilterMon::eleMonElems_
private

Definition at line 69 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), fill(), and ~EleHLTFilterMon().

const TrigCodes::TrigBitSet egHLT::EleHLTFilterMon::filterBit_
private

Definition at line 61 of file EgHLTEleHLTFilterMon.h.

Referenced by fill().

std::string egHLT::EleHLTFilterMon::filterName_
private

Definition at line 60 of file EgHLTEleHLTFilterMon.h.

Referenced by EleHLTFilterMon(), and operator<().

std::vector<MonElemManagerBase<trigger::TriggerObject>*> egHLT::EleHLTFilterMon::trigMonElems_
private

Definition at line 65 of file EgHLTEleHLTFilterMon.h.