00001 #ifndef Demo_PFRootEvent_PFRootEventManagerColin_h 00002 #define Demo_PFRootEvent_PFRootEventManagerColin_h 00003 00004 #include "RecoParticleFlow/PFRootEvent/interface/PFRootEventManager.h" 00005 00006 class NeutralEvent { 00007 public: 00008 NeutralEvent() { 00009 reset(); 00010 } 00011 00012 virtual ~NeutralEvent() {}; 00013 00014 virtual void reset() { 00015 eECAL = -1; 00016 eHCAL = -1; 00017 eNeutral = -1; 00018 etaECAL = -10; 00019 etaHCAL = -10; 00020 etaNeutral = -10; 00021 nECAL = -1; 00022 nHCAL = -1; 00023 rCode = 0; 00024 } 00025 00026 double eECAL; 00027 double eHCAL; 00028 double eNeutral; 00029 double etaECAL; 00030 double etaHCAL; 00031 double etaNeutral; 00032 int nECAL; 00033 int nHCAL; 00034 int rCode; 00035 }; 00036 00037 00038 class TauEvent : public NeutralEvent { 00039 public: 00040 TauEvent() : 00041 NeutralEvent() { 00042 reset(); 00043 } 00044 00045 virtual ~TauEvent() {}; 00046 00047 void reset() { 00048 NeutralEvent::reset(); 00049 pTrack = -1; 00050 ptTrack = -1; 00051 etaTrack = -10; 00052 pHadron = -1; 00053 eEcalHadron = -1; 00054 chi2ECAL = -1; 00055 } 00056 00057 00058 double pTrack; 00059 double ptTrack; 00060 double etaTrack; 00061 double pHadron; 00062 double eEcalHadron; 00063 double chi2ECAL; 00064 }; 00065 00066 00067 class PFRootEventManagerColin : public PFRootEventManager { 00068 00069 public: 00070 PFRootEventManagerColin(const char* file); 00071 00072 ~PFRootEventManagerColin(); 00073 00074 void readSpecificOptions(const char* file); 00075 00076 bool processEntry(int entry); 00077 bool processNeutral(); 00078 bool processHIGH_E_TAUS(); 00079 00080 00081 void write(); 00082 00083 00084 enum Mode { 00085 Neutral=0, 00086 HIGH_E_TAUS=1 00087 }; 00088 00089 TTree *outTreeMy_; 00090 NeutralEvent *neutralEvent_; 00091 TauEvent *tauEvent_; 00092 int mode_; 00093 }; 00094 00095 #endif