SusyNtuple
|
00001 // Dear emacs, this is -*- c++ -*- 00002 #ifndef SUSYNTUPLE_EVENT_H 00003 #define SUSYNTUPLE_EVENT_H 00004 00005 #include "SusyNtuple/SusyNtSys.h" 00006 #include "SusyNtuple/SusyDefs.h" // DataStream 00007 00008 #include "TBits.h" 00009 #include "TObject.h" 00010 00011 namespace Susy 00012 { 00013 00015 class Event: public TObject 00016 { 00017 public: 00018 Event() : 00019 trigBits(m_nTriggerBits) 00020 { 00021 clear(); 00022 } 00023 virtual ~Event(){}; 00024 00025 unsigned int run; 00026 unsigned int eventNumber; 00027 unsigned int lb; 00028 DataStream stream; 00029 00030 bool isMC; 00031 unsigned int mcChannel; 00032 float w; 00033 uint64_t initialNumberOfEvents; 00034 double sumOfEventWeights; 00035 double sumOfEventWeightsSquared; 00036 00037 unsigned int larError; 00038 00039 unsigned int nVtx; 00040 float avgMu; 00041 00042 int hfor; 00043 00044 int susyFinalState; 00045 int hDecay; 00046 bool eventWithSusyProp; 00047 00048 int susySpartId1; 00049 int susySpartId2; 00050 00051 float mllMcTruth; 00052 bool passMllForAlpgen; 00053 00054 //unsigned int trigFlags; ///< Event level trigger bits 00055 long long trigFlags; 00056 00057 TBits trigBits; 00058 static const size_t m_nTriggerBits=64; 00059 00061 00062 bool passTrig(long long mask, bool requireAll=true) const { 00063 if(requireAll) return (trigFlags & mask) == mask; 00064 else return mask == 0 || (trigFlags & mask) != 0; 00065 } 00066 00067 // Event Flag to check for LAr, bad jet, etc. List found in SusyDefs.h under EventCheck 00068 // Use cutFlags instead 00069 //int evtFlag[NtSys_N]; 00070 00072 unsigned int cutFlags[NtSys::SYS_UNKNOWN]; 00073 00074 // Reweighting and scaling 00075 float wPileup; 00076 float wPileup_up; 00077 float wPileup_dn; 00078 float wPileupAB3; 00079 float wPileupAB; 00080 float wPileupIL; 00081 float wPileupAE; 00082 float xsec; 00083 float errXsec; 00084 float sumw; 00085 float pdfSF; 00086 00088 int pdf_id1; 00089 int pdf_id2; 00090 float pdf_x1; 00091 float pdf_x2; 00092 float pdf_scale; 00093 00094 float eventScale; 00095 float alphaQCD; 00096 float alphaQED; 00097 00099 void print() const; 00100 00102 void clear(){ 00103 run = eventNumber = lb = 0; 00104 stream = Stream_Unknown; 00105 isMC = false; 00106 mcChannel = w = 0; 00107 initialNumberOfEvents = sumOfEventWeights = sumOfEventWeightsSquared = 0; 00108 larError = 0; 00109 nVtx = avgMu = trigFlags = 0; 00110 hfor = -1; 00111 susyFinalState = 0; 00112 mllMcTruth = -1.0; 00113 hDecay = -1; 00114 eventWithSusyProp = false; 00115 susySpartId1 = susySpartId2 = 0; 00116 passMllForAlpgen = true; 00117 //memset(evtFlag,0,sizeof(evtFlag)); 00118 memset(cutFlags,0,sizeof(cutFlags)); 00119 wPileup = wPileup_up = wPileup_dn = wPileupAB3 = wPileupAB = wPileupIL = wPileupAE = 0; 00120 xsec = errXsec = sumw = pdfSF = 0; 00121 pdf_id1 = pdf_id2 = pdf_x1 = pdf_x2 = pdf_scale = 0; 00122 eventScale = alphaQCD = alphaQED = 0; 00123 } 00124 00125 ClassDef(Event, 31); 00126 }; 00127 } // Susy 00128 #endif