82 G4int mdcDigiCollID = -1;
83 mdcDigiCollID = m_DigiMan->GetDigiCollectionID(
"BesMdcDigisCollection" );
84 if ( mdcDigiCollID >= 0 )
88 G4int nDigi = mdcDC->entries();
93 for (
int i = 0; i < nDigi; i++ )
95 mdcDigi = ( *mdcDC )[i];
97 if ( m_G4Svc->GetMdcDedxFlag() == 1 ) { charge = int( mdcDigi->
GetEdep() ); }
104 aMdcDigiCol->push_back( aMdcDigi );
110 StatusCode scMdc = m_evtSvc->registerObject(
"/Event/Digi/MdcDigiCol", aMdcDigiCol );
111 if ( scMdc != StatusCode::SUCCESS )
112 G4cout <<
"Could not register MDC digi collection" << G4endl;
137 G4int tofDigiCollID = -1;
138 tofDigiCollID = m_DigiMan->GetDigiCollectionID(
"BesTofDigitsCollection" );
140 if ( tofDigiCollID >= 0 )
144 G4int nDigi = tofDC->entries();
149 vector<BesTofDigi*>* vecDC = tofDC->GetVector();
150 for (
int i = 0; i < nDigi - 1; i++ )
152 for (
int j = i + 1; j < nDigi; j++ )
154 if ( ( *vecDC )[i]->GetTrackIndex() > ( *vecDC )[j]->GetTrackIndex() )
156 digi = ( *vecDC )[i];
157 ( *vecDC )[i] = ( *vecDC )[j];
158 ( *vecDC )[j] = digi;
164 for (
int i = 0; i < nDigi; i++ )
166 digi = ( *tofDC )[i];
178 unsigned int layer = 0;
198 if ( charge >= 8192 )
201 charge = ( charge | 0x080000 );
204 ( (
time & 0x07e000 ) | charge );
209 if ( charge & 0x80000 )
214 aTofDigiCol->push_back( tofDigi );
227 if ( charge >= 8192 )
230 charge = ( charge | 0x080000 );
233 ( (
time & 0x07e000 ) | charge );
238 if ( charge & 0x80000 )
243 aTofDigiCol->push_back( tofDigi );
247 if ( barrel_ec == 3 || barrel_ec == 4 )
249 unsigned int endcap = 0;
251 unsigned int strip = digi->
GetStrip();
252 if ( barrel_ec == 4 )
259 unsigned int tleading;
262 else { tleading = 0; }
263 unsigned int ttrailing;
266 else { ttrailing = 0; }
269 aTofDigiCol->push_back( tofDigi );
280 else { tleading = 0; }
283 else { ttrailing = 0; }
284 tofDigi =
new TofDigi( ident, tleading, ttrailing );
286 aTofDigiCol->push_back( tofDigi );
294 StatusCode scTof = m_evtSvc->registerObject(
"/Event/Digi/TofDigiCol", aTofDigiCol );
295 if ( scTof != StatusCode::SUCCESS )
296 { G4cout <<
"Could not register TOF digi collection" << G4endl; }
304 G4int emcDigiCollID = -1;
305 emcDigiCollID = m_DigiMan->GetDigiCollectionID(
"BesEmcDigitsCollection" );
306 if ( emcDigiCollID >= 0 )
310 G4int nDigi = emcDC->entries();
315 vector<BesEmcDigi*>* vecDC = emcDC->GetVector();
316 for (
int i = 0; i < nDigi - 1; i++ )
317 for (
int j = i + 1; j < nDigi; j++ )
318 if ( ( *vecDC )[i]->GetTrackIndex() > ( *vecDC )[j]->GetTrackIndex() )
320 digi = ( *vecDC )[i];
321 ( *vecDC )[i] = ( *vecDC )[j];
322 ( *vecDC )[j] = digi;
325 for (
int i = 0; i < nDigi; i++ )
327 digi = ( *emcDC )[i];
337 aEmcDigiCol->push_back( emcDigi );
343 StatusCode scEmc = m_evtSvc->registerObject(
"/Event/Digi/EmcDigiCol", aEmcDigiCol );
344 if ( scEmc != StatusCode::SUCCESS )
345 G4cout <<
"Could not register EMC digi collection" << G4endl;
370 G4int mucDigiCollID = -1;
371 mucDigiCollID = m_DigiMan->GetDigiCollectionID(
"BesMucDigisCollection" );
372 if ( mucDigiCollID >= 0 )
376 G4int nDigi = mucDC->entries();
381 for (
int i = 0; i < nDigi; i++ )
383 digi = ( *mucDC )[i];
388 aMucDigiCol->push_back( mucDigi );
394 StatusCode scMuc = m_evtSvc->registerObject(
"/Event/Digi/MucDigiCol", aMucDigiCol );
395 if ( scMuc != StatusCode::SUCCESS )
396 G4cout <<
"Could not register MUC digi collection" << G4endl;