/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/fit/include/RAT/MiniSim.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/fit/include/RAT/MiniSim.hh Source File
Ratpac-two
MiniSim.hh
1 #ifndef __RAT__MiniSim__
2 #define __RAT__MiniSim__
3 
4 #include <G4UserEventAction.hh>
5 #include <G4UserRunAction.hh>
6 #include <G4UserStackingAction.hh>
7 #include <G4UserSteppingAction.hh>
8 #include <G4UserTrackingAction.hh>
9 #include <G4VUserPrimaryGeneratorAction.hh>
10 
11 namespace RAT {
12 
13 class MiniSim : public G4UserEventAction, G4UserTrackingAction, G4VUserPrimaryGeneratorAction, G4UserSteppingAction {
14  public:
15  MiniSim();
16  virtual ~MiniSim();
17 
18  virtual void BeamOn(int nevents);
19 
20  // Override these for your simulation needs
21  virtual void GeneratePrimaries(G4Event *argEvent) = 0; // You must override at least this
22  virtual void BeginOfEventAction(const G4Event * /*anEvent*/){};
23  virtual void EndOfEventAction(const G4Event * /*anEvent*/){};
24  virtual void PreUserTrackingAction(const G4Track * /*aTrack*/){};
25  virtual void PostUserTrackingAction(const G4Track * /*aTrack*/){};
26  virtual void UserSteppingAction(const G4Step *step); // defaults to running scintillation/reemission
27 
28  protected:
29  virtual void TakeSimControl();
30  virtual void ReleaseSimControl();
31 
32  bool fHaveControl;
33  bool fUseGLG4;
34  const G4UserRunAction *fOrigRunAction;
35  const G4UserEventAction *fOrigEventAction;
36  const G4UserStackingAction *fOrigStackingAction;
37  const G4UserTrackingAction *fOrigTrackingAction;
38  const G4UserSteppingAction *fOrigSteppingAction;
39  const G4VUserPrimaryGeneratorAction *fOrigPrimaryGeneratorAction;
40 };
41 
42 } // namespace RAT
43 
44 #endif
Definition: MiniSim.hh:13
Definition: CCCrossSecMessenger.hh:29