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 void reset() { 00013 eECAL = -1; 00014 eHCAL = -1; 00015 eNeutral = -1; 00016 etaECAL = -10; 00017 etaHCAL = -10; 00018 etaNeutral = -10; 00019 nECAL = -1; 00020 nHCAL = -1; 00021 rCode = 0; 00022 } 00023 00024 double eECAL; 00025 double eHCAL; 00026 double eNeutral; 00027 double etaECAL; 00028 double etaHCAL; 00029 double etaNeutral; 00030 int nECAL; 00031 int nHCAL; 00032 int rCode; 00033 }; 00034 00035 00036 class TauEvent : public NeutralEvent { 00037 public: 00038 TauEvent() : 00039 NeutralEvent() { 00040 reset(); 00041 } 00042 00043 void reset() { 00044 NeutralEvent::reset(); 00045 pTrack = -1; 00046 ptTrack = -1; 00047 etaTrack = -10; 00048 pHadron = -1; 00049 eEcalHadron = -1; 00050 chi2ECAL = -1; 00051 } 00052 00053 00054 double pTrack; 00055 double ptTrack; 00056 double etaTrack; 00057 double pHadron; 00058 double eEcalHadron; 00059 double chi2ECAL; 00060 }; 00061 00062 00063 class PFRootEventManagerColin : public PFRootEventManager { 00064 00065 public: 00066 PFRootEventManagerColin(const char* file); 00067 00068 ~PFRootEventManagerColin(); 00069 00070 void readSpecificOptions(const char* file); 00071 00072 bool processEntry(int entry); 00073 bool processNeutral(); 00074 bool processHIGH_E_TAUS(); 00075 00076 00077 void write(); 00078 00079 00080 enum Mode { 00081 Neutral=0, 00082 HIGH_E_TAUS=1 00083 }; 00084 00085 TTree *outTreeMy_; 00086 NeutralEvent *neutralEvent_; 00087 TauEvent *tauEvent_; 00088 int mode_; 00089 }; 00090 00091 #endif