00001 00007 #ifndef VALIDATIONTREE_H 00008 #define VALIDATIONTREE_H 00009 00010 #include "TFile.h" 00011 #include "TTree.h" 00012 00013 #include <iostream> 00014 00015 #define MaxSimHitEntries 100000 00017 #define MaxOpticalPhoton 100000 00018 00019 class ValidationTree 00020 { 00021 public: 00022 ValidationTree(); 00023 ~ValidationTree(); 00024 00025 public: 00026 int create();//const char* filename = "noname.root"); 00027 int reset(); 00028 int fill(); 00029 int close(); 00030 00032 public: 00033 00036 int SimHitsEntries; 00037 00038 double hitTime[MaxSimHitEntries]; 00039 double hitx[MaxSimHitEntries]; 00040 double hity[MaxSimHitEntries]; 00041 double hitz[MaxSimHitEntries]; 00042 int sensID[MaxSimHitEntries]; 00043 int ancestorPdg[MaxSimHitEntries]; 00044 double wavelength[MaxSimHitEntries]; 00045 double polx[MaxSimHitEntries]; 00046 double poly[MaxSimHitEntries]; 00047 double polz[MaxSimHitEntries]; 00048 double px[MaxSimHitEntries]; 00049 double py[MaxSimHitEntries]; 00050 double pz[MaxSimHitEntries]; 00051 float weight[MaxSimHitEntries]; 00052 00054 double MuonPx, MuonPy, MuonPz; 00055 double MuonX, MuonY, MuonZ; 00056 double MuonTime; 00057 double MuonE; 00058 double MuonTrkLengthInOws; 00059 double MuonTrkLengthInIws; 00060 double MuonTrkLengthInLS; 00061 double MuonTrkLengthInGdLS; 00062 double dEInn; 00063 double dEOut; 00064 int StopFlag; 00065 00066 /* Energy deposit information */ 00067 00068 double EDepInGdLS; 00069 double EDepInLS; 00070 double EDepInIAV; // place holder 00071 double EDepInOAV; // place holder 00072 double EDepInOIL; 00073 00074 double QEDepInGdLS; 00075 double QEDepInLS; 00076 double QEDepInIAV; // place holder 00077 double QEDepInOAV; // place holder 00078 double QEDepInOIL; 00079 00080 double tQESumGdLS; 00081 double xQESumGdLS; 00082 double yQESumGdLS; 00083 double zQESumGdLS; 00084 00085 double tQESumLS; 00086 double xQESumLS; 00087 double yQESumLS; 00088 double zQESumLS; 00089 00090 double tQESumMO; 00091 double xQESumMO; 00092 double yQESumMO; 00093 double zQESumMO; 00094 00095 double tCtrQE; // GdLS & LS only 00096 double xCtrQE; // GdLS & LS only 00097 double yCtrQE; // GdLS & LS only 00098 double zCtrQE; // GdLS & LS only 00099 00100 /* Neutron information */ 00101 00102 double t_gen; 00103 double x_gen; 00104 double y_gen; 00105 double z_gen; 00106 00107 double t_cap; 00108 double x_cap; 00109 double y_cap; 00110 double z_cap; 00111 00112 int capTarget; 00113 00115 int pdgId_Trk1; 00116 00117 double t_Trk1; 00118 double x_Trk1; 00119 double y_Trk1; 00120 double z_Trk1; 00121 00122 double e_Trk1; 00123 double px_Trk1; 00124 double py_Trk1; 00125 double pz_Trk1; 00126 00127 double ke_Trk1; // kinematic energy 00128 00129 double tEnd_Trk1; 00130 double xEnd_Trk1; 00131 double yEnd_Trk1; 00132 double zEnd_Trk1; 00133 00134 double TrkLength_GD_Trk1; // pathlength in GDLS 00135 double TrkLength_iAV_Trk1; // in inner AV 00136 double TrkLength_LS_Trk1; // in LS 00137 double TrkLength_oAV_Trk1; // in outer AV 00138 double TrkLength_Oil_Trk1; // in oil 00139 00141 int pdgId_Trk2; 00142 00143 double t_Trk2; 00144 double x_Trk2; 00145 double y_Trk2; 00146 double z_Trk2; 00147 00148 double e_Trk2; 00149 double px_Trk2; 00150 double py_Trk2; 00151 double pz_Trk2; 00152 00153 double ke_Trk2; // kinematic energy 00154 00155 double tEnd_Trk2; 00156 double xEnd_Trk2; 00157 double yEnd_Trk2; 00158 double zEnd_Trk2; 00159 00160 double TrkLength_GD_Trk2; // pathlength in GDLS 00161 double TrkLength_iAV_Trk2; // in inner AV 00162 double TrkLength_LS_Trk2; // in LS 00163 double TrkLength_oAV_Trk2; // in outer AV 00164 double TrkLength_Oil_Trk2; // in oil 00165 00167 int number_opti_pho; 00168 double wavelength_opti_pho[MaxOpticalPhoton]; 00169 00170 // In case needed 00171 double tBuff1; 00172 double xBuff1; 00173 double yBuff1; 00174 double zBuff1; 00175 00176 double tBuff2; 00177 double xBuff2; 00178 double yBuff2; 00179 double zBuff2; 00180 00181 private: 00182 TTree* m_tree; 00183 00184 }; 00185 00186 00187 #endif // VALIDATIONTREE_H