4 // Geant4 implementation of the MonteCarlo interface methods
5 // for access to Geant4 at run level
7 #ifndef TG4_RUN_MANAGER_H
8 #define TG4_RUN_MANAGER_H
16 class TG4VRunConfiguration;
17 class TG4RunMessenger;
27 TG4RunManager(TG4VRunConfiguration* configuration, int argc, char** argv);
28 TG4RunManager(TG4VRunConfiguration* configuration);
31 // TG4RunManager(const TG4RunManager& right);
32 virtual ~TG4RunManager();
34 // static access method
35 static TG4RunManager* Instance();
40 void ProcessRun(G4int nofEvents);
43 Int_t CurrentEvent() const;
46 // methods for Geant4 only
50 void ProcessGeantMacro(G4String macroName);
51 void ProcessRootMacro(G4String macroName);
52 void ProcessGeantCommand(G4String command);
53 void ProcessRootCommand(G4String command);
59 TG4RunManager(const TG4RunManager& right);
62 TG4RunManager& operator=(const TG4RunManager& right);
65 G4RunManager* fRunManager; //G4RunManager
66 TG4RunMessenger* fMessenger; //messenger
72 Text_t* G4StringToTextT(G4String string) const;
74 // static data members
75 static TG4RunManager* fgInstance; //this instance
78 TG4VRunConfiguration* fRunConfiguration; //TG4VRunConfiguration
79 G4UIsession* fGeantUISession; //G4 UI
80 TApplication* fRootUISession; //Root UI
81 G4bool fRootUIOwner; //ownership of Root UI
87 inline TG4RunManager* TG4RunManager::Instance()
88 { return fgInstance; }
90 #endif //TG4_RUN_MANAGER_H