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

Method DoProcessing

source/event/src/G4EventManager.cc:91–358  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89}
90
91void G4EventManager::DoProcessing(G4Event* anEvent,
92 G4TrackVector* trackVector, G4bool IDhasAlreadySet)
93{
94 abortRequested = false;
95 G4ApplicationState currentState = stateManager->GetCurrentState();
96 if(currentState != G4State_GeomClosed)
97 {
98 G4Exception("G4EventManager::ProcessOneEvent", "Event0002", JustWarning,
99 "IllegalState -- Geometry not closed: cannot process an event.");
100 return;
101 }
102 currentEvent = anEvent;
103 if(!subEventParaWorker) stateManager->SetNewState(G4State_EventProc);
104 if(storetRandomNumberStatusToG4Event > 1)
105 {
106 std::ostringstream oss;
107 CLHEP::HepRandom::saveFullState(oss);
108 randomNumberStatusToG4Event = oss.str();
109 currentEvent->SetRandomNumberStatusForProcessing(randomNumberStatusToG4Event);
110 }
111
112 // Resetting Navigator has been moved to G4EventManager,
113 // so that resetting is now done for every event.
114 G4ThreeVector center(0,0,0);
115 G4Navigator* navigator = G4TransportationManager::GetTransportationManager()
116 ->GetNavigatorForTracking();
117 navigator->LocateGlobalPointAndSetup(center,nullptr,false);
118
119 G4Track* track = nullptr;
120 G4TrackStatus istop = fAlive;
121
122#ifdef G4VERBOSE
123 if ( verboseLevel > 0 )
124 {
125 G4cout << "=====================================" << G4endl;
126 G4cout << " G4EventManager::ProcessOneEvent() " << G4endl;
127 if(trackVector!=nullptr) G4cout << " for a sub-event" << G4endl;
128 G4cout << "=====================================" << G4endl;
129 }
130#endif
131
132 trackContainer->PrepareNewEvent(currentEvent);
133
134#ifdef G4_STORE_TRAJECTORY
135 trajectoryContainer = nullptr;
136// trajectoryContainer = currentEvent->GetTrajectoryContainer();
137// if(trajectoryContainer==nullptr) {
138// trajectoryContainer = new G4TrajectoryContainer;
139// currentEvent->SetTrajectoryContainer(trajectoryContainer);
140// }
141#endif
142
143 sdManager = G4SDManager::GetSDMpointerIfExist();
144 if(sdManager != nullptr)
145 { currentEvent->SetHCofThisEvent(sdManager->PrepareNewEvent()); }
146
147 if(!subEventParaWorker && userEventAction != nullptr) userEventAction->BeginOfEventAction(currentEvent);
148

Callers

nothing calls this directly

Calls 15

G4ExceptionFunction · 0.85
SetNewStateMethod · 0.80
SetHCofThisEventMethod · 0.80
GimmePrimariesMethod · 0.80
GetNTotalTrackMethod · 0.80
PopNextTrackMethod · 0.80
ProcessOneTrackMethod · 0.80
GetTrackStatusMethod · 0.80
GimmeTrajectoryMethod · 0.80

Tested by

no test coverage detected