78 G4DigiManager* digiManager = G4DigiManager::GetDMpointer();
79 G4int THCID = digiManager->GetHitsCollectionID(
"BesTofHitsCollection" );
84 m_scintGroup =
new vector<ScintSingle*>;
87 G4int size = m_scintGroup->size();
94 for ( G4int i = 0; i < size; i++ )
96 scint = ( *m_scintGroup )[i];
104 if ( m_versionBr == 1 ) tofDMBr1->Digitize( scint, m_besTofDigitsCollection );
105 else if ( m_versionBr == 2 )
108 tofDMBr2->Digitize( scint, m_besTofDigitsCollection );
110 else { tofDMBr2->Digitize( scint, m_besTofDigitsCollection ); }
114 if ( m_versionEc == 1 ) { tofDMEc1->Digitize( scint, m_besTofDigitsCollection ); }
115 else if ( m_versionEc == 2 ) { tofDMEc2->Digitize( scint, m_besTofDigitsCollection ); }
116 else if ( m_versionEc == 3 ) { tofDMEc3->Digitize( scint, m_besTofDigitsCollection ); }
117 else if ( m_versionEc == 4 ) { tofDMEc4->Digitize( scint, m_besTofDigitsCollection ); }
120 cout <<
"TofSim: Warning: BesTofDigitizerEcV2 is utilized otherwise!" << endl;
121 tofDMEc2->Digitize( scint, m_besTofDigitsCollection );
128 for (
size_t i = 0; i < m_scintGroup->size(); i++ )
130 delete ( *m_scintGroup )[i];
134 m_scintGroup->clear();
139 StoreDigiCollection( m_besTofDigitsCollection );
144 G4int partId, scinNb, size,
flag, trackId;
147 G4int nHits = m_THC->entries();
150 vector<G4int> deadTrackVec;
151 deadTrackVec.clear();
152 G4int runId = m_RealizationSvc->getRunId();
153 if ( ( runId >= -11396 && runId <= -8093 ) || ( runId > -1000000 && runId <= -23463 ) )
155 G4int previousTrack = -999;
156 vector<G4int> trackVec;
158 for ( G4int i = 0; i < nHits; i++ )
162 if ( trackId != previousTrack )
164 previousTrack = trackId;
166 vector<G4int>::iterator
iter = trackVec.begin();
167 for ( ;
iter != trackVec.end();
iter++ )
169 if ( ( *
iter ) == trackId )
177 trackVec.push_back( trackId );
178 G4double ranSignal = G4UniformRand();
179 if ( ranSignal > 0.988 )
181 deadTrackVec.push_back( trackId );
190 for ( G4int i = 0; i < nHits; i++ )
194 if ( ( runId >= -11396 && runId <= -8093 ) || ( runId > -1000000 && runId <= -23463 ) )
199 vector<G4int>::iterator
iter = deadTrackVec.begin();
200 for ( ;
iter != deadTrackVec.end();
iter++ )
202 if ( ( trackId == ( *
iter ) ) && ( partId != 3 && partId != 4 ) ) { aband =
true; }
204 if ( aband )
continue;
210 size = m_scintGroup->size();
215 for ( G4int j = 0; j < size; j++ )
217 oldScint = ( *m_scintGroup )[j];
239 m_scintGroup->push_back( newScint );