4 // Author: I. Hrivnacova
6 // Class TG4VRunConfiguration
7 // --------------------------
8 // Abstract class that takes care of creating all user defined classes
9 // that will be initialized and managed by Geant4 kernel (G4RunManager).
10 // It has one pure virtual method CreateUserConfiguration()
11 // that has to be be implemented by a derived class.
13 #ifndef TG4V_RUN_CONFIGURATION_H
14 #define TG4V_RUN_CONFIGURATION_H
16 class TG4TrackingAction;
17 class TG4SteppingAction;
18 class TG4VSDConstruction;
20 class TG4ModularPhysicsList;
22 class G4VUserDetectorConstruction;
23 class G4VUserPrimaryGeneratorAction;
24 class G4UserRunAction;
25 class G4UserEventAction;
26 class G4UserStackingAction;
29 class TG4VRunConfiguration
32 TG4VRunConfiguration();
34 // TG4VRunConfiguration(const TG4VRunConfiguration& right);
35 virtual ~TG4VRunConfiguration();
38 void ConfigureRunManager(G4RunManager* runManager);
41 TG4ModularPhysicsList* GetPhysicsList() const;
42 TG4VSDConstruction* GetSDConstruction() const;
45 TG4VRunConfiguration(const TG4VRunConfiguration& right);
48 TG4VRunConfiguration& operator=(const TG4VRunConfiguration& right);
51 virtual void CreateUserConfiguration() = 0;
54 G4VUserDetectorConstruction* fDetectorConstruction; //det construction
55 TG4VSDConstruction* fSDConstruction; //sensitive detectors
57 TG4ModularPhysicsList* fPhysicsList; //physics list
58 G4VUserPrimaryGeneratorAction* fPrimaryGenerator; //primary generator
59 G4UserRunAction* fRunAction; //run action
60 G4UserEventAction* fEventAction; //event action
61 TG4TrackingAction* fTrackingAction; //tracking action
62 TG4SteppingAction* fSteppingAction; //stepping action
63 G4UserStackingAction* fStackingAction; //stacking action
66 #endif //TG4V_RUN_CONFIGURATION_H