GGS(GenericGEANT4Simulation)Software  2.99.0
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Macros
GGSMultiUserAction.h
Go to the documentation of this file.
1 /*
2  * GGSMultiUserAction.h
3  *
4  * Created on: 26 Oct 2020
5  * Author: Nicola Mori
6  */
7 
10 #ifndef GGSMULTIUSERACTION_H_
11 #define GGSMULTIUSERACTION_H_
12 
15 
16 #include <memory>
17 #include <vector>
18 
33 
34 public:
37 
43 
48  void AddAction(std::unique_ptr<GGSUserAction> &&userAction);
49 
54  void AddAction(std::unique_ptr<G4UserSteppingAction> &&steppingAction);
55 
60  void AddAction(std::unique_ptr<G4UserTrackingAction> &&trackingAction);
61 
66  void AddAction(std::unique_ptr<G4UserEventAction> &&eventAction);
67 
72  void AddAction(std::unique_ptr<G4UserRunAction> &&runAction);
73 
78  void AddAction(std::unique_ptr<G4UserStackingAction> &&stackingAction);
79 
86  void UserSteppingAction(const G4Step *step);
87 
94  void PreUserTrackingAction(const G4Track *track);
95 
102  void PostUserTrackingAction(const G4Track *track);
103 
110  void BeginOfEventAction(const G4Event *event);
111 
118  void EndOfEventAction(const G4Event *event);
119 
126  void BeginOfRunAction(const G4Run *run);
127 
134  void EndOfRunAction(const G4Run *run);
135 
146  G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack);
147 
152  void NewStage();
153 
158  void PrepareNewEvent();
159 
160 private:
161  std::vector<std::unique_ptr<GGSUserAction>> _userActions;
162  std::vector<std::unique_ptr<G4UserSteppingAction>> _steppingActions;
163  std::vector<std::unique_ptr<G4UserTrackingAction>> _trackingActions;
164  std::vector<std::unique_ptr<G4UserEventAction>> _eventActions;
165  std::vector<std::unique_ptr<G4UserRunAction>> _runActions;
166  std::vector<std::unique_ptr<G4UserStackingAction>> _stackingActions;
167 
168  GGSMUAMessenger _messenger;
169 };
170 
171 #endif /* GGSMULTIUSERACTION_H_ */
void BeginOfRunAction(const G4Run *run)
Override of BeginOfRunAction method.
GGSMultiUserAction()
constructor.
void PostUserTrackingAction(const G4Track *track)
Override of PostUserTrackingAction method.
void UserSteppingAction(const G4Step *step)
Override of UserSteppingAction method.
void PrepareNewEvent()
Override of PrepareNewEvent method.
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack)
Override of ClassifyNewTrack method.
void EndOfRunAction(const G4Run *run)
Override of EndOfRunAction method.
void NewStage()
Override of NewStage method.
A multiplexer container for user actions.
~GGSMultiUserAction()
Destructor.
void AddAction(std::unique_ptr< GGSUserAction > &&userAction)
Adds a general user action.
void EndOfEventAction(const G4Event *event)
Override of EndOfEventAction method.
void BeginOfEventAction(const G4Event *event)
Override of BeginOfEventAction method.
Mother class for user actions in GGS.
Definition: GGSUserAction.h:27
Messenger class for GGSMultiUserAction.
void PreUserTrackingAction(const G4Track *track)
Override of PreUserTrackingAction method.