CMS 3D CMS Logo

EgHLTOffEleSel.h

Go to the documentation of this file.
00001 #ifndef  DQMOFFLINE_TRIGGER_EGHLTOFFELESEL
00002 #define  DQMOFFLINE_TRIGGER_EGHLTOFFELESEL
00003 
00004 //this class works out which cuts the electron passes/fails
00005 #include "DQMOffline/Trigger/interface/EgHLTOffEle.h"
00006 #include "DQMOffline/Trigger/interface/CutValues.h"
00007 
00008 #include <iostream>
00009 
00010 class EgHLTOffEleSel  {
00011 
00012  private:
00013 
00014   std::vector<CutValues> cutValues_;
00015   
00016  public:
00017   EgHLTOffEleSel();  
00018   EgHLTOffEleSel(const EgHLTOffEleSel& rhs):cutValues_(rhs.cutValues_){}
00019   ~EgHLTOffEleSel(){} 
00020 
00021   EgHLTOffEleSel& operator=(const EgHLTOffEleSel& rhs){cutValues_=rhs.cutValues_;return *this;}
00022 
00023   bool passCuts(const EgHLTOffEle& ele,int cutMask=~0x0)const{return getCutCode(ele,cutMask)==0x0;}
00024   int getCutCode(const EgHLTOffEle& ele,int cutMask=~0x0)const;
00025   
00026   static int getCutCode(const EgHLTOffEle& ele,const CutValues& cuts,int cutMask=~0x0);
00027 
00028   void addCuts(const CutValues& cuts){cutValues_.push_back(cuts);}
00029   CutValues& getCuts(int type); //gets the cuts appropriate to the type of the electron
00030   const CutValues& getCuts(int type)const;
00031   CutValues& getCutsByIndx(int cutNr){return cutValues_[cutNr];} 
00032   const CutValues& getCutsByIndx(int cutNr)const{return cutValues_[cutNr];}
00033   int nrCuts()const{return cutValues_.size();}
00034   
00035   void setHighNrgy();
00036   void setPreSel();
00037   void setPreSelWithEp();
00038   void setCutMask(int cutMask,int eleType=~0x0);
00039   void removeCuts(int cutCode,int eleType=~0x0);
00040   void setMinEt(float minEt,int eleType=~0x0);
00041  
00042   void clearCuts(){cutValues_.clear();}
00043  
00044 };
00045 
00046 #endif

Generated on Tue Jun 9 17:34:09 2009 for CMSSW by  doxygen 1.5.4