14 #include "G4RunManager.hh"
36 for (
unsigned int i = 0; i < _userActions.size(); i++)
37 if (_userActions[i]) {
38 delete _userActions[i];
41 for (
unsigned int i = 0; i < _steppingActions.size(); i++)
42 if (_steppingActions[i]) {
43 delete _steppingActions[i];
46 for (
unsigned int i = 0; i < _trackingActions.size(); i++)
47 if (_trackingActions[i]) {
48 delete _trackingActions[i];
51 for (
unsigned int i = 0; i < _eventActions.size(); i++)
52 if (_eventActions[i]) {
53 delete _eventActions[i];
56 for (
unsigned int i = 0; i < _runActions.size(); i++)
58 delete _runActions[i];
67 G4RunManager *runManager = G4RunManager::GetRunManager();
68 if (runManager->GetUserSteppingAction() ==
this)
69 runManager->SetUserAction((G4UserSteppingAction *)0);
70 if (runManager->GetUserTrackingAction() ==
this)
71 runManager->SetUserAction((G4UserTrackingAction *)0);
72 if (runManager->GetUserEventAction() ==
this)
73 runManager->SetUserAction((G4UserEventAction *)0);
74 if (runManager->GetUserRunAction() ==
this)
75 runManager->SetUserAction((G4UserRunAction *)0);
76 if (runManager->GetUserStackingAction() ==
this)
77 runManager->SetUserAction((G4UserStackingAction *)0);
87 _userActions.push_back(userAction);
88 _userActions.back()->SetTrackingManagerPointer(fpTrackingManager);
96 _steppingActions.push_back(steppingAction);
102 if (trackingAction) {
103 _trackingActions.push_back(trackingAction);
104 _trackingActions.back()->SetTrackingManagerPointer(fpTrackingManager);
112 _eventActions.push_back(eventAction);
119 _runActions.push_back(runAction);
127 for (
unsigned int i = 0; i < _userActions.size(); i++)
131 for (
unsigned int i = 0; i < _steppingActions.size(); i++)
140 for (
unsigned int i = 0; i < _userActions.size(); i++)
144 for (
unsigned int i = 0; i < _trackingActions.size(); i++)
153 for (
unsigned int i = 0; i < _userActions.size(); i++)
157 for (
unsigned int i = 0; i < _trackingActions.size(); i++)
166 for (
unsigned int i = 0; i < _userActions.size(); i++)
170 for (
unsigned int i = 0; i < _eventActions.size(); i++)
181 for (
unsigned int i = 0; i < _userActions.size(); i++)
185 for (
unsigned int i = 0; i < _eventActions.size(); i++)
197 for (
unsigned int i = 0; i < _userActions.size(); i++)
201 for (
unsigned int i = 0; i < _runActions.size(); i++)
210 for (
unsigned int i = 0; i < _userActions.size(); i++)
214 for (
unsigned int i = 0; i < _runActions.size(); i++)
222 int classif, actionClassif;
225 for (
unsigned int i = 0; i < _userActions.size(); i++) {
226 actionClassif = _userActions[i]->ClassifyNewTrack(aTrack);
227 if (actionClassif != -100) {
228 if (actionClassif != classif && classif != -100) {
229 return G4UserStackingAction::ClassifyNewTrack(aTrack);
231 classif = actionClassif;
235 return G4UserStackingAction::ClassifyNewTrack(aTrack);
237 return (G4ClassificationOfNewTrack)classif;
243 for (
unsigned int i = 0; i < _userActions.size(); i++) {
244 _userActions[i]->NewStage();
252 for (
unsigned int i = 0; i < _userActions.size(); i++) {
253 _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.