BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesTofDigitizerEcV1 Class Reference

#include <BesTofDigitizerEcV1.hh>

Inheritance diagram for BesTofDigitizerEcV1:

Public Member Functions

 BesTofDigitizerEcV1 ()
 ~BesTofDigitizerEcV1 ()
virtual void Digitize (ScintSingle *, BesTofDigitsCollection *)
void TofPmtInit ()
void TofPmtAccum (BesTofHit *)
void Smear (G4int)
 BesTofDigitizerEcV1 ()
 ~BesTofDigitizerEcV1 ()
virtual void Digitize (ScintSingle *, BesTofDigitsCollection *)
void TofPmtInit ()
void TofPmtAccum (BesTofHit *)
void Smear (G4int)
 BesTofDigitizerEcV1 ()
 ~BesTofDigitizerEcV1 ()
virtual void Digitize (ScintSingle *, BesTofDigitsCollection *)
void TofPmtInit ()
void TofPmtAccum (BesTofHit *)
void Smear (G4int)
Public Member Functions inherited from BesTofDigitizerV
 BesTofDigitizerV ()
 ~BesTofDigitizerV ()
void Initialize ()
 BesTofDigitizerV ()
 ~BesTofDigitizerV ()
void Initialize ()
 BesTofDigitizerV ()
 ~BesTofDigitizerV ()
void Initialize ()

Additional Inherited Members

Protected Attributes inherited from BesTofDigitizerV
BesTofDigitsCollectionm_besTofDigitsCollection
BesTofHitsCollectionm_THC
ITofCaliSvcm_tofCaliSvc
ITofSimSvcm_tofSimSvc
ITofQElecSvcm_tofQElecSvc
G4double m_ADC [2]
G4double m_TDC [2]
G4int m_trackIndex
G4double m_globalTime
Static Protected Attributes inherited from BesTofDigitizerV
static bool m_booked = false
static NTuple::Tuple * m_tupleTof1 = 0
static NTuple::Item< double > m_partId
static NTuple::Item< double > m_scinNb
static NTuple::Item< double > m_edep
static NTuple::Item< double > m_nHits
static NTuple::Item< double > m_time1st0
static NTuple::Item< double > m_time1st1
static NTuple::Item< double > m_timelast0
static NTuple::Item< double > m_timelast1
static NTuple::Item< double > m_totalPhot0
static NTuple::Item< double > m_totalPhot1
static NTuple::Item< double > m_NphAllSteps
static NTuple::Item< double > m_max0
static NTuple::Item< double > m_max1
static NTuple::Item< double > m_tdc0
static NTuple::Item< double > m_adc0
static NTuple::Item< double > m_tdc1
static NTuple::Item< double > m_adc1
static NTuple::Tuple * m_tupleTof2 = 0
static NTuple::Item< double > m_eTotal
static NTuple::Item< double > m_nDigi
static NTuple::Item< double > m_partIdMPV
static NTuple::Item< double > m_scinNbMPV
static NTuple::Item< double > m_edepMPV
static NTuple::Item< double > m_nDigiOut
static NTuple::Tuple * m_tupleTof3 = 0
static NTuple::Item< double > m_forb
static NTuple::Item< double > m_timeFlight
static NTuple::Item< double > m_ddT
static NTuple::Item< double > m_scinSwim
static NTuple::Item< double > m_scinTime
static NTuple::Item< double > m_transitTime
static NTuple::Item< double > m_endTime
static NTuple::Item< double > m_edepHit

Detailed Description

Constructor & Destructor Documentation

◆ BesTofDigitizerEcV1() [1/3]

BesTofDigitizerEcV1::BesTofDigitizerEcV1 ( )

Definition at line 21 of file BesTofDigitizerEcV1.cc.

21 {
22 BesTofGeoParameter* tofPara = BesTofGeoParameter::GetInstance();
23 m_bucketPosR = tofPara->GetBucketPosR(); // 445 ???
24}
static BesTofGeoParameter * GetInstance()

◆ ~BesTofDigitizerEcV1() [1/3]

BesTofDigitizerEcV1::~BesTofDigitizerEcV1 ( )

Definition at line 26 of file BesTofDigitizerEcV1.cc.

26{}

◆ BesTofDigitizerEcV1() [2/3]

BesTofDigitizerEcV1::BesTofDigitizerEcV1 ( )

◆ ~BesTofDigitizerEcV1() [2/3]

BesTofDigitizerEcV1::~BesTofDigitizerEcV1 ( )

◆ BesTofDigitizerEcV1() [3/3]

BesTofDigitizerEcV1::BesTofDigitizerEcV1 ( )

◆ ~BesTofDigitizerEcV1() [3/3]

BesTofDigitizerEcV1::~BesTofDigitizerEcV1 ( )

Member Function Documentation

◆ Digitize() [1/3]

void BesTofDigitizerEcV1::Digitize ( ScintSingle * scint,
BesTofDigitsCollection * DC )
virtual

Reimplemented from BesTofDigitizerV.

Definition at line 28 of file BesTofDigitizerEcV1.cc.

28 {
29 G4cout << "BesTofDigitizerEcV1::Digitize" << G4endl;
31 G4DigiManager* digiManager = G4DigiManager::GetDMpointer();
32 G4int THCID = digiManager->GetHitsCollectionID( "BesTofHitsCollection" );
33 m_THC = (BesTofHitsCollection*)( digiManager->GetHitsCollection( THCID ) );
34 if ( m_THC )
35 {
36 G4int partId, scinNb, nHits;
37 BesTofHit* hit;
38 partId = scint->GetPartId();
39 scinNb = scint->GetScinNb();
40 nHits = scint->GetHitIndexes()->size();
41 TofPmtInit();
42 for ( G4int j = 0; j < nHits; j++ )
43 {
44 hit = ( *m_THC )[( *( scint->GetHitIndexes() ) )[j]];
45 TofPmtAccum( hit );
46 }
47
48 Smear( scinNb );
49 if ( m_TDC[0] > 0 )
50 {
51 BesTofDigi* digi = new BesTofDigi;
53 digi->SetPartId( partId );
54 digi->SetScinNb( scinNb );
55 digi->SetForwADC( m_ADC[0] );
56 digi->SetForwTDC( m_TDC[0] );
57 digi->SetBackADC( m_ADC[1] );
58 digi->SetBackTDC( m_TDC[1] );
59 m_besTofDigitsCollection->insert( digi );
60 }
61 }
62}
G4THitsCollection< BesTofHit > BesTofHitsCollection
void TofPmtAccum(BesTofHit *)

◆ Digitize() [2/3]

virtual void BesTofDigitizerEcV1::Digitize ( ScintSingle * ,
BesTofDigitsCollection *  )
virtual

Reimplemented from BesTofDigitizerV.

◆ Digitize() [3/3]

virtual void BesTofDigitizerEcV1::Digitize ( ScintSingle * ,
BesTofDigitsCollection *  )
virtual

Reimplemented from BesTofDigitizerV.

◆ Smear() [1/3]

void BesTofDigitizerEcV1::Smear ( G4int scinNb)

Definition at line 95 of file BesTofDigitizerEcV1.cc.

95 {
96 /*G4double tofRes = 0.08;
97 for(G4int i=0;i<2;i++)
98 {
99 m_TDC[i] += tofRes * G4RandGauss::shoot();
100 }*/
101
102 double pp[8];
103 for ( int i = 0; i < 8; i++ ) { pp[i] = m_tofCaliSvc->ETof( scinNb )->getP( i ); }
104 m_ADC[0] *= 7.;
105 m_TDC[0] += ( pp[0] + pp[1] * m_r ) / TMath::Sqrt( m_ADC[0] ) + pp[2] / m_ADC[0] +
106 pp[3] * m_r / m_ADC[0] + pp[4] * m_r + pp[5] * m_r * m_r +
107 pp[6] * m_r * m_r * m_r + pp[7];
108}

Referenced by Digitize().

◆ Smear() [2/3]

void BesTofDigitizerEcV1::Smear ( G4int )

◆ Smear() [3/3]

void BesTofDigitizerEcV1::Smear ( G4int )

◆ TofPmtAccum() [1/3]

void BesTofDigitizerEcV1::TofPmtAccum ( BesTofHit * hit)

Definition at line 69 of file BesTofDigitizerEcV1.cc.

69 {
70 G4int trackIndex = hit->GetTrackIndex();
71 G4int scinNb = hit->GetScinNb();
72 G4double time = hit->GetTime();
73 if ( time < m_globalTime )
74 {
76 m_trackIndex = trackIndex;
77 }
78 G4double edep = hit->GetEdep();
79 G4ThreeVector pos = hit->GetPos();
80 G4double posx = pos.x();
81 G4double posy = pos.y();
82 G4double pathL = abs( m_bucketPosR - sqrt( posx * posx + posy * posy ) );
83 G4double atten;
84 atten = m_tofCaliSvc->EAtten( scinNb );
85 m_ADC[0] += edep * exp( -pathL / atten );
86
87 if ( time < m_t1st )
88 {
89 m_t1st = time;
90 m_r = sqrt( posx * posx + posy * posy );
91 m_TDC[0] = m_t1st;
92 }
93}
Double_t time
EvtComplex exp(const EvtComplex &c)

Referenced by Digitize().

◆ TofPmtAccum() [2/3]

void BesTofDigitizerEcV1::TofPmtAccum ( BesTofHit * )

◆ TofPmtAccum() [3/3]

void BesTofDigitizerEcV1::TofPmtAccum ( BesTofHit * )

◆ TofPmtInit() [1/3]

void BesTofDigitizerEcV1::TofPmtInit ( )

Definition at line 64 of file BesTofDigitizerEcV1.cc.

64 {
65 Initialize();
66 m_t1st = 9999.;
67}

Referenced by Digitize().

◆ TofPmtInit() [2/3]

void BesTofDigitizerEcV1::TofPmtInit ( )

◆ TofPmtInit() [3/3]

void BesTofDigitizerEcV1::TofPmtInit ( )

The documentation for this class was generated from the following files: