Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BesTofDigitizerBrV1 Class Reference

#include <BesTofDigitizerBrV1.hh>

Inheritance diagram for BesTofDigitizerBrV1:

BesTofDigitizerV BesTofDigitizerV List of all members.

Public Member Functions

 BesTofDigitizerBrV1 ()
 BesTofDigitizerBrV1 ()
virtual void Digitize (ScintSingle *, BesTofDigitsCollection *)
virtual void Digitize (ScintSingle *, BesTofDigitsCollection *)
void Initialize ()
void Initialize ()
void Smear (G4int)
void Smear (G4int)
void TofPmtAccum (BesTofHit *)
void TofPmtAccum (BesTofHit *)
void TofPmtInit ()
void TofPmtInit ()
 ~BesTofDigitizerBrV1 ()
 ~BesTofDigitizerBrV1 ()

Protected Attributes

G4double m_ADC [2]
BesTofDigitsCollectionm_besTofDigitsCollection
BesTofDigitsCollectionm_besTofDigitsCollection
G4double m_globalTime
G4double m_TDC [2]
BesTofHitsCollectionm_THC
BesTofHitsCollectionm_THC
ITofCaliSvcm_tofCaliSvc
ITofCaliSvcm_tofCaliSvc
ITofQElecSvcm_tofQElecSvc
ITofQElecSvcm_tofQElecSvc
ITofSimSvcm_tofSimSvc
ITofSimSvcm_tofSimSvc
G4int m_trackIndex

Static Protected Attributes

NTuple::Item< double > m_adc0
NTuple::Item< double > m_adc0
NTuple::Item< double > m_adc1
NTuple::Item< double > m_adc1
bool m_booked = false
NTuple::Item< double > m_ddT
NTuple::Item< double > m_ddT
NTuple::Item< double > m_edep
NTuple::Item< double > m_edep
NTuple::Item< double > m_edepHit
NTuple::Item< double > m_edepHit
NTuple::Item< double > m_edepMPV
NTuple::Item< double > m_edepMPV
NTuple::Item< double > m_endTime
NTuple::Item< double > m_endTime
NTuple::Item< double > m_eTotal
NTuple::Item< double > m_eTotal
NTuple::Item< double > m_forb
NTuple::Item< double > m_forb
NTuple::Item< double > m_max0
NTuple::Item< double > m_max0
NTuple::Item< double > m_max1
NTuple::Item< double > m_max1
NTuple::Item< double > m_nDigi
NTuple::Item< double > m_nDigi
NTuple::Item< double > m_nDigiOut
NTuple::Item< double > m_nDigiOut
NTuple::Item< double > m_nHits
NTuple::Item< double > m_nHits
NTuple::Item< double > m_NphAllSteps
NTuple::Item< double > m_NphAllSteps
NTuple::Item< double > m_partId
NTuple::Item< double > m_partId
NTuple::Item< double > m_partIdMPV
NTuple::Item< double > m_partIdMPV
NTuple::Item< double > m_scinNb
NTuple::Item< double > m_scinNb
NTuple::Item< double > m_scinNbMPV
NTuple::Item< double > m_scinNbMPV
NTuple::Item< double > m_scinSwim
NTuple::Item< double > m_scinSwim
NTuple::Item< double > m_scinTime
NTuple::Item< double > m_scinTime
NTuple::Item< double > m_tdc0
NTuple::Item< double > m_tdc0
NTuple::Item< double > m_tdc1
NTuple::Item< double > m_tdc1
NTuple::Item< double > m_time1st0
NTuple::Item< double > m_time1st0
NTuple::Item< double > m_time1st1
NTuple::Item< double > m_time1st1
NTuple::Item< double > m_timeFlight
NTuple::Item< double > m_timeFlight
NTuple::Item< double > m_timelast0
NTuple::Item< double > m_timelast0
NTuple::Item< double > m_timelast1
NTuple::Item< double > m_timelast1
NTuple::Item< double > m_totalPhot0
NTuple::Item< double > m_totalPhot0
NTuple::Item< double > m_totalPhot1
NTuple::Item< double > m_totalPhot1
NTuple::Item< double > m_transitTime
NTuple::Item< double > m_transitTime
NTuple::Tuple * m_tupleTof1
NTuple::Tuple * m_tupleTof1 = 0
NTuple::Tuple * m_tupleTof2
NTuple::Tuple * m_tupleTof2 = 0
NTuple::Tuple * m_tupleTof3
NTuple::Tuple * m_tupleTof3 = 0

Private Attributes

G4double m_scinLength
G4double m_t1st
G4double m_z

Constructor & Destructor Documentation

BesTofDigitizerBrV1::BesTofDigitizerBrV1  ) 
 

00022 {
00023     BesTofGeoParameter* tofPara = BesTofGeoParameter::GetInstance();
00024     m_scinLength = tofPara->GetBr1L();
00025 }

BesTofDigitizerBrV1::~BesTofDigitizerBrV1  ) 
 

00028 {
00029 }

BesTofDigitizerBrV1::BesTofDigitizerBrV1  ) 
 

BesTofDigitizerBrV1::~BesTofDigitizerBrV1  ) 
 


Member Function Documentation

virtual void BesTofDigitizerBrV1::Digitize ScintSingle ,
BesTofDigitsCollection
[virtual]
 

Reimplemented from BesTofDigitizerV.

void BesTofDigitizerBrV1::Digitize ScintSingle ,
BesTofDigitsCollection
[virtual]
 

Reimplemented from BesTofDigitizerV.

00032 {
00033     G4cout<<"BesTofDigitizerBrV1::Digitize"<<G4endl;
00034     m_besTofDigitsCollection = DC;
00035     G4DigiManager* digiManager = G4DigiManager::GetDMpointer();
00036     G4int THCID = digiManager->GetHitsCollectionID("BesTofHitsCollection");
00037     m_THC = (BesTofHitsCollection*) (digiManager->GetHitsCollection(THCID));
00038     if (m_THC)
00039     {
00040         G4int partId, scinNb, nHits;
00041         BesTofHit* hit;
00042         partId=scint->GetPartId();
00043         scinNb=scint->GetScinNb();
00044         nHits=scint->GetHitIndexes()->size();
00045         TofPmtInit();
00046         for (G4int j=0;j<nHits;j++)
00047         {
00048             hit= (*m_THC)[( *(scint->GetHitIndexes()) )[j]];
00049             TofPmtAccum(hit);
00050         }
00051 
00052         Smear(scinNb);
00053         if ( m_TDC[0]>0 )
00054         {
00055             BesTofDigi* digi = new BesTofDigi;
00056             digi->SetTrackIndex(m_trackIndex);
00057             digi->SetPartId(partId);
00058             digi->SetScinNb(scinNb);
00059             digi->SetForwADC( m_ADC[0]) ;
00060             digi->SetForwTDC( m_TDC[0]) ;
00061             digi->SetBackADC( m_ADC[1]) ;
00062             digi->SetBackTDC( m_TDC[1]) ;
00063             m_besTofDigitsCollection->insert(digi);
00064         }
00065     }
00066 }

void BesTofDigitizerV::Initialize  )  [inherited]
 

void BesTofDigitizerV::Initialize  )  [inherited]
 

00149 {
00150     for (G4int i=0;i<2;i++)
00151     {
00152         m_ADC[i] = -999;
00153         m_TDC[i] = -999;
00154     }
00155     m_trackIndex = -999;
00156     m_globalTime = 9999;
00157 }

void BesTofDigitizerBrV1::Smear G4int   ) 
 

void BesTofDigitizerBrV1::Smear G4int   ) 
 

00110 {
00111     G4cout<<"m_t1st:"<<m_t1st<<"  m_z:"<<m_z<<G4endl;
00112 
00113     /*G4double tofRes = 0.08;
00114     G4double atten;
00115     for(G4int i=0;i<2;i++)
00116     {
00117       m_TDC[i] += tofRes * G4RandGauss::shoot();
00118     }*/
00119 
00120     double pp1[10];
00121     double pp2[10];
00122     for (int i=0;i<10;i++)
00123     {
00124         pp1[i]=m_tofCaliSvc->BTof(scinNb)->getP1(i);
00125         pp2[i]=m_tofCaliSvc->BTof(scinNb)->getP2(i);
00126         //G4cout<<"pp1["<<i<<"]:"<<pp1[i]<<"  "<<"pp2["<<i<<"]:"<<pp2[i]<<G4endl;
00127     }
00128     double pp[10];
00129     for (int i=0;i<2;i++)
00130     {
00131         m_ADC[i] *= 7.;
00132         for (int j=0;j<10;j++)
00133         {
00134             if (i==0)
00135                 pp[j]=pp1[j];
00136             else
00137                 pp[j]=pp2[j];
00138         }
00139         m_TDC[i] += (pp[0]+pp[1]*m_z)/TMath::Sqrt(m_ADC[i])+
00140                     pp[2]*m_ADC[i]+
00141                     pp[3]*m_ADC[i]*m_ADC[i]+
00142                     pp[4]*m_ADC[i]*m_ADC[i]*m_ADC[i]+
00143                     pp[5]/(84.2*84.2+m_z*m_z)+
00144                     pp[6]*m_z+
00145                     pp[7]*m_z*m_z+
00146                     pp[8]*m_z*m_z*m_z+
00147                     pp[9];
00148     }
00149 }

void BesTofDigitizerBrV1::TofPmtAccum BesTofHit  ) 
 

void BesTofDigitizerBrV1::TofPmtAccum BesTofHit  ) 
 

00075 {
00076     G4int trackIndex = hit->GetTrackIndex();
00077     G4int partId = hit->GetPartId();
00078     G4int scinNb = hit->GetScinNb();
00079     G4double time = hit->GetTime();
00080     if (time<m_globalTime)
00081     {
00082         m_globalTime = time;
00083         m_trackIndex = trackIndex;
00084     }
00085     G4double edep = hit->GetEdep();
00086     G4ThreeVector pos = hit->GetPos();
00087     G4double posx = pos.x();
00088     G4double posy = pos.y();
00089     G4double posz = pos.z();
00090 
00091     G4double atten;
00092     atten = m_tofCaliSvc->BAtten(scinNb);
00093     G4double pathL[2];
00094     pathL[0]=m_scinLength/2-posz;
00095     pathL[1]=posz+m_scinLength/2;
00096     for (G4int j=0;j<2;j++)
00097     {
00098         //G4cout<<"atten:"<<atten<<G4endl;
00099         m_ADC[j] += edep*exp(-pathL[j]/atten);
00100     }
00101     if (time<m_t1st)
00102     {
00103         m_t1st = time;
00104         m_z = posz;
00105         m_TDC[0] = m_TDC[1] = m_t1st;
00106     }
00107 }

void BesTofDigitizerBrV1::TofPmtInit  ) 
 

void BesTofDigitizerBrV1::TofPmtInit  ) 
 

00069 {
00070     Initialize();
00071     m_t1st = 9999.;
00072 }


Member Data Documentation

G4double BesTofDigitizerV::m_ADC [protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_adc0 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_adc0 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_adc1 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_adc1 [static, protected, inherited]
 

BesTofDigitsCollection* BesTofDigitizerV::m_besTofDigitsCollection [protected, inherited]
 

BesTofDigitsCollection* BesTofDigitizerV::m_besTofDigitsCollection [protected, inherited]
 

bool BesTofDigitizerV::m_booked = false [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_ddT [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_ddT [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_edep [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_edep [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_edepHit [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_edepHit [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_edepMPV [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_edepMPV [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_endTime [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_endTime [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_eTotal [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_eTotal [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_forb [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_forb [static, protected, inherited]
 

G4double BesTofDigitizerV::m_globalTime [protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_max0 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_max0 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_max1 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_max1 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_nDigi [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_nDigi [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_nDigiOut [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_nDigiOut [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_nHits [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_nHits [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_NphAllSteps [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_NphAllSteps [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_partId [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_partId [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_partIdMPV [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_partIdMPV [static, protected, inherited]
 

G4double BesTofDigitizerBrV1::m_scinLength [private]
 

NTuple::Item<double> BesTofDigitizerV::m_scinNb [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_scinNb [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_scinNbMPV [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_scinNbMPV [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_scinSwim [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_scinSwim [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_scinTime [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_scinTime [static, protected, inherited]
 

G4double BesTofDigitizerBrV1::m_t1st [private]
 

G4double BesTofDigitizerV::m_TDC [protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_tdc0 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_tdc0 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_tdc1 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_tdc1 [static, protected, inherited]
 

BesTofHitsCollection* BesTofDigitizerV::m_THC [protected, inherited]
 

BesTofHitsCollection* BesTofDigitizerV::m_THC [protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_time1st0 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_time1st0 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_time1st1 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_time1st1 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_timeFlight [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_timeFlight [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_timelast0 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_timelast0 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_timelast1 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_timelast1 [static, protected, inherited]
 

ITofCaliSvc* BesTofDigitizerV::m_tofCaliSvc [protected, inherited]
 

ITofCaliSvc* BesTofDigitizerV::m_tofCaliSvc [protected, inherited]
 

ITofQElecSvc* BesTofDigitizerV::m_tofQElecSvc [protected, inherited]
 

ITofQElecSvc* BesTofDigitizerV::m_tofQElecSvc [protected, inherited]
 

ITofSimSvc* BesTofDigitizerV::m_tofSimSvc [protected, inherited]
 

ITofSimSvc* BesTofDigitizerV::m_tofSimSvc [protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_totalPhot0 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_totalPhot0 [static, protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_totalPhot1 [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_totalPhot1 [static, protected, inherited]
 

G4int BesTofDigitizerV::m_trackIndex [protected, inherited]
 

NTuple::Item<double> BesTofDigitizerV::m_transitTime [static, protected, inherited]
 

NTuple::Item< double > BesTofDigitizerV::m_transitTime [static, protected, inherited]
 

NTuple::Tuple* BesTofDigitizerV::m_tupleTof1 [static, protected, inherited]
 

NTuple::Tuple * BesTofDigitizerV::m_tupleTof1 = 0 [static, protected, inherited]
 

NTuple::Tuple* BesTofDigitizerV::m_tupleTof2 [static, protected, inherited]
 

NTuple::Tuple * BesTofDigitizerV::m_tupleTof2 = 0 [static, protected, inherited]
 

NTuple::Tuple* BesTofDigitizerV::m_tupleTof3 [static, protected, inherited]
 

NTuple::Tuple * BesTofDigitizerV::m_tupleTof3 = 0 [static, protected, inherited]
 

G4double BesTofDigitizerBrV1::m_z [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:53:22 2011 for BOSS6.5.5 by  doxygen 1.3.9.1