00001 // $ID:$ 00002 // ============================================================================ 00003 // CVS tag $Name: v19r4 $ 00004 // ============================================================================ 00005 // $Log: IGiGaRunManager.h,v $ 00006 // Revision 1.5 2004/04/20 04:26:05 ibelyaev 00007 // fix bad interference between tools and Geant4 00008 // 00009 // Revision 1.4 2004/02/20 18:58:17 ibelyaev 00010 // update in IGiGaXXX and IIDIGiGaXXX 00011 // 00012 // Revision 1.3 2002/05/07 12:21:31 ibelyaev 00013 // see $GIGAROOT/doc/release.notes 7 May 2002 00014 // 00015 // Revision 1.2 2001/08/12 15:42:46 ibelyaev 00016 // improvements with Doxygen comments 00017 // 00018 // Revision 1.1 2001/08/01 09:42:23 ibelyaev 00019 // redesign and reimplementation of GiGaRunManager class 00020 // 00021 // ============================================================================ 00022 #ifndef GIGA_IGIGARUNMANAGER_H 00023 #define GIGA_IGIGARUNMANAGER_H 1 00024 // ============================================================================ 00025 // GiGa 00026 #include "GiGa/IGiGaInterface.h" 00027 // forward declarations from GiGa 00028 class IGiGaGeoSrc ; 00029 // forward declarations form Geant4 00030 class G4VUserPrimaryGeneratorAction ; 00031 class G4VUserDetectorConstruction ; 00032 class G4VUserPhysicsList ; 00033 class G4UserRunAction ; 00034 class G4UserEventAction ; 00035 class G4UserStackingAction ; 00036 class G4UserSteppingAction ; 00037 class G4UserTrackingAction ; 00038 class G4VPhysicalVolume ; 00039 class G4PrimaryVertex ; 00040 class G4Event ; 00041 class G4UIsession ; 00042 00051 class IGiGaRunManager: virtual public IGiGaInterface 00052 { 00053 00054 public: 00055 00059 static const InterfaceID& interfaceID () ; 00060 00065 virtual StatusCode declare( G4VUserPrimaryGeneratorAction * obj ) = 0 ; 00066 00071 virtual StatusCode declare( G4VPhysicalVolume * obj ) = 0 ; 00072 00077 virtual StatusCode declare( G4VUserDetectorConstruction * obj ) = 0 ; 00078 00083 virtual StatusCode declare( G4VUserPhysicsList * obj ) = 0 ; 00084 00089 virtual StatusCode declare( IGiGaGeoSrc * obj ) = 0 ; 00090 00095 virtual StatusCode declare( G4UserRunAction * obj ) = 0 ; 00096 00101 virtual StatusCode declare( G4UserEventAction * obj ) = 0 ; 00102 00107 virtual StatusCode declare( G4UserStackingAction * obj ) = 0 ; 00108 00113 virtual StatusCode declare( G4UserSteppingAction * obj ) = 0 ; 00114 00119 virtual StatusCode declare( G4UserTrackingAction * obj ) = 0 ; 00120 00125 virtual StatusCode prepareTheEvent ( G4PrimaryVertex * vertex = 0 ) = 0 ; 00126 00130 virtual StatusCode processTheEvent ( ) = 0 ; 00131 00136 virtual StatusCode retrieveTheEvent( const G4Event *& event ) = 0 ; 00137 00142 virtual StatusCode declare( G4UIsession * obj ) = 0 ; 00143 00144 00148 static IGiGaRunManager* instance () ; 00149 00153 static StatusCode destroy () ; 00154 00155 protected: 00156 00158 virtual ~IGiGaRunManager() ; 00159 00160 protected: 00161 00165 static StatusCode setInstance( IGiGaRunManager* value ); 00166 00167 private: 00168 00169 static IGiGaRunManager* s_manager ; 00170 00171 }; 00172 // ============================================================================ 00173 00174 // ============================================================================ 00175 // The END 00176 // ============================================================================ 00177 #endif 00178 // ============================================================================