#ifndef mgDetectorConstruction_h #define mgDetectorConstruction_h 1 #include "globals.hh" #include "G4VUserDetectorConstruction.hh" #include "tls.hh" class G4LogicalVolume; class G4VPhysicalVolume; class G4Material; class mgDetectorConstruction : public G4VUserDetectorConstruction { public: mgDetectorConstruction(); virtual ~mgDetectorConstruction(); public: virtual G4VPhysicalVolume* Construct(); //Set Methods void SetSphereMaterial(G4String ); void SetCheckOverlaps(G4bool ); G4LogicalVolume* GetShell1Volume() const { return fLogicSphere; } G4LogicalVolume* GetShell2Volume() const { return fLogicShell2; } G4LogicalVolume* GetShell3Volume() const { return fLogicShell4; } G4Material* GetSphereMaterial() const { return fSphereMaterial; } private: //methods void DefineMaterials(); G4VPhysicalVolume* DefineVolumes(); //data members G4LogicalVolume* fLogicSphere; //pointer to detector orb G4LogicalVolume* fLogicShell; //pointer to the buffer-detector shell G4LogicalVolume* fLogicShell1; //pointer to the buffer layer shell G4LogicalVolume* fLogicShell2; //pointer to the buffer-water shell G4LogicalVolume* fLogicShell3; //pointer to the water layer shell G4LogicalVolume* fLogicShell4; //pointer to the outermost shell //G4LogicalVolume* fLogicShell5; //pointer to the logical boundary shell G4Material* vacuum; G4Material* fSphereMaterial; G4Material* iron; G4Material* fShellMaterial; G4bool fCheckOverlaps; //Option to activate shecking of volume overlaps. }; #endif