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 Member Functions | Private Attributes
egHLT::EleHLTFilterMon Class Reference

#include <EgHLTEleHLTFilterMon.h>

Classes

struct  ptrCompStr
 
struct  ptrLess
 

Public Member Functions

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

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_
 
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 76 of file EgHLTEleHLTFilterMon.h.

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

Definition at line 13 of file EgHLTEleHLTFilterMon.cc.

References egHLT::OffEle::cutCode(), diEleMassBothHighME_, diEleMassBothME_, diEleMassOnlyOneHighME_, diEleMassOnlyOneME_, eleEffHists_, eleFailMonElems_, eleMonElems_, egHLT::BinData::et, egHLT::OffEle::et(), egHLT::BinData::eta, egHLT::OffEle::eta(), egHLT::CutMasks::fakeEle, filterName_, egHLT::MonElemFuncs::getIB(), i, egHLT::MonElemFuncs::initStdEffHists(), egHLT::MonElemFuncs::initStdEleHists(), egHLT::OffEle::looseCutCode(), egHLT::BinData::mass, egHLT::BinData::massHigh, egHLT::BinData::Data1D::max, egHLT::BinData::Data1D::min, mergeVDriftHistosByStation::name, egHLT::BinData::Data1D::nr, egHLT::CutMasks::probeEle, and egHLT::CutMasks::stdEle.

13  :
15  filterBit_(filterBit)
16 {
17  bool doChargeSep = false;
18  bool monHLTFailedEle = false;
19  bool doFakeRate=false;
20  bool doTagAndProbe=false;
21  bool doN1andSingleEffs=false;
22 
23  eleMonElems_.push_back(new MonElemContainer<OffEle>());
24  //---Morse-------
25  //eleMonElems_.push_back(new MonElemContainer<OffEle>("_cut"," cut, debug hists ",new EgHLTDQMVarCut<OffEle>(~0x0,&OffEle::cutCode)));
26  //-----------------
27  if(doChargeSep){
28  eleMonElems_.push_back(new MonElemContainer<OffEle>("_posCharge"," q=+1 ",new ChargeCut<OffEle>(1)));
29  eleMonElems_.push_back(new MonElemContainer<OffEle>("_negCharge"," q=-1 ",new ChargeCut<OffEle>(-1)));
30  }
31  for(size_t i=0;i<eleMonElems_.size();i++){
32  monElemFuncs.initStdEleHists(eleMonElems_[i]->monElems(),filterName,filterName_+"_gsfEle_passFilter"+eleMonElems_[i]->name(),bins);
33  }
34 
35  if(monHLTFailedEle){
37  if(doChargeSep) {
38  eleFailMonElems_.push_back(new MonElemContainer<OffEle>("_posCharge"," q=+1 ",new ChargeCut<OffEle>(1)));
39  eleFailMonElems_.push_back(new MonElemContainer<OffEle>("_negCharge"," q=-1 ",new ChargeCut<OffEle>(-1)));
40  }
41  }
42  for(size_t i=0;i<eleFailMonElems_.size();i++){
43  monElemFuncs.initStdEleHists(eleFailMonElems_[i]->monElems(),filterName,filterName_+"_gsfEle_failFilter"+eleMonElems_[i]->name(),bins);
44  }
45 
46 
47  int effProbeCutCode = masks.probeEle;
48  int effTagCutCode = masks.stdEle;
49  int fakeRateProbeCut = masks.fakeEle;
50  eleEffHists_.push_back(new MonElemContainer<OffEle>());
51  if(doTagAndProbe) eleEffHists_.push_back(new MonElemContainer<OffEle>("_tagProbe"," Tag and Probe ",new EgTagProbeCut<OffEle>(effProbeCutCode,&OffEle::cutCode,effTagCutCode,&OffEle::cutCode)));
52  if(doFakeRate) eleEffHists_.push_back(new MonElemContainer<OffEle>("_fakeRate"," Fake Rate ",new EgJetTagProbeCut<OffEle>(fakeRateProbeCut,&OffEle::looseCutCode)));
53  if(doN1andSingleEffs){
54  for(size_t i=0;i<eleEffHists_.size();i++){
55  monElemFuncs.initStdEffHists(eleEffHists_[i]->cutMonElems(),filterName,
56  filterName_+"_gsfEle_effVsEt"+eleEffHists_[i]->name(),bins.et,&OffEle::et,masks);
57  monElemFuncs.initStdEffHists(eleEffHists_[i]->cutMonElems(),filterName,
58  filterName_+"_gsfEle_effVsEta"+eleEffHists_[i]->name(),bins.eta,&OffEle::eta,masks);
59  /* monElemFuncs.initStdEffHists(eleEffHists_[i]->cutMonElems(),filterName,
60  filterName_+"_gsfEle_effVsPhi"+eleEffHists_[i]->name(),bins.phi,&OffEle::phi,masks); */
61  // monElemFuncs.initStdEffHists(eleEffHists_[i]->cutMonElems(),filterName,
62  // filterName_+"_gsfEle_effVsCharge"+eleEffHists_[i]->name(),bins.charge,&OffEle::chargeF);
63  }
64  }
65  typedef MonElemManager<ParticlePair<OffEle>,float > DiEleMon;
66  diEleMassBothME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_bothPassFilter_mass",
67  filterName_+"_diEle_bothPassFilter Mass;M_{ee} (GeV/c^{2})",
69  diEleMassOnlyOneME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_onlyOnePass Filter_mass",
70  filterName_+"_diEle_onlyOnePassFilter Mass;M_{ee} (GeV/c^{2})",
72 
73  diEleMassBothHighME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_bothPassFilter_massHigh",
74  filterName_+"_diEle_bothPassFilter Mass;M_{ee} (GeV/c^{2})",
76  diEleMassOnlyOneHighME_ = new DiEleMon(monElemFuncs.getIB(), filterName_+"_diEle_onlyOnePassFilter_massHigh",
77  filterName_+"_diEle_onlyOnePassFilter Mass;M_{ee} (GeV/c^{2})",
79 
80 }
int i
Definition: DBlmapReader.cc:9
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
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 82 of file EgHLTEleHLTFilterMon.cc.

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

83 {
84  for(size_t i=0;i<eleMonElems_.size();i++) delete eleMonElems_[i];
85  for(size_t i=0;i<eleFailMonElems_.size();i++) delete eleFailMonElems_[i];
86  for(size_t i=0;i<eleEffHists_.size();i++) delete eleEffHists_[i];
87  delete diEleMassBothME_;
88  delete diEleMassOnlyOneME_;
89  delete diEleMassBothHighME_;
91 }
int i
Definition: DBlmapReader.cc:9
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 94 of file EgHLTEleHLTFilterMon.cc.

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

95 {
96  for(size_t eleNr=0;eleNr<evt.eles().size();eleNr++){
97  const OffEle& ele = evt.eles()[eleNr];
98  if((ele.trigBits()&filterBit_)!=0){ //ele passes
99  for(size_t monElemNr=0;monElemNr<eleMonElems_.size();monElemNr++) eleMonElems_[monElemNr]->fill(ele,evt,weight);
100  for(size_t monElemNr=0;monElemNr<eleEffHists_.size();monElemNr++) eleEffHists_[monElemNr]->fill(ele,evt,weight);
101  }else { //ele didnt pass trigger
102  for(size_t monElemNr=0;monElemNr<eleFailMonElems_.size();monElemNr++) eleFailMonElems_[monElemNr]->fill(ele,evt,weight);
103  }
104  }//end loop over electrons
105 
106  if((evt.evtTrigBits()&filterBit_)!=0){
107  for(size_t ele1Nr=0;ele1Nr<evt.eles().size();ele1Nr++){
108  for(size_t ele2Nr=ele1Nr+1;ele2Nr<evt.eles().size();ele2Nr++){
109  const OffEle& ele1 = evt.eles()[ele1Nr];
110  const OffEle& ele2 = evt.eles()[ele2Nr];
111 
112  if((ele1.trigBits()&ele2.trigBits()&filterBit_)==filterBit_) {
113  diEleMassBothME_->fill(ParticlePair<OffEle>(ele1,ele2),weight);
115  }else if((ele1.trigBits()&filterBit_)==filterBit_ ||
116  (ele2.trigBits()&filterBit_)==filterBit_){
119  }
120 
121 
122  }//end inner ele loop
123  }//end outer ele loop
124  }//end check if filter is present
125 }
const TrigCodes::TrigBitSet filterBit_
std::vector< MonElemContainer< OffEle > * > eleMonElems_
TrigCodes::TrigBitSet trigBits() const
Definition: EgHLTOffEle.h:219
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneHighME_
TrigCodes::TrigBitSet evtTrigBits() const
Definition: EgHLTOffEvt.h:50
void fill(const OffEvt &evt, float weight)
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:46
MonElemManagerBase< ParticlePair< OffEle > > * diEleMassOnlyOneME_
const std::string& egHLT::EleHLTFilterMon::filterName ( ) const
inline

Definition at line 88 of file EgHLTEleHLTFilterMon.h.

References filterName_.

Referenced by egHLT::EleHLTFilterMon::ptrCompStr::operator()().

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

Definition at line 86 of file EgHLTEleHLTFilterMon.h.

References filterName_.

86 {return filterName_<rhs.filterName_;}
EleHLTFilterMon& egHLT::EleHLTFilterMon::operator= ( const EleHLTFilterMon )
inlineprivate

Definition at line 77 of file EgHLTEleHLTFilterMon.h.

77 {return *this;}

Member Data Documentation

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

Definition at line 72 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 70 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 73 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 71 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 65 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 67 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 66 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 58 of file EgHLTEleHLTFilterMon.h.

Referenced by fill().

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

Definition at line 57 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 62 of file EgHLTEleHLTFilterMon.h.