SusyNtuple
SusyNtuple/Event.h
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
 All Classes Functions Variables Typedefs Enumerations Enumerator