14 #include "G4RunManager.hh"
29 GGSUserActionsManager::GGSUserActionsManager() :
38 for (
unsigned int i = 0; i < _userActions.size(); i++)
39 if (_userActions[i]) {
40 delete _userActions[i];
43 for (
unsigned int i = 0; i < _steppingActions.size(); i++)
44 if (_steppingActions[i]) {
45 delete _steppingActions[i];
48 for (
unsigned int i = 0; i < _trackingActions.size(); i++)
49 if (_trackingActions[i]) {
50 delete _trackingActions[i];
53 for (
unsigned int i = 0; i < _eventActions.size(); i++)
54 if (_eventActions[i]) {
55 delete _eventActions[i];
58 for (
unsigned int i = 0; i < _runActions.size(); i++)
60 delete _runActions[i];
69 G4RunManager *runManager = G4RunManager::GetRunManager();
70 if (runManager->GetUserSteppingAction() ==
this)
71 runManager->SetUserAction((G4UserSteppingAction*) 0);
72 if (runManager->GetUserTrackingAction() ==
this)
73 runManager->SetUserAction((G4UserTrackingAction*) 0);
74 if (runManager->GetUserEventAction() ==
this)
75 runManager->SetUserAction((G4UserEventAction*) 0);
76 if (runManager->GetUserRunAction() ==
this)
77 runManager->SetUserAction((G4UserRunAction*) 0);
78 if (runManager->GetUserStackingAction() ==
this)
79 runManager->SetUserAction((G4UserStackingAction*) 0);
89 _userActions.push_back(userAction);
90 _userActions.back()->SetTrackingManagerPointer(fpTrackingManager);
98 _steppingActions.push_back(steppingAction);
104 if (trackingAction) {
105 _trackingActions.push_back(trackingAction);
106 _trackingActions.back()->SetTrackingManagerPointer(fpTrackingManager);
114 _eventActions.push_back(eventAction);
121 _runActions.push_back(runAction);
129 for (
unsigned int i = 0; i < _userActions.size(); i++)
133 for (
unsigned int i = 0; i < _steppingActions.size(); i++)
142 for (
unsigned int i = 0; i < _userActions.size(); i++)
146 for (
unsigned int i = 0; i < _trackingActions.size(); i++)
155 for (
unsigned int i = 0; i < _userActions.size(); i++)
159 for (
unsigned int i = 0; i < _trackingActions.size(); i++)
169 for (
unsigned int i = 0; i < _userActions.size(); i++)
173 for (
unsigned int i = 0; i < _eventActions.size(); i++)
184 for (
unsigned int i = 0; i < _userActions.size(); i++)
188 for (
unsigned int i = 0; i < _eventActions.size(); i++)
200 for (
unsigned int i = 0; i < _userActions.size(); i++)
204 for (
unsigned int i = 0; i < _runActions.size(); i++)
213 for (
unsigned int i = 0; i < _userActions.size(); i++)
217 for (
unsigned int i = 0; i < _runActions.size(); i++)
225 int classif, actionClassif;
228 for (
unsigned int i = 0; i < _userActions.size(); i++) {
229 actionClassif = _userActions[i]->ClassifyNewTrack(aTrack);
230 if (actionClassif != -100) {
231 if (actionClassif != classif && classif != -100) {
232 return G4UserStackingAction::ClassifyNewTrack(aTrack);
235 classif = actionClassif;
239 return G4UserStackingAction::ClassifyNewTrack(aTrack);
241 return (G4ClassificationOfNewTrack) classif;
247 for (
unsigned int i = 0; i < _userActions.size(); i++) {
248 _userActions[i]->NewStage();
256 for (
unsigned int i = 0; i < _userActions.size(); i++) {
257 _userActions[i]->PrepareNewEvent();
~GGSUserActionsManager()
Destructor.
void EndOfRunAction(const G4Run *run)
Override of EndOfRunAction method.
void AddAction(GGSUserAction *userAction)
Adds a general user action.
void PreUserTrackingAction(const G4Track *track)
Override of PreUserTrackingAction method.
void PostUserTrackingAction(const G4Track *track)
Override of PostUserTrackingAction method.
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack)
Override of ClassifyNewTrack method.
void UserSteppingAction(const G4Step *step)
Override of UserSteppingAction method.
static GGSRunManager * GetRunManager()
Static getter function the run manager.
void BeginOfEventAction(const G4Event *event)
Override of BeginOfEventAction method.
void BeginOfRunAction(const G4Run *run)
Override of BeginOfRunAction method.
The GGS ser actions manager.
static GGSRootFileService & GetInstance()
Get reference to GGSRootFileService unique instance.
Messenger for the user actions manager.
Mother class for user actions in GGS.
void NewStage()
Override of NewStage method.
static GGSUserActionsManager * GetInstance()
Get the singleton instance.
void EndOfEventAction(const G4Event *event)
Override of EndOfEventAction method.
void PrepareNewEvent()
Override of PrepareNewEvent method.