00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: Dengzy 00006 //Created: Mar, 2004 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 // $Id: BesTofDigitizerV.hh 00011 00012 #ifndef BesTofDigitizerV_h 00013 #define BesTofDigitizerV_h 1 00014 00015 #include "BesTofDigi.hh" 00016 #include "BesTofHit.hh" 00017 #include "G4DigiManager.hh" 00018 #include "ScintSingle.hh" 00019 #include "TofCaliSvc/ITofCaliSvc.h" 00020 #include "TofSimSvc/ITofSimSvc.h" 00021 #include "TofQElecSvc/ITofQElecSvc.h" 00022 00023 #include "GaudiKernel/NTuple.h" 00024 #include "G4Svc/IG4Svc.h" 00025 #include "G4Svc/G4Svc.h" 00026 00027 class G4Svc; 00028 00029 class BesTofDigitizerV 00030 { 00031 public: 00032 BesTofDigitizerV(); 00033 ~BesTofDigitizerV(); 00034 void Initialize(); 00035 virtual void Digitize(ScintSingle*, BesTofDigitsCollection*) {;} 00036 00037 protected: 00038 BesTofDigitsCollection* m_besTofDigitsCollection; 00039 BesTofHitsCollection* m_THC; 00040 00041 ITofCaliSvc* m_tofCaliSvc; 00042 ITofSimSvc* m_tofSimSvc; 00043 ITofQElecSvc* m_tofQElecSvc; 00044 00045 G4double m_ADC[2]; 00046 G4double m_TDC[2]; 00047 G4int m_trackIndex; 00048 G4double m_globalTime; 00049 00050 static bool m_booked; 00051 00052 static NTuple::Tuple* m_tupleTof1; 00053 static NTuple::Item<double> m_partId; 00054 static NTuple::Item<double> m_scinNb; 00055 static NTuple::Item<double> m_edep; 00056 static NTuple::Item<double> m_nHits; 00057 static NTuple::Item<double> m_time1st0; 00058 static NTuple::Item<double> m_time1st1; 00059 static NTuple::Item<double> m_timelast0; 00060 static NTuple::Item<double> m_timelast1; 00061 static NTuple::Item<double> m_totalPhot0; 00062 static NTuple::Item<double> m_totalPhot1; 00063 static NTuple::Item<double> m_NphAllSteps; 00064 static NTuple::Item<double> m_max0; 00065 static NTuple::Item<double> m_max1; 00066 static NTuple::Item<double> m_tdc0; 00067 static NTuple::Item<double> m_adc0; 00068 static NTuple::Item<double> m_tdc1; 00069 static NTuple::Item<double> m_adc1; 00070 00071 static NTuple::Tuple* m_tupleTof2; 00072 static NTuple::Item<double> m_eTotal; 00073 static NTuple::Item<double> m_nDigi; 00074 static NTuple::Item<double> m_partIdMPV; 00075 static NTuple::Item<double> m_scinNbMPV; 00076 static NTuple::Item<double> m_edepMPV; 00077 static NTuple::Item<double> m_nDigiOut; 00078 00079 static NTuple::Tuple* m_tupleTof3; 00080 static NTuple::Item<double> m_forb; 00081 static NTuple::Item<double> m_timeFlight; 00082 static NTuple::Item<double> m_ddT; 00083 static NTuple::Item<double> m_scinSwim; 00084 static NTuple::Item<double> m_scinTime; 00085 static NTuple::Item<double> m_transitTime; 00086 static NTuple::Item<double> m_endTime; 00087 00088 static NTuple::Item<double> m_edepHit; 00089 00090 00091 //static NTuple::Tuple* m_tupleTof4;//Write out the basic information for the Mrpc Digitizer 00092 //static NTuple::Item<double> m_partIdmrpc; 00093 //static NTuple::Item<double> m_stripidentifier; 00094 //static NTuple::Item<double> m_trackindex; 00095 //static NTuple::Item<double> m_signal_pc; 00096 //static NTuple::Item<double> m_time_threshold; 00097 //static NTuple::Item<double> m_time_1sthit; 00098 //static NTuple::Item<double> m_time_1; 00099 //static NTuple::Item<double> m_time_2; 00100 //static NTuple::Item<double> m_firedstrip; 00101 //static NTuple::Item<double> m_numberions; 00102 00103 private: 00104 G4Svc* m_G4Svc; 00105 00106 00107 }; 00108 #endif 00109