00001 #ifndef __TELECTRONMULTILEPTONSELECTOR__
00002 #define __TELECTRONMULTILEPTONSELECTOR__
00003
00013
00014 #include <TString.h>
00015
00016 #include "PATCore/TAccept.h"
00017 #include "PATCore/TSelectorToolBase.h"
00018 #include "AsgTools/AsgMessaging.h"
00019
00020
00021 namespace Root {
00022 class TElectronMultiLeptonSelector : public TSelectorToolBase,public asg::AsgMessaging
00023 {
00024
00025 public:
00027 TElectronMultiLeptonSelector(const char* name="TElectronMultiLeptonSelector");
00028
00030 ~TElectronMultiLeptonSelector();
00031
00032
00033
00034 public:
00036 int initialize();
00037
00039 inline int finalize() { return 1; };
00040
00042 const Root::TAccept& accept( const double eta,
00043 const double eT,
00044 const double rHad,
00045 const double rHad1,
00046 const double Reta,
00047 const double w2,
00048 const double f1,
00049 const double f3,
00050 const double wstot,
00051 const double DEmaxs1,
00052 const double deltaEta,
00053 const int nSi,
00054 const int nSiDeadSensors,
00055 const int nPix,
00056 const int nPixDeadSensors,
00057 const double deltaPhiRes,
00058 const double dpOverp,
00059 const double TRratio,
00060 const int nTRTTotal,
00061 const int nBlayerHits,
00062 const bool expectBlayer
00063 ) const;
00064
00065
00066
00067 private:
00068 bool passRHad(double rhad, double rhad1, unsigned int etbin, unsigned int etabin) const;
00069 bool passF3(double f3, unsigned int etbin, unsigned int etabin) const;
00070 bool passReta(double reta, unsigned int etbin, unsigned int etabin)const ;
00071 bool passW2(double w2, unsigned int etbin, unsigned int etabin) const ;
00072 bool passWstot(double wstot, unsigned int etbin, unsigned int etabin) const ;
00073 bool passEratio(double demaxs1, unsigned int etbin, unsigned int etabin) const ;
00074 bool passDeltaEta(double deltaEta, unsigned int etbin, unsigned int etabin) const ;
00075 bool passDeltaPhiRes(double deltaPhiRes, bool isBrem, unsigned int etbin, unsigned int etabin) const ;
00076 bool passTR(double TRratio, double eta, unsigned int nTRTTotal ) const ;
00077 bool passTightDeltaPhi(double deltaPhiRes,
00078 bool expectBlayer, int nBlayerHits,
00079 unsigned int eTBin, unsigned int etaBin) const ;
00080
00081
00082 unsigned int getEtaBinH4l(double eta) const ;
00083 unsigned int getEtBinH4l(double eT) const ;
00084 bool getBremCategoryH4l( double dpOverp, unsigned int etbin, unsigned int etabin) const ;
00085
00086
00087
00088 private:
00089 const double GeV;
00090
00091 int m_cutPosition_Coverage;
00092 int m_cutPosition_RHad;
00093 int m_cutPosition_F3;
00094 int m_cutPosition_Reta;
00095 int m_cutPosition_W2;
00096 int m_cutPosition_Wstot;
00097 int m_cutPosition_Eratio;
00098 int m_cutPosition_DeltaEta;
00099 int m_cutPosition_DeltaPhiRes;
00100 int m_cutPosition_NSilicon;
00101 int m_cutPosition_NPixel;
00102 int m_cutPosition_NBlayer;
00103 int m_cutPosition_TR;
00104 int m_cutPosition_TightDeltaPhi;
00105
00106 };
00107
00108 }
00109
00110 #endif
00111