39 m_DigiMan = G4DigiManager::GetDMpointer();
40 m_inputFileStream =
new std::ifstream();
51 if ( m_tuningFile.size() == 0 ) { std::cout <<
"there is no tuning file" << std::endl; }
52 std::cout <<
"file number: " << m_tuningFile.size() << std::endl;
53 for (
int i = 0; i < m_tuningFile.size(); i++ )
59 HitChain->Add( m_tuningFile[i].c_str() );
62 TBranch* branch =
HitChain->GetBranch(
"TMcHitEvent" );
65 branch->SetAddress( &m_TMcHitEvent );
66 std::cout <<
"HitChain entries: " <<
HitChain->GetEntries() << std::endl;
118 G4int mdcHitCollID = -1;
119 mdcHitCollID = m_DigiMan->GetHitsCollectionID(
"BesMdcHitsCollection" );
120 if ( mdcHitCollID >= 0 )
126 G4int nHit = mdcDC->entries();
129 for ( G4int i = 0; i < nHit; i++ ) {
delete ( *mdcDC )[i]; }
130 mdcDC->GetVector()->clear();
133 std::vector<MdcHitType>::iterator
iter;
134 iter = ( m_evt->mdcHit ).hitCol.begin();
136 for ( ;
iter != ( m_evt->mdcHit ).hitCol.end();
iter++ )
142 newHit->
SetEdep( ( *iter ).energyDeposit );
143 newHit->
SetPos( G4ThreeVector( ( *iter ).posX, ( *iter ).posY, ( *iter ).posZ ) );
144 newHit->
SetDriftD( ( *iter ).driftDistance );
145 newHit->
SetTheta( ( *iter ).theta );
150 mdcDC->insert( newHit );
154 else { std::cerr <<
"BesTuningIO::can't get mdcHitsCollection" << std::endl; }
156 else { std::cerr <<
"BesTuningIO::can't get mdcHitCollID" << std::endl; }
186 THCID = m_DigiMan->GetDigiCollectionID(
"BesEmcDigitsCollection" );
196 int nHit = emcDC->entries();
200 for (
int i = 0; i < nHit; i++ ) {
delete ( *emcDC )[i]; }
201 emcDC->GetVector()->clear();
205 int nHits = m_TMcHitEvent->getMcDigiEmcCol()->GetEntries();
207 for (
int i = 0; i < nHits; i++ )
209 m_TMcDigiEmc = m_TMcHitEvent->getMcDigiEmc( i );
213 emcDigi->
SetPartId( m_TMcDigiEmc->GetPartId() );
214 emcDigi->
SetThetaNb( m_TMcDigiEmc->GetThetaNb() );
215 emcDigi->
SetPhiNb( m_TMcDigiEmc->GetPhiNb() );
216 emcDigi->
SetEnergy( m_TMcDigiEmc->GetEnergy() );
217 emcDigi->
SetTime( m_TMcDigiEmc->GetTime() );
222 emcDC->insert( emcDigi );
227 m_DigiMan->SetDigiCollection( THCID, emcDC );
234 THCID = m_DigiMan->GetHitsCollectionID(
"BesMdcHitsCollection" );
241 int nHit = mdcDC->entries();
244 for (
int i = 0; i < nHit; i++ ) {
delete ( *mdcDC )[i]; }
245 mdcDC->GetVector()->clear();
249 int nHits = m_TMcHitEvent->getMcHitMdcCol()->GetEntries();
251 for (
int i = 0; i < nHits; i++ )
253 m_TMcHitMdc = m_TMcHitEvent->getMcHitMdc( i );
257 mdcHit->
SetTrackID( m_TMcHitMdc->GetTrackID() );
258 mdcHit->
SetLayerNo( m_TMcHitMdc->GetLayerNo() );
259 mdcHit->
SetCellNo( m_TMcHitMdc->GetCellNo() );
260 mdcHit->
SetEdep( m_TMcHitMdc->GetEdep() );
261 mdcHit->
SetDriftD( m_TMcHitMdc->GetDriftD() );
262 mdcHit->
SetDriftT( m_TMcHitMdc->GetDriftT() );
263 mdcHit->
SetGlobalT( m_TMcHitMdc->GetGlobalT() );
264 mdcHit->
SetTheta( m_TMcHitMdc->GetTheta() );
266 mdcHit->
SetPosFlag( m_TMcHitMdc->GetPosFlag() );
268 TVector3 tTemp = m_TMcHitMdc->GetPos();
269 G4ThreeVector gTemp = G4ThreeVector( tTemp.X(), tTemp.Y(), tTemp.Z() );
273 mdcDC->insert( mdcHit );
282 ISvcLocator* svcLocator = Gaudi::svcLocator();
284 StatusCode sc = svcLocator->service(
"G4Svc", tmpSvc );
288 const double m_beamTime = m_TMcHitEvent->getBeamTime();
293 THCID = m_DigiMan->GetHitsCollectionID(
"BesTofHitsCollection" );
300 int nHit = tofDC->entries();
303 for (
int i = 0; i < nHit; i++ ) {
delete ( *tofDC )[i]; }
304 tofDC->GetVector()->clear();
308 int nHits = m_TMcHitEvent->getMcHitTofCol()->GetEntries();
310 for (
int i = 0; i < nHits; i++ )
312 m_TMcHitTof = m_TMcHitEvent->getMcHitTof( i );
317 tofHit->
SetG4Index( m_TMcHitTof->GetG4Index() );
318 tofHit->
SetPartId( m_TMcHitTof->GetPartId() );
319 tofHit->
SetScinNb( m_TMcHitTof->GetScinNb() );
320 tofHit->
SetEdep( m_TMcHitTof->GetEdep() );
321 tofHit->
SetStepL( m_TMcHitTof->GetStepL() );
322 tofHit->
SetTrackL( m_TMcHitTof->GetTrackL() );
323 tofHit->
SetTime( m_TMcHitTof->GetTime() );
324 tofHit->
SetDeltaT( m_TMcHitTof->GetDeltaT() );
325 tofHit->
SetCharge( m_TMcHitTof->GetCharge() );
327 TVector3 tTemp = m_TMcHitTof->GetPos();
328 G4ThreeVector gTemp( tTemp.X(), tTemp.Y(), tTemp.Z() );
331 tTemp = m_TMcHitTof->GetPDirection();
332 gTemp = G4ThreeVector( tTemp.X(), tTemp.Y(), tTemp.Z() );
335 tTemp = m_TMcHitTof->GetMomentum();
336 gTemp = G4ThreeVector( tTemp.X(), tTemp.Y(), tTemp.Z() );
341 tofDC->insert( tofHit );