SusyNtuple
|
00001 // -*- c++ -*- 00002 #ifndef SUSY_JETSELECTOR_H 00003 #define SUSY_JETSELECTOR_H 00004 00005 #include "SusyNtuple/SusyNtSys.h" 00006 #include "SusyNtuple/AnalysisType.h" 00007 #include "SusyNtuple/SusyDefs.h" // JetVector 00008 00009 namespace Susy { 00010 00011 class Jet; 00012 00014 00058 class JetSelector 00059 { 00060 public: 00062 00066 static JetSelector* build(const AnalysisType &a, bool verbose); 00067 00068 JetSelector(); 00069 virtual ~JetSelector() {}; 00070 JetSelector& setSystematic(const NtSys::SusyNtSys&); 00071 00072 virtual bool isB(const Jet* jet); 00073 virtual bool isCentralLight(const Jet* jet); 00074 virtual bool isCentralB(const Jet* jet); 00075 virtual bool isForward(const Jet* jet); 00077 virtual bool passJvt(const Jet* jet); 00078 00079 virtual bool isBaseline(const Jet* jet); 00080 virtual bool isSignal(const Jet* jet); 00081 00082 bool verbose() const { return m_verbose; } 00083 JetSelector& setVerbose(bool v) { m_verbose = v; return *this; } 00085 virtual size_t count_CL_jets(const JetVector &jets) /*const*/; 00087 virtual size_t count_CB_jets(const JetVector &jets) /*const*/; 00089 virtual size_t count_F_jets(const JetVector &jets) /*const*/; 00090 00092 00097 static float mv2c20_70efficiency() { return -0.0436; } 00098 static float mv2c20_77efficiency() { return -0.4434; } 00099 static float mv2c20_80efficiency() { return -0.5911; } 00100 00102 00106 static float overlapRemovalBtagEffWP() { return mv2c20_80efficiency(); } 00108 private: 00109 NtSys::SusyNtSys m_systematic; 00110 bool m_verbose; 00111 }; // class JetSelector 00112 00113 00114 //---------------------------------------------------------- 00115 // 00116 // End generic selector, begin analysis-specific ones 00117 // 00118 //---------------------------------------------------------- 00119 00121 class JetSelector_2Lep : public JetSelector 00122 { 00123 }; 00125 class JetSelector_3Lep : public JetSelector 00126 { 00127 }; 00128 00130 class JetSelector_2LepWH : public JetSelector 00131 { 00132 }; 00133 00135 class JetSelector_SS3L : public JetSelector 00136 { 00137 virtual bool isBaseline(const Jet* jet); 00138 virtual bool isSignal(const Jet* jet); 00139 virtual bool isB(const Jet* jet); 00140 }; 00141 00143 class JetSelector_Stop2L : public JetSelector 00144 { 00145 virtual bool isBaseline(const Jet* jet); 00146 virtual bool isSignal(const Jet* jet); 00147 }; 00148 00149 } // Susy 00150 00151 #endif