00001 #ifndef GAUDIKERNEL_IG4SVC_H
00002 #define GAUDIKERNEL_IG4SVC_H
00003
00004
00005 #include "GaudiKernel/IService.h"
00006
00007 class G4RunManager;
00008 class G4UImanager;
00009 class G4Event;
00010 class G4Run;
00011 class G4VUserDetectorConstruction;
00012 class G4VUserPhysicsList;
00013 class G4UserRunAction;
00014 class G4UserEventAction;
00015 class G4VUserPrimaryGeneratorAction;
00016 class G4UserStackingAction;
00017 class G4UserTrackingAction;
00018 class G4UserSteppingAction;
00019
00020
00021 static const InterfaceID IID_IG4Svc("IG4Svc", 1 , 0);
00022
00023
00024
00025
00026
00027
00028
00029
00030 class IG4Svc : virtual public IService {
00031
00032 public:
00033
00034
00035 virtual G4RunManager* runMgr() = 0;
00036 virtual G4UImanager* uiMgr() = 0;
00037 virtual void StartUISession() = 0;
00038
00039 virtual const G4Event* GetCurrentEvent() const = 0;
00040 virtual const G4Run* GetCurrentRun() const = 0;
00041
00042 virtual void SetUserInitialization(G4VUserDetectorConstruction*) = 0;
00043 virtual void SetUserInitialization(G4VUserPhysicsList*) = 0;
00044
00045 virtual void SetUserAction(G4UserRunAction *) = 0;
00046 virtual void SetUserAction(G4UserEventAction *) = 0;
00047 virtual void SetUserAction(G4VUserPrimaryGeneratorAction*) = 0;
00048 virtual void SetUserAction(G4UserStackingAction*) = 0;
00049 virtual void SetUserAction(G4UserTrackingAction*) = 0;
00050 virtual void SetUserAction(G4UserSteppingAction*) = 0;
00051
00052
00053
00054
00056 static const InterfaceID& interfaceID() { return IID_IG4Svc; }
00057
00058 virtual void G4Init() = 0;
00059 private:
00060 };
00061
00062 #endif
00063