CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DQMOffline/Trigger/interface/EgHLTOffEgSel.h

Go to the documentation of this file.
00001 #ifndef  DQMOFFLINE_TRIGGER_EGHLTOFFEGSEL
00002 #define  DQMOFFLINE_TRIGGER_EGHLTOFFEGSEL
00003 
00004 //this class works out which cuts the electron/photon passes/fails
00005 //why am I rolling my own, simply put there is no electron/photon cut class that I know off
00006 //which will allow isolation and id variables to be cut on at the same time and return
00007 //a int with the bits corresponding to cut pass/fail
00008 //also I'm going to need to modify this to keep up with trigger cuts
00009 #include "DQMOffline/Trigger/interface/EgHLTOffEle.h"
00010 #include "DQMOffline/Trigger/interface/EgHLTEgCutValues.h"
00011 
00012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00013 
00014 #include <iostream>
00015 
00016 namespace edm{
00017   class ParameterSet;
00018 }
00019 
00020 namespace egHLT {
00021   class OffEle;
00022   class OffPho;
00023 
00024   class OffEgSel  {
00025     
00026  private:
00027 
00028     EgCutValues ebCutValues_;
00029     EgCutValues eeCutValues_;
00030     
00031   public:
00032     OffEgSel(){}//default, it doesnt to anything
00033     explicit OffEgSel(const edm::ParameterSet& config){setup(config);}
00034     ~OffEgSel(){} //we own nothing so default destructor, copy and assignment okay
00035     
00036      
00037     bool passCuts(const OffEle& ele,int cutMask=~0x0)const{return getCutCode(ele,cutMask)==0x0;}
00038     int getCutCode(const OffEle& ele,int cutMask=~0x0)const;  
00039     static int getCutCode(const OffEle& ele,const EgCutValues& cuts,int cutMask=~0x0);
00040     
00041     bool passCuts(const OffPho& pho,int cutMask=~0x0)const{return getCutCode(pho,cutMask)==0x0;}
00042     int getCutCode(const OffPho& pho,int cutMask=~0x0)const;
00043     static int getCutCode(const OffPho& pho,const EgCutValues& cuts,int cutMask=~0x0);
00044 
00045     void setEBCuts(const EgCutValues& cuts){ebCutValues_=cuts;}
00046     void setEECuts(const EgCutValues& cuts){eeCutValues_=cuts;}
00047     
00048     const EgCutValues& ebCuts()const{return ebCutValues_;}
00049     const EgCutValues& eeCuts()const{return eeCutValues_;}
00050     
00051     void setup(const edm::ParameterSet&);
00052     
00053     
00054   };
00055 }
00056 
00057 #endif