00001 // $Id: IGiGaGeomCnvSvc.h,v 1.8 2007/08/02 15:03:23 gcorti Exp $ 00002 #ifndef GIGACNV_IGIGAGEOMCNVSVC_H 00003 #define GIGACNV_IGIGAGEOMCNVSVC_H 1 00004 00005 // Include files 00006 // from GiGa 00007 #include "GiGa/IGiGaGeoSrc.h" 00008 #include "GiGaCnv/IGiGaCnvSvc.h" 00009 #include "GiGaCnv/GiGaVolume.h" 00010 00011 // forward declarations 00012 class ISolid; 00013 class IMagneticFieldSvc; 00014 00015 class G4LogicalVolume; 00016 class G4VSolid; 00017 class G4Material; 00018 00019 class IGiGaSensDet ; 00020 class IGiGaMagField ; 00021 class IGiGaFieldMgr ; 00022 00032 class IGiGaGeomCnvSvc: virtual public IGiGaCnvSvc, 00033 virtual public IGiGaGeoSrc { 00034 public: 00035 00037 static const InterfaceID& interfaceID() ; 00038 00044 virtual G4Material* material( const std::string& name ) = 0; 00045 00051 virtual GiGaVolume volume( const std::string& name ) = 0; 00052 00057 virtual G4VSolid* solid 00058 ( const ISolid* Solid ) = 0 ; 00059 00065 virtual StatusCode sensitive 00066 ( const std::string& name , 00067 IGiGaSensDet*& det ) = 0 ; 00068 00074 virtual StatusCode fieldMgr 00075 ( const std::string& name , 00076 IGiGaFieldMgr*& mgr ) = 0 ; 00077 00087 virtual G4LogicalVolume* createG4LV 00088 ( G4VSolid* solid , 00089 G4Material* material , 00090 const std::string& name ) = 0 ; 00091 00098 virtual G4Material* g4Material 00099 ( const std::string& Name ) = 0 ; 00100 00108 virtual G4LogicalVolume* g4LVolume 00109 ( const std::string& Name ) = 0 ; 00110 00116 virtual G4VSolid* g4Solid 00117 ( const ISolid* Solid ) = 0 ; 00118 00125 virtual StatusCode sensDet 00126 ( const std::string& Name , 00127 IGiGaSensDet*& Det ) = 0 ; 00128 00135 virtual StatusCode magnetic 00136 ( const std::string& name , 00137 IGiGaMagField*& mag ) = 0 ; 00138 00145 virtual StatusCode magField 00146 ( const std::string& Name , 00147 IGiGaMagField*& Mag ) = 0 ; 00148 00151 virtual bool useAlignment() = 0; 00152 00155 virtual bool alignAll() = 0; 00156 00158 virtual const std::vector<std::string>& alignDets() = 0; 00159 00160 protected: 00161 00162 virtual ~IGiGaGeomCnvSvc() ; 00163 00164 }; 00165 00166 00167 #endif 00168