00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: liuy 00006 //Created: Oct, 2008 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 // $Id: BesTofDigitizerEcV3.hh 00011 00012 #ifndef BesTofDigitizerEcV3_h 00013 #define BesTofDigitizerEcV3_h 1 00014 00015 #include "GaudiKernel/NTuple.h" 00016 00017 #include "BesTofDigitizerV.hh" 00018 #include "BesTofDigi.hh" 00019 #include "ScintSingle.hh" 00020 #include "globals.hh" 00021 #include "G4ThreeVector.hh" 00022 #include <vector> 00023 #include "RealizationSvc/RealizationSvc.h" 00024 #include "RealizationSvc/IRealizationSvc.h" 00025 00026 using namespace std; 00027 00028 class BesTofHit; 00029 class BesRunAction; 00030 class G4Svc; 00031 00032 const G4int m_profBinNEcV3 = 30000; 00033 const G4int m_snpeBinNEcV3 = 3000; 00034 00035 const int num1 = 400; // bin number in histogram 00036 const int nR = 43; // r bin number in geometry 00037 const int nPhi = 6; // phi bin number 00038 const int nZ = 6; // z bin number 00039 00040 class BesTofDigitizerEcV3 : public BesTofDigitizerV 00041 { 00042 public: 00043 BesTofDigitizerEcV3(); 00044 ~BesTofDigitizerEcV3(); 00045 00046 virtual void Digitize(ScintSingle*, BesTofDigitsCollection*); 00047 void ReadData(); 00048 void ReadEffTree(); 00049 void TofPmtInit(); 00050 void TofPmtAccum(BesTofHit* ); 00051 void DirectPh(G4int, G4int, G4int, G4double&); 00052 G4double Scintillation(G4int); 00053 G4double TransitTime(); 00054 void AccuSignal(G4double, G4int); 00055 // void TofPmtRspns(G4int); 00056 void TofPmtRspns(G4int, G4int); 00057 G4double BirksLaw(BesTofHit* hit); 00058 00059 private: 00060 00061 G4double m_ecR1; 00062 00063 G4double m_tau1Ec; 00064 G4double m_tau2Ec; 00065 G4double m_tau3Ec; 00066 G4double m_tauRatioEc; 00067 G4double m_refIndexEc; 00068 G4double m_phNConstEc; 00069 G4double m_Cpe2pmtEc; 00070 G4double m_rAngleEc; 00071 G4double m_QEEc; 00072 G4double m_CEEc; 00073 G4double m_peCorFacEc; 00074 G4double m_attenEc; 00075 00076 G4double m_ttsMeanEc; 00077 G4double m_ttsSigmaEc; 00078 G4double m_PMTgainEc; 00079 G4double m_CeEc; 00080 G4double m_riseTimeEc; 00081 G4double m_LLthreshEc; 00082 G4double m_HLthreshEc; 00083 G4double m_preGainEc; 00084 G4double m_noiseSigmaEc; 00085 00086 G4double m_t1st[2]; 00087 G4double m_tLast[2]; 00088 G4double m_timeBinSize; 00089 G4int m_totalPhot[2]; 00090 G4int m_nPhot[m_profBinNEcV3][2]; 00091 00092 G4Svc* m_G4Svc; 00093 G4double m_beamTime; 00094 RealizationSvc* m_RealizationSvc; 00095 00096 float propTime[50][10][10][num1],prob[50][10][10][num1],eff[50][10][10]; 00097 00098 }; 00099 00100 #endif 00101