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 (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 39 of file EgHLTEleHLTFilterMon.h.

Constructor & Destructor Documentation

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

Definition at line 75 of file EgHLTEleHLTFilterMon.h.

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

Definition at line 14 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_, 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.

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

Definition at line 83 of file EgHLTEleHLTFilterMon.cc.

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

84 {
85  for(size_t i=0;i<eleMonElems_.size();i++) delete eleMonElems_[i];
86  for(size_t i=0;i<eleFailMonElems_.size();i++) delete eleFailMonElems_[i];
87  for(size_t i=0;i<eleEffHists_.size();i++) delete eleEffHists_[i];
88  delete diEleMassBothME_;
89  delete diEleMassOnlyOneME_;
90  delete diEleMassBothHighME_;
92 }
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 95 of file EgHLTEleHLTFilterMon.cc.

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

96 {
97  for(size_t eleNr=0;eleNr<evt.eles().size();eleNr++){
98  const OffEle& ele = evt.eles()[eleNr];
99  if((ele.trigBits()&filterBit_)!=0){ //ele passes
100  for(size_t monElemNr=0;monElemNr<eleMonElems_.size();monElemNr++) eleMonElems_[monElemNr]->fill(ele,evt,weight);
101  for(size_t monElemNr=0;monElemNr<eleEffHists_.size();monElemNr++) eleEffHists_[monElemNr]->fill(ele,evt,weight);
102  }else { //ele didnt pass trigger
103  for(size_t monElemNr=0;monElemNr<eleFailMonElems_.size();monElemNr++) eleFailMonElems_[monElemNr]->fill(ele,evt,weight);
104  }
105  }//end loop over electrons
106 
107  if((evt.evtTrigBits()&filterBit_)!=0){
108  for(size_t ele1Nr=0;ele1Nr<evt.eles().size();ele1Nr++){
109  for(size_t ele2Nr=ele1Nr+1;ele2Nr<evt.eles().size();ele2Nr++){
110  const OffEle& ele1 = evt.eles()[ele1Nr];
111  const OffEle& ele2 = evt.eles()[ele2Nr];
112 
113  if((ele1.trigBits()&ele2.trigBits()&filterBit_)==filterBit_) {
114  diEleMassBothME_->fill(ParticlePair<OffEle>(ele1,ele2),weight);
116  }else if((ele1.trigBits()&filterBit_)==filterBit_ ||
117  (ele2.trigBits()&filterBit_)==filterBit_){
120  }
121 
122 
123  }//end inner ele loop
124  }//end outer ele loop
125  }//end check if filter is present
126 }
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 87 of file EgHLTEleHLTFilterMon.h.

References filterName_.

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

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

Definition at line 85 of file EgHLTEleHLTFilterMon.h.

References filterName_.

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

Definition at line 76 of file EgHLTEleHLTFilterMon.h.

76 {return *this;}

Member Data Documentation

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

Definition at line 71 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 69 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 72 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 70 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 64 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 66 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 65 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 57 of file EgHLTEleHLTFilterMon.h.

Referenced by fill().

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

Definition at line 56 of file EgHLTEleHLTFilterMon.h.

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

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

Definition at line 61 of file EgHLTEleHLTFilterMon.h.