4 // Abstract class that takes care of creating all user defined classes
5 // that will be initialized and managed by Geant4 kernel (G4RunManager).
6 // It has one pure virtual method CreateUserConfiguration()
7 // that has to be be implemented by derived class.
9 #ifndef TG4V_RUN_CONFIGURATION_H
10 #define TG4V_RUN_CONFIGURATION_H
12 class TG4TrackingAction;
13 class TG4SteppingAction;
15 class G4VUserDetectorConstruction;
16 class G4VModularPhysicsList;
17 class G4VUserPrimaryGeneratorAction;
18 class G4UserRunAction;
19 class G4UserEventAction;
20 class G4UserStackingAction;
23 class TG4VRunConfiguration
26 TG4VRunConfiguration();
28 // TG4VRunConfiguration(const TG4VRunConfiguration& right);
29 virtual ~TG4VRunConfiguration();
32 void ConfigureRunManager(G4RunManager* runManager);
35 G4VModularPhysicsList* GetPhysicsList() const;
38 TG4VRunConfiguration(const TG4VRunConfiguration& right);
41 TG4VRunConfiguration& operator=(const TG4VRunConfiguration& right);
44 virtual void CreateUserConfiguration() = 0;
47 G4VUserDetectorConstruction* fDetectorConstruction; //det construction
48 G4VModularPhysicsList* fPhysicsList; //physics list
49 G4VUserPrimaryGeneratorAction* fPrimaryGenerator; //primary generator
50 G4UserRunAction* fRunAction; //run action
51 G4UserEventAction* fEventAction; //event action
52 TG4TrackingAction* fTrackingAction; //tracking action
53 TG4SteppingAction* fSteppingAction; //stepping action
54 G4UserStackingAction* fStackingAction; //stacking action
57 #endif //TG4V_RUN_CONFIGURATION_H