00001 #ifndef TOFCHECKDIGI_H 00002 #define TOFCHECKDIGI_H 00003 #include "EventModel/EventHeader.h" 00004 #include "ExtEvent/RecExtTrack.h" 00005 #include "TofRawEvent/TofDigi.h" 00006 #include "RawDataProviderSvc/TofData.h" 00007 #include "TofRec/TofTrack.h" 00008 #include "GaudiKernel/NTuple.h" 00009 #include "TrigEvent/TrigData.h" 00010 00011 #include "EventModel/EventModel.h" 00012 #include "McTruth/McEvent.h" 00013 #include "McTruth/TofMcHit.h" 00014 #include "McTruth/McParticle.h" 00015 00016 #include "MdcRecEvent/RecMdcTrack.h" 00017 #include "MdcRecEvent/RecMdcKalTrack.h" 00018 #include "EmcRecEventModel/RecEmcShower.h" 00019 00020 using namespace Event; 00021 class TofCheckDigi{ 00022 public: 00023 TofCheckDigi( NTuple::Tuple*& digi, NTuple::Tuple*& barrel, NTuple::Tuple*& endcap, NTuple::Tuple*& mrpc, NTuple::Tuple*& ext, NTuple::Tuple*& tof, NTuple::Tuple*& bhabha ); 00024 ~TofCheckDigi() {} 00025 00026 void Fill_Barrel( Event::EventHeader&, TofData*&, double, int ); 00027 void Fill_Endcap( Event::EventHeader&, TofData*&, double, int ); 00028 void Fill_MRPC( Event::EventHeader&, TofData*&, double, int ); 00029 void Fill( Event::EventHeader&, RecMdcTrack*&, RecMdcKalTrack*&, RecExtTrack*& ); 00030 void Fill_TofTrack( Event::EventHeader&, TofTrack*&, double, int ); 00031 void Fill_TofTrack( Event::EventHeader&, TofTrack*&, double, int, TrigData& ); 00032 void Fill_TofTrack( Event::EventHeader&, TofTrack*&, double, int, RecMdcKalTrackCol& ); 00033 void Fill_TofTrack( Event::EventHeader&, TofTrack*&, double, int, RecMdcKalTrackCol&, TofMcHitCol&, McParticleCol&, std::string ); 00034 00035 void FillCol( Event::EventHeader&, TofDigiCol&, double, int ); 00036 void FillCol( Event::EventHeader&, TofDataMap&, double, int ); 00037 void FillCol( Event::EventHeader&, TofDataVector&, double, int ); 00038 void FillCol( Event::EventHeader&, RecMdcTrackCol&, RecMdcKalTrackCol&, RecExtTrackCol& ); 00039 void FillCol( Event::EventHeader&, RecExtTrackCol&, RecMdcTrackCol&, RecEmcShowerCol&, RecMdcKalTrackCol& ); 00040 00041 private: 00042 NTuple::Tuple*& digi_tuple; 00043 NTuple::Item<int> digi_run; 00044 NTuple::Item<int> digi_event; 00045 NTuple::Item<int> digi_barrel; 00046 NTuple::Item<int> digi_endcap; 00047 NTuple::Item<int> digi_layer; 00048 NTuple::Item<int> digi_tofId; 00049 NTuple::Item<int> digi_strip; 00050 NTuple::Item<int> digi_end; 00051 NTuple::Item<double> digi_adc; 00052 NTuple::Item<double> digi_tdc; 00053 NTuple::Item<int> digi_qclock; 00054 NTuple::Item<int> digi_tclock; 00055 NTuple::Item<int> digi_overflow; 00056 NTuple::Item<int> digi_noq; 00057 NTuple::Item<int> digi_not; 00058 NTuple::Item<int> digi_multiq; 00059 NTuple::Item<int> digi_multit; 00060 NTuple::Item<int> digi_overq; 00061 NTuple::Item<int> digi_overt; 00062 NTuple::Item<double> digi_t0; 00063 NTuple::Item<int> digi_t0stat; 00064 NTuple::Item<int> digi_crate; 00065 NTuple::Item<int> digi_geo; 00066 NTuple::Item<int> digi_tdcnum; 00067 NTuple::Item<double> digi_err; 00068 00069 NTuple::Tuple*& barrel_tuple; 00070 NTuple::Item<int> barrel_run; 00071 NTuple::Item<int> barrel_event; 00072 NTuple::Item<int> barrel_tofId; 00073 NTuple::Item<int> barrel_tofTrackId; 00074 NTuple::Item<int> barrel_layer; 00075 NTuple::Item<double> barrel_qchannel1; 00076 NTuple::Item<double> barrel_tchannel1; 00077 NTuple::Item<double> barrel_qchannel2; 00078 NTuple::Item<double> barrel_tchannel2; 00079 NTuple::Item<double> barrel_qtc1; 00080 NTuple::Item<double> barrel_adc1; 00081 NTuple::Item<double> barrel_tdc1; 00082 NTuple::Item<double> barrel_qtc2; 00083 NTuple::Item<double> barrel_adc2; 00084 NTuple::Item<double> barrel_tdc2; 00085 NTuple::Item<int> barrel_qclock1; 00086 NTuple::Item<int> barrel_tclock1; 00087 NTuple::Item<int> barrel_qclock2; 00088 NTuple::Item<int> barrel_tclock2; 00089 NTuple::Item<int> barrel_quality; 00090 NTuple::Item<int> barrel_tmatched; 00091 NTuple::Item<int> barrel_qtimes1; 00092 NTuple::Item<int> barrel_ttimes1; 00093 NTuple::Item<int> barrel_qtimes2; 00094 NTuple::Item<int> barrel_ttimes2; 00095 NTuple::Item<int> barrel_times1; 00096 NTuple::Item<int> barrel_times2; 00097 NTuple::Item<int> barrel_times; 00098 NTuple::Item<int> barrel_qnum1; 00099 NTuple::Item<int> barrel_tnum1; 00100 NTuple::Item<int> barrel_qnum2; 00101 NTuple::Item<int> barrel_tnum2; 00102 NTuple::Item<double> barrel_tsum; 00103 NTuple::Item<double> barrel_tsub; 00104 NTuple::Item<double> barrel_ztdc; 00105 NTuple::Item<double> barrel_zadc; 00106 NTuple::Item<double> barrel_t0; 00107 NTuple::Item<int> barrel_t0stat; 00108 00109 NTuple::Tuple*& endcap_tuple; 00110 NTuple::Item<int> endcap_run; 00111 NTuple::Item<int> endcap_event; 00112 NTuple::Item<int> endcap_tofId; 00113 NTuple::Item<int> endcap_tofTrackId; 00114 NTuple::Item<double> endcap_qchannel; 00115 NTuple::Item<double> endcap_tchannel; 00116 NTuple::Item<double> endcap_qtc; 00117 NTuple::Item<double> endcap_adc; 00118 NTuple::Item<double> endcap_tdc; 00119 NTuple::Item<int> endcap_quality; 00120 NTuple::Item<int> endcap_qclock; 00121 NTuple::Item<int> endcap_tclock; 00122 NTuple::Item<int> endcap_qtimes; 00123 NTuple::Item<int> endcap_ttimes; 00124 NTuple::Item<int> endcap_times; 00125 NTuple::Item<int> endcap_qnum; 00126 NTuple::Item<int> endcap_tnum; 00127 NTuple::Item<double> endcap_t0; 00128 NTuple::Item<int> endcap_t0stat; 00129 00130 NTuple::Tuple*& mrpc_tuple; 00131 NTuple::Item<int> mrpc_run; 00132 NTuple::Item<int> mrpc_event; 00133 NTuple::Item<int> mrpc_tofId; 00134 NTuple::Item<int> mrpc_strip; 00135 NTuple::Item<int> mrpc_tofTrackId; 00136 NTuple::Item<double> mrpc_ttch1; 00137 NTuple::Item<double> mrpc_tlch1; 00138 NTuple::Item<double> mrpc_ttch2; 00139 NTuple::Item<double> mrpc_tlch2; 00140 NTuple::Item<double> mrpc_tt1; 00141 NTuple::Item<double> mrpc_tl1; 00142 NTuple::Item<double> mrpc_tt2; 00143 NTuple::Item<double> mrpc_tl2; 00144 NTuple::Item<double> mrpc_tot1; 00145 NTuple::Item<double> mrpc_tot2; 00146 NTuple::Item<int> mrpc_quality; 00147 NTuple::Item<int> mrpc_tmatched; 00148 NTuple::Item<int> mrpc_tttimes1; 00149 NTuple::Item<int> mrpc_tltimes1; 00150 NTuple::Item<int> mrpc_tttimes2; 00151 NTuple::Item<int> mrpc_tltimes2; 00152 NTuple::Item<int> mrpc_times1; 00153 NTuple::Item<int> mrpc_times2; 00154 NTuple::Item<int> mrpc_times; 00155 NTuple::Item<int> mrpc_ttnum1; 00156 NTuple::Item<int> mrpc_tlnum1; 00157 NTuple::Item<int> mrpc_ttnum2; 00158 NTuple::Item<int> mrpc_tlnum2; 00159 NTuple::Item<double> mrpc_tsum; 00160 NTuple::Item<double> mrpc_tsub; 00161 NTuple::Item<double> mrpc_ztdc; 00162 NTuple::Item<double> mrpc_zadc; 00163 NTuple::Item<double> mrpc_t0; 00164 NTuple::Item<int> mrpc_t0stat; 00165 00166 NTuple::Tuple*& ext_tuple; 00167 NTuple::Item<int> ext_run; 00168 NTuple::Item<int> ext_event; 00169 NTuple::Item<int> ext_trackid; 00170 NTuple::Item<double> ext_costheta; 00171 NTuple::Array<int> ext_kalman; 00172 NTuple::Array<double> ext_x1; 00173 NTuple::Array<double> ext_x2; 00174 NTuple::Array<double> ext_y1; 00175 NTuple::Array<double> ext_y2; 00176 NTuple::Array<double> ext_z1; 00177 NTuple::Array<double> ext_z2; 00178 NTuple::Array<int> ext_tofid1; 00179 NTuple::Array<int> ext_tofid2; 00180 NTuple::Array<int> ext_strip1; 00181 NTuple::Array<int> ext_strip2; 00182 NTuple::Item<double> ext_p; 00183 NTuple::Array<double> ext_texp1; 00184 NTuple::Array<double> ext_texp2; 00185 NTuple::Array<double> ext_path1; 00186 NTuple::Array<double> ext_path2; 00187 NTuple::Array<double> ext_zrhit1; 00188 NTuple::Array<double> ext_zrhit2; 00189 NTuple::Array<double> ext_errzr1; 00190 NTuple::Array<double> ext_errzr2; 00191 NTuple::Array<double> ext_theta1; 00192 NTuple::Array<double> ext_theta2; 00193 NTuple::Array<double> ext_phi1; 00194 NTuple::Array<double> ext_phi2; 00195 NTuple::Array<int> ext_hitcase1; 00196 NTuple::Array<int> ext_hitcase2; 00197 NTuple::Array<int> ext_hitcase; 00198 NTuple::Array<int> ext_quality; 00199 00200 NTuple::Tuple*& tof_tuple; 00201 NTuple::Item<int> tof_run; 00202 NTuple::Item<int> tof_event; 00203 NTuple::Item<int> tof_toftrackid; 00204 NTuple::Item<int> tof_trackid; 00205 NTuple::Item<int> tof_charge; 00206 NTuple::Array<double> tof_pt; 00207 NTuple::Array<double> tof_p; 00208 NTuple::Item<int> tof_id1; 00209 NTuple::Item<int> tof_id2; 00210 NTuple::Item<int> tof_istrip1; 00211 NTuple::Item<int> tof_istrip2; 00212 NTuple::Item<int> tof_dstrip1; 00213 NTuple::Item<int> tof_dstrip2; 00214 NTuple::Item<int> tof_barrel; 00215 NTuple::Item<int> tof_hitcase; 00216 NTuple::Item<double> tof_momentum; 00217 NTuple::Item<double> tof_path1; 00218 NTuple::Item<double> tof_path2; 00219 NTuple::Item<double> tof_zrhit1; 00220 NTuple::Item<double> tof_zrhit2; 00221 NTuple::Item<double> tof_errzr1; 00222 NTuple::Item<double> tof_errzr2; 00223 NTuple::Item<double> tof_xhit1; 00224 NTuple::Item<double> tof_yhit1; 00225 NTuple::Item<double> tof_xhit2; 00226 NTuple::Item<double> tof_yhit2; 00227 NTuple::Array<double> tof_kal; 00228 NTuple::Array<double> tof_zr1; 00229 NTuple::Array<double> tof_zr2; 00230 NTuple::Item<double> tof_ztdc1; 00231 NTuple::Item<double> tof_ztdc2; 00232 NTuple::Item<double> tof_zadc1; 00233 NTuple::Item<double> tof_zadc2; 00234 NTuple::Item<double> tof_zt1; 00235 NTuple::Item<double> tof_zt2; 00236 NTuple::Item<double> tof_zt3; 00237 NTuple::Item<double> tof_zt4; 00238 NTuple::Item<double> tof_zq1; 00239 NTuple::Item<double> tof_zq2; 00240 NTuple::Item<double> tof_zq3; 00241 NTuple::Item<double> tof_zq4; 00242 NTuple::Item<int> tof_size1; 00243 NTuple::Item<int> tof_size2; 00244 NTuple::Item<int> tof_size3; 00245 NTuple::Item<int> tof_size4; 00246 NTuple::Item<double> tof_theta1; 00247 NTuple::Item<double> tof_theta2; 00248 NTuple::Item<double> tof_phi1; 00249 NTuple::Item<double> tof_phi2; 00250 NTuple::Item<int> tof_quality1; 00251 NTuple::Item<int> tof_quality2; 00252 NTuple::Item<int> tof_quality; 00253 NTuple::Item<int> tof_changed; 00254 NTuple::Item<int> tof_tofid1; 00255 NTuple::Item<int> tof_tofid2; 00256 NTuple::Item<int> tof_strip1; 00257 NTuple::Item<int> tof_strip2; 00258 NTuple::Item<int> tof_board1; 00259 NTuple::Item<int> tof_board2; 00260 NTuple::Item<int> tof_crate1; 00261 NTuple::Item<int> tof_crate2; 00262 NTuple::Item<int> tof_fee1; 00263 NTuple::Item<int> tof_fee2; 00264 NTuple::Item<double> tof_channel1; 00265 NTuple::Item<double> tof_channel2; 00266 NTuple::Item<double> tof_channel3; 00267 NTuple::Item<double> tof_channel4; 00268 NTuple::Item<double> tof_ph11; 00269 NTuple::Item<double> tof_ph12; 00270 NTuple::Item<double> tof_ph21; 00271 NTuple::Item<double> tof_ph22; 00272 NTuple::Item<double> tof_ph1; 00273 NTuple::Item<double> tof_ph2; 00274 NTuple::Item<double> tof_ph; 00275 NTuple::Item<double> tof_tofe11; 00276 NTuple::Item<double> tof_tofe12; 00277 NTuple::Item<double> tof_tofe21; 00278 NTuple::Item<double> tof_tofe22; 00279 NTuple::Item<double> tof_tofe1; 00280 NTuple::Item<double> tof_tofe2; 00281 NTuple::Item<double> tof_tofe; 00282 NTuple::Item<double> tof_tofmu11; 00283 NTuple::Item<double> tof_tofmu12; 00284 NTuple::Item<double> tof_tofmu21; 00285 NTuple::Item<double> tof_tofmu22; 00286 NTuple::Item<double> tof_tofmu1; 00287 NTuple::Item<double> tof_tofmu2; 00288 NTuple::Item<double> tof_tofmu; 00289 NTuple::Item<double> tof_tofpi11; 00290 NTuple::Item<double> tof_tofpi12; 00291 NTuple::Item<double> tof_tofpi21; 00292 NTuple::Item<double> tof_tofpi22; 00293 NTuple::Item<double> tof_tofpi1; 00294 NTuple::Item<double> tof_tofpi2; 00295 NTuple::Item<double> tof_tofpi; 00296 NTuple::Item<double> tof_tofk11; 00297 NTuple::Item<double> tof_tofk12; 00298 NTuple::Item<double> tof_tofk21; 00299 NTuple::Item<double> tof_tofk22; 00300 NTuple::Item<double> tof_tofk1; 00301 NTuple::Item<double> tof_tofk2; 00302 NTuple::Item<double> tof_tofk; 00303 NTuple::Item<double> tof_tofp11; 00304 NTuple::Item<double> tof_tofp12; 00305 NTuple::Item<double> tof_tofp21; 00306 NTuple::Item<double> tof_tofp22; 00307 NTuple::Item<double> tof_tofp1; 00308 NTuple::Item<double> tof_tofp2; 00309 NTuple::Item<double> tof_tofp; 00310 NTuple::Item<double> tof_qch1; 00311 NTuple::Item<double> tof_qch2; 00312 NTuple::Item<double> tof_qch3; 00313 NTuple::Item<double> tof_qch4; 00314 NTuple::Item<double> tof_adc1; 00315 NTuple::Item<double> tof_adc2; 00316 NTuple::Item<double> tof_adc3; 00317 NTuple::Item<double> tof_adc4; 00318 NTuple::Item<double> tof_tdc1; 00319 NTuple::Item<double> tof_tdc2; 00320 NTuple::Item<double> tof_tdc3; 00321 NTuple::Item<double> tof_tdc4; 00322 NTuple::Item<double> tof_texpe1; 00323 NTuple::Item<double> tof_texpmu1; 00324 NTuple::Item<double> tof_texppi1; 00325 NTuple::Item<double> tof_texpk1; 00326 NTuple::Item<double> tof_texpp1; 00327 NTuple::Item<double> tof_texpe2; 00328 NTuple::Item<double> tof_texpmu2; 00329 NTuple::Item<double> tof_texppi2; 00330 NTuple::Item<double> tof_texpk2; 00331 NTuple::Item<double> tof_texpp2; 00332 NTuple::Item<double> tof_texpe; 00333 NTuple::Item<double> tof_texpmu; 00334 NTuple::Item<double> tof_texppi; 00335 NTuple::Item<double> tof_texpk; 00336 NTuple::Item<double> tof_texpp; 00337 NTuple::Item<double> tof_tdiff1; 00338 NTuple::Item<double> tof_tdiff2; 00339 NTuple::Item<double> tof_trig; 00340 NTuple::Item<double> tof_estime; 00341 NTuple::Item<int> tof_t0stat; 00342 NTuple::Item<int> tof_mctrkid; 00343 NTuple::Item<double> tof_mcp; 00344 NTuple::Item<double> tof_mctofp; 00345 NTuple::Item<double> tof_mczrhit; 00346 NTuple::Item<double> tof_mcpath; 00347 NTuple::Item<double> tof_mctexp; 00348 00349 NTuple::Tuple*& bb_tuple; 00350 NTuple::Item<int> bb_run; 00351 NTuple::Item<int> bb_event; 00352 NTuple::Item<int> bb_trksize; 00353 NTuple::Item<int> bb_mdcsize; 00354 NTuple::Item<int> bb_emcsize; 00355 NTuple::Item<int> bb_trk1; 00356 NTuple::Item<double> bb_pmdc1; 00357 NTuple::Item<double> bb_ptmdc1; 00358 NTuple::Item<double> bb_theta1; 00359 NTuple::Item<double> bb_phi1; 00360 NTuple::Item<double> bb_x1; 00361 NTuple::Item<double> bb_y1; 00362 NTuple::Item<double> bb_z1; 00363 NTuple::Item<double> bb_r1; 00364 NTuple::Item<int> bb_charge1; 00365 NTuple::Item<double> bb_chi1; 00366 NTuple::Item<double> bb_ndof1; 00367 NTuple::Item<int> bb_layer1; 00368 NTuple::Item<int> bb_trk2; 00369 NTuple::Item<double> bb_pmdc2; 00370 NTuple::Item<double> bb_ptmdc2; 00371 NTuple::Item<double> bb_theta2; 00372 NTuple::Item<double> bb_phi2; 00373 NTuple::Item<double> bb_x2; 00374 NTuple::Item<double> bb_y2; 00375 NTuple::Item<double> bb_z2; 00376 NTuple::Item<double> bb_r2; 00377 NTuple::Item<int> bb_charge2; 00378 NTuple::Item<double> bb_chi2; 00379 NTuple::Item<double> bb_ndof2; 00380 NTuple::Item<int> bb_layer2; 00381 NTuple::Item<double> bb_dang; 00382 NTuple::Item<double> bb_dphi; 00383 NTuple::Item<double> bb_pe1; 00384 NTuple::Item<double> bb_pte1; 00385 NTuple::Item<double> bb_pe2; 00386 NTuple::Item<double> bb_pte2; 00387 NTuple::Item<double> bb_pmu1; 00388 NTuple::Item<double> bb_ptmu1; 00389 NTuple::Item<double> bb_pmu2; 00390 NTuple::Item<double> bb_ptmu2; 00391 NTuple::Item<double> bb_extx1; 00392 NTuple::Item<double> bb_exty1; 00393 NTuple::Item<double> bb_extz1; 00394 NTuple::Item<double> bb_extx2; 00395 NTuple::Item<double> bb_exty2; 00396 NTuple::Item<double> bb_extz2; 00397 NTuple::Item<double> bb_emctrk1; 00398 NTuple::Item<double> bb_emcx1; 00399 NTuple::Item<double> bb_emcy1; 00400 NTuple::Item<double> bb_emcz1; 00401 NTuple::Item<double> bb_e1; 00402 NTuple::Item<double> bb_th1; 00403 NTuple::Item<double> bb_ph1; 00404 NTuple::Item<double> bb_emctrk2; 00405 NTuple::Item<double> bb_emcx2; 00406 NTuple::Item<double> bb_emcy2; 00407 NTuple::Item<double> bb_emcz2; 00408 NTuple::Item<double> bb_e2; 00409 NTuple::Item<double> bb_th2; 00410 NTuple::Item<double> bb_ph2; 00411 NTuple::Item<double> bb_dr1; 00412 NTuple::Item<double> bb_drxy1; 00413 NTuple::Item<double> bb_dz1; 00414 NTuple::Item<double> bb_dr2; 00415 NTuple::Item<double> bb_drxy2; 00416 NTuple::Item<double> bb_dz2; 00417 NTuple::Item<double> bb_etot; 00418 00419 }; 00420 #endif