MCPcopy Create free account
hub / github.com/Geant4/geant4 / PushToStack

Method PushToStack

source/event/src/G4SubEventTrackStack.cc:65–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

63}
64
65void G4SubEventTrackStack::PushToStack(const G4StackedTrack& aStackedTrack)
66{
67 if(fCurrentSE==nullptr)
68 {
69 fCurrentSE = new G4SubEvent(fSubEventType,fMaxEnt);
70 fCurrentSE->SetEvent(fCurrentEvent);
71 }
72 else if(fCurrentSE->size()==fMaxEnt)
73 {
74 // current sus-event is already full. Transfer it to G4Event and create a new sub-event.
75 auto nSubEv = G4EventManager::GetEventManager()
76 ->StoreSubEvent(fCurrentEvent,fSubEventType,fCurrentSE);
77 if(verboseLevel>1)
78 {
79 G4cout << "### event id " << fCurrentEvent->GetEventID()
80 << " -- sub-evnet " << nSubEv << " with " << fCurrentSE->size()
81 << " tracks is stored" << G4endl;
82 }
83 fCurrentSE = new G4SubEvent(fSubEventType,fMaxEnt);
84 fCurrentSE->SetEvent(fCurrentEvent);
85 }
86
87 // Sanity check
88 if(fCurrentEvent == nullptr || fCurrentSE->GetEvent() == nullptr
89 || fCurrentEvent != fCurrentSE->GetEvent())
90 {
91 G4ExceptionDescription ed;
92 ed << "Event object is broken or storing tracks of more than one events. PANIC!!!";
93 G4Exception("G4SubEventTrackStack::PushToStack()","SubEvt7003",FatalException,ed);
94 }
95
96 fCurrentSE->PushToStack(aStackedTrack);
97}
98
99void G4SubEventTrackStack::ReleaseSubEvent()
100{

Callers

nothing calls this directly

Calls 6

G4ExceptionFunction · 0.85
SetEventMethod · 0.80
sizeMethod · 0.45
StoreSubEventMethod · 0.45
GetEventIDMethod · 0.45
GetEventMethod · 0.45

Tested by

no test coverage detected