SusyNtuple
|
00001 // -*- c++ -*- 00002 #ifndef SUSYNTUPLE_OVERLAPTOOLS_H 00003 #define SUSYNTUPLE_OVERLAPTOOLS_H 00004 00005 #include "SusyNtuple/SusyDefs.h" 00006 #include "SusyNtuple/SusyNt.h" 00007 #include "SusyNtuple/AnalysisType.h" 00008 #include "SusyNtuple/Isolation.h" 00009 00010 namespace Susy { 00011 00013 00028 class OverlapTools 00029 { 00030 public : 00032 00036 static OverlapTools* build(const AnalysisType &a, bool verbose); 00037 OverlapTools(); 00038 virtual ~OverlapTools(){}; 00039 // main overlap removal function, performs all removals 00043 virtual void performOverlap(ElectronVector& electrons, MuonVector& muons, 00044 TauVector& taus, JetVector& jets); 00045 virtual void j_e_overlap(ElectronVector& electrons, JetVector& jets, double dR); 00046 virtual void e_j_overlap(ElectronVector& electrons, JetVector& jets, double dR); 00047 virtual void m_j_overlap(MuonVector& muons, JetVector& jets, double dR); 00048 virtual void e_m_overlap(ElectronVector& electrons, MuonVector& muons, double dR); 00049 virtual void e_e_overlap(ElectronVector& electrons, double dR); 00050 virtual void m_m_overlap(MuonVector& muons, double dR); 00051 virtual void t_e_overlap(TauVector& taus, ElectronVector& electrons, double dR); 00052 virtual void t_m_overlap(TauVector& taus, MuonVector& muons, double dR); 00053 virtual void j_t_overlap(TauVector& taus, JetVector& jets, double dR); 00054 00055 00064 virtual void removeNonisolatedLeptons(ElectronVector& electrons, MuonVector& muons); 00066 OverlapTools& setElectronIsolation( Isolation eleIso ) { m_electronIsolation = eleIso; return *this; } 00068 OverlapTools& setMuonIsolation( Isolation muIso ) { m_muonIsolation = muIso; return *this; } 00070 bool leptonPassesIsolation(const Lepton* lep, const Isolation &iso); 00071 00072 protected : 00073 Isolation m_electronIsolation; 00074 Isolation m_muonIsolation; 00075 bool m_verbose; 00076 }; // class OverlapTools 00077 00078 //---------------------------------------------------------- 00079 // 00080 // End generic selector, begin analysis-specific ones 00081 // 00082 //---------------------------------------------------------- 00083 00085 class OverlapTools_2Lep : public OverlapTools 00086 { 00087 }; 00089 class OverlapTools_3Lep : public OverlapTools 00090 { 00091 }; 00092 00094 class OverlapTools_2LepWH : public OverlapTools 00095 { 00096 }; 00097 00099 class OverlapTools_SS3L: public OverlapTools { 00101 virtual void j_e_overlap(ElectronVector& electrons, JetVector& jets, double dR); 00102 }; 00103 00105 class OverlapTools_Stop2L : public OverlapTools 00106 { 00107 }; 00108 00109 00110 00111 } 00112 00113 00114 00115 00116 00117 00118 00119 #endif