/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/TofSim/TofSim-00-02-33/TofSim/BesTofDigitizerBrV2.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------///      BOOST --- BESIII Object_Oriented Simulation Tool                     //
00002 //---------------------------------------------------------------------------//
00003 //Description:
00004 //Author: Dengzy
00005 //Created: Oct, 2004
00006 //Modified:
00007 //Comment:
00008 //---------------------------------------------------------------------------//
00009 // $Id: BesTofDigitizerBrV2.hh
00010 
00011 #ifndef BesTofDigitizerBrV2_h
00012 #define BesTofDigitizerBrV2_h 1
00013 
00014 #include "GaudiKernel/NTuple.h"
00015 
00016 #include "BesTofDigitizerV.hh"
00017 #include "BesTofDigi.hh"
00018 #include "ScintSingle.hh"
00019 #include "globals.hh"
00020 #include "G4ThreeVector.hh"
00021 #include <vector>
00022 #include "RealizationSvc/RealizationSvc.h"
00023 #include "RealizationSvc/IRealizationSvc.h"
00024 
00025 using namespace std;
00026 
00027 class BesTofHit;
00028 class BesRunAction;
00029 class G4Svc;
00030 
00031 const G4int m_profBinN = 30000;
00032 const G4int m_snpeBinN = 3000;
00033 
00034 class BesTofDigitizerBrV2 : public BesTofDigitizerV
00035 {
00036   public:
00037     BesTofDigitizerBrV2();
00038     ~BesTofDigitizerBrV2();
00039     
00040     virtual void Digitize(ScintSingle*, BesTofDigitsCollection*);
00041     void ReadData(); 
00042     void TofPmtInit();
00043     void TofPmtAccum(BesTofHit*, G4int);
00044     void DirectPh(G4int, G4ThreeVector, G4double &, G4int&);
00045     G4double Scintillation(G4int);
00046     //G4double GenPhoton(G4int);
00047     G4double TransitTime();
00048     void AccuSignal(G4double, G4int);
00049     void TofPmtRspns(G4int);
00050     G4double Reflectivity(G4double n1,G4double n2,G4double theta);
00051     G4double Reflectivity(G4double n1,G4double n2,G4double n3,G4double theta);
00052     G4double BirksLaw(BesTofHit* hit);
00053     
00054   private:
00055 
00056     G4double m_scinLength;
00057     
00058     G4double m_tau1;
00059     G4double m_tau2;
00060     G4double m_tau3;
00061     G4double m_tauRatio;
00062     G4double m_refIndex;
00063     G4double m_phNConst;
00064     G4double m_Cpe2pmt;
00065     G4double m_rAngle;
00066     G4double m_QE;
00067     G4double m_CE;
00068     G4double m_peCorFac;
00069     
00070     G4double m_ttsMean;
00071     G4double m_ttsSigma;
00072     G4double m_Ce;
00073     //G4double m_BrWPMTgain[176];
00074     //G4double m_BrWRiseTime[176];
00075     //G4double m_BrEPMTgain[176];
00076     //G4double m_BrERiseTime[176];
00077     G4double m_LLthresh;
00078     G4double m_HLthresh;
00079     G4double m_preGain;
00080     G4double m_noiseSigma; 
00081     
00082     G4double m_t1st[2];
00083     G4double m_tLast[2];
00084     G4double m_timeBinSize;
00085     G4int m_totalPhot[2];
00086     G4int m_nPhot[m_profBinN][2];
00087  
00088     //BesRunAction* m_runAction;
00089     G4Svc* m_G4Svc;
00090     G4double m_beamTime;
00091     RealizationSvc* m_RealizationSvc;
00092 
00093 /*
00094     NTuple::Tuple* m_tupleTof1;
00095     NTuple::Item<double> m_partId;
00096     NTuple::Item<double> m_scinNb;
00097     NTuple::Item<double> m_edep;
00098     NTuple::Item<double> m_nHits; 
00099     NTuple::Item<double> m_time1st0;
00100     NTuple::Item<double> m_time1st1;
00101     NTuple::Item<double> m_timelast0;
00102     NTuple::Item<double> m_timelast1;
00103     NTuple::Item<double> m_totalPhot0;
00104     NTuple::Item<double> m_totalPhot1;
00105     NTuple::Item<double> m_NphAllSteps;
00106     NTuple::Item<double> m_max0;
00107     NTuple::Item<double> m_max1;
00108     NTuple::Item<double> m_tdc0;
00109     NTuple::Item<double> m_adc0;
00110     NTuple::Item<double> m_tdc1;
00111     NTuple::Item<double> m_adc1;
00112     NTuple::Item<double> nReachPMTf;
00113     NTuple::Item<double> nEnterPMTf;
00114     NTuple::Item<double> nEnterf;
00115     NTuple::Item<double> nRefPMTf;
00116     NTuple::Item<double> nReachAirBoxf;
00117     NTuple::Item<double> nRefAirBoxf;
00118 
00119     
00120     NTuple::Tuple* m_tupleTof2;
00121     NTuple::Item<double> m_eTotal;
00122     NTuple::Item<double> m_nDigi;
00123     NTuple::Item<double> m_partIdMPV;
00124     NTuple::Item<double> m_scinNbMPV;
00125     NTuple::Item<double> m_edepMPV;
00126     NTuple::Item<double> m_nDigiOut;
00127 
00128     NTuple::Tuple* m_tupleTof3;
00129     NTuple::Item<double> m_forb;
00130     NTuple::Item<double> m_timeFlight;
00131     NTuple::Item<double> m_ddT;
00132     NTuple::Item<double> m_scinSwim;
00133     NTuple::Item<double> m_scinTime;
00134     NTuple::Item<double> m_transitTime;
00135     NTuple::Item<double> m_endTime;
00136 */
00137 
00138 };
00139 
00140 #endif
00141 

Generated on Tue Nov 29 23:14:31 2016 for BOSS_7.0.2 by  doxygen 1.4.7