27 #ifndef SToGS_UserActionInitialization_h
28 #define SToGS_UserActionInitialization_h 1
30 #include "G4Version.hh"
32 #include "G4String.hh"
33 #include "G4UserRunAction.hh"
34 #include "G4UserEventAction.hh"
35 #include "G4UserTrackingAction.hh"
36 #include "G4UserSteppingAction.hh"
38 #if G4VERSION_NUMBER < 1000
40 #include "G4VUserActionInitialization.hh"
46 class G4VSensitiveDetector;
47 class G4VUserPrimaryGeneratorAction;
61 class AllActions :
virtual public G4UserRunAction,
virtual public G4UserEventAction,
virtual public G4UserTrackingAction,
virtual public G4UserSteppingAction
67 AllActions(G4String opt): G4UserRunAction(), G4UserEventAction(), G4UserTrackingAction(), G4UserSteppingAction(),
fOption(opt)
111 G4UserRunAction *theRealAction;
113 RunAction(G4UserRunAction *theaction = 0x0) : G4UserRunAction(), theRealAction(theaction)
122 return theRealAction->GenerateRun();
123 return G4UserRunAction::GenerateRun();
128 theRealAction->BeginOfRunAction(aRun);
133 theRealAction->EndOfRunAction(aRun);
143 G4UserEventAction *theRealAction;
145 EventAction(G4UserEventAction *theaction = 0x0) : G4UserEventAction(), theRealAction(theaction)
153 theRealAction->BeginOfEventAction(event);
158 theRealAction->EndOfEventAction(event);
167 G4UserTrackingAction *theRealAction;
169 TrackingAction(G4UserTrackingAction *theaction = 0x0) : G4UserTrackingAction(), theRealAction(theaction)
183 G4UserSteppingAction *theRealAction;
185 SteppingAction(G4UserSteppingAction *theaction = 0x0) : G4UserSteppingAction(), theRealAction(theaction)
193 theRealAction->UserSteppingAction(step);
207 #if G4VERSION_NUMBER < 1000
227 virtual G4VUserPrimaryGeneratorAction *
GetGun(G4String which, G4String opt)
const;
242 std::pair < G4String, G4String >
SetWhichGenerator(G4String which_gene, G4String option);
245 static G4VSensitiveDetector *
GetTrackerSD( G4String name =
"/SToGS/SD/Tracker" );
247 static G4VSensitiveDetector *
GetCopClusterSD( G4String name =
"/SToGS/SD/CopCluster" );
255 virtual G4VUserPrimaryGeneratorAction *
GetGun()
const;
268 G4cout <<
" ------ INF ------ from SToGS::AllInOneUserActionInitialization::BuildForMaster() " << G4endl;
269 #if G4VERSION_NUMBER < 1000
270 G4cout <<
" *** ERROR *** SToGS::AllInOneUserActionInitialization::BuildForMaster() should never be called by this version of Geant4 " << G4endl;
275 G4cout <<
" ------ END ------ from SToGS::AllInOneUserActionInitialization::BuildForMaster() " << G4endl;
277 virtual void Build ()
const = 0;
void BuildAndRegister(AllActions *) const
add the passed class to the list of allocated ones. It is required for a proper destruction ...
virtual G4UserRunAction * GetRunAction() const
depending on one string, select a given gun
virtual void EndOfEventAction(const G4Event *event)
virtual void Build() const
virtual void BeginOfEventAction(const G4Event *)
virtual void PreUserTrackingAction(const G4Track *atrack)
virtual void PreUserTrackingAction(const G4Track *)
a G4 user's action manage by a single AllAction class
virtual void Build() const =0
virtual void EndOfRunAction(const G4Run *)
UserActionInitialization(G4String which_user_action_opt, G4String which_gene, G4String which_gene_opt)
SteppingAction(G4UserSteppingAction *theaction=0x0)
std::vector< AllActions * > fAllUserAction
list of allocated AllActions to delete them
Base class for a Run action that calls a concrete one.
virtual G4Run * GenerateRun()
Base class for a Tracking action that calls a concrete one.
virtual ~AllInOneUserActionInitialization()
virtual G4UserEventAction * GetEventAction() const
AllInOneUserActionInitialization(G4String which_user_action_opt, G4String which_gene, G4String which_gene_opt)
Base class for a Steeping action that calls a concrete one.
EventAction(G4UserEventAction *theaction=0x0)
virtual ~TrackingAction()
virtual void BuildForMaster() const
provide default ... likely to be changed since RunManager may be different from Slave and Master ...
virtual G4UserTrackingAction * GetTrackingAction() const =0
virtual void BeginOfEventAction(const G4Event *event)
virtual void EndOfEventAction(const G4Event *)
virtual ~SteppingAction()
static G4VSensitiveDetector * GetCopClusterSD(G4String name="/SToGS/SD/CopCluster")
to get a general SToGS Calorimeter. In Multi-threading mode, return a new instance otherwise a global...
Base class for a Event action that calls a concrete one.
TrackingAction(G4UserTrackingAction *theaction=0x0)
virtual void EndOfRunAction(const G4Run *aRun)
std::pair< G4String, G4String > fWhichGenerator
to keep what generator to be used. Defaut is "-","-", means the concrete implementation provides its ...
virtual void BeginOfRunAction(const G4Run *aRun)
RunAction(G4UserRunAction *theaction=0x0)
virtual G4Run * GenerateRun()
Base class to manage SToGS user's hooks + the generator.
virtual void UserSteppingAction(const G4Step *step)
static G4VSensitiveDetector * GetTrackerSD(G4String name="/SToGS/SD/Tracker")
to get a general SToGS tracker. In Multi-threading mode, return a new instance otherwise a global one...
virtual G4UserSteppingAction * GetSteppingAction() const =0
virtual void BeginOfRunAction(const G4Run *)
virtual G4VUserPrimaryGeneratorAction * GetGun() const
depending on one string, select a given gun
virtual G4UserRunAction * GetRunAction() const =0
depending on one string, select a given gun
virtual void UserSteppingAction(const G4Step *)
G4String fUserActionOption
action passed to the created user's actions if required
virtual void PostUserTrackingAction(const G4Track *atrack)
virtual void PostUserTrackingAction(const G4Track *)
std::pair< G4String, G4String > SetWhichGenerator(G4String which_gene, G4String option)
once allocated the generator associated with a UserActionInititialization could be changed here befor...
Base class that regroups in the same space all user's hooks. Convenient for sharing similar data...
virtual G4UserEventAction * GetEventAction() const =0
void Register(AllActions *) const
virtual G4UserSteppingAction * GetSteppingAction() const
virtual G4UserTrackingAction * GetTrackingAction() const
virtual ~UserActionInitialization()