/** * @file Phase1Shielding.hh * @author: Ibrahin Pinera * @date 2016 SoLid - University of Antwerp */ #ifndef Phase1Shielding_h #define Phase1Shielding_h #include "G4LogicalVolume.hh" #include "G4MaterialPropertiesTable.hh" #include "G4UnionSolid.hh" #include "G4SubtractionSolid.hh" class SolidMaterials; class Phase1Shielding { public: Phase1Shielding(G4int, G4double, G4double, G4double); ~Phase1Shielding(); public: G4LogicalVolume *ShieldingConstruction(G4double container2ShieldingDelZ); G4double GetThickness(){return m_shieldingThickness;}; G4double GetHeight(){return m_shieldingFullHeight_outer;}; G4double GetWidth(){return m_shieldingFullWidth_outer;}; G4double GetOffSetX(){return m_shieldingOffSetX;}; G4double GetOffSetY(){return m_shieldingOffSetY;}; G4double GetOffSetZ(){return m_shieldingOffSetZ;}; private: G4int m_verboseLevel; G4LogicalVolume * logShielding; G4LogicalVolume * logShieldingTopSupport; G4VPhysicalVolume * physShieldingTopSupport; G4LogicalVolume * logShieldingTopPlane; G4VPhysicalVolume * physShieldingTopPlane; G4LogicalVolume * logShieldingExternalSupport; G4VPhysicalVolume * physShieldingExternalSupport; G4LogicalVolume * logShieldingInternalSupport; G4VPhysicalVolume * physShieldingInternalSupport; G4LogicalVolume * logShieldingWaterTank; G4VPhysicalVolume * physShieldingWaterTank; G4LogicalVolume * logShieldingWater; G4VPhysicalVolume * physShieldingWater; G4LogicalVolume * logShieldingSteelGutter; G4VPhysicalVolume * physShieldingSteelGutter; G4LogicalVolume * logShieldingFloorPlateBig; G4VPhysicalVolume * physShieldingFloorPlateBig; G4LogicalVolume * logShieldingFloorPlateSmall; G4VPhysicalVolume * physShieldingFloorPlateSmall; G4double m_tankLength; G4double m_tankHeight; G4double m_tankWidth; G4double m_tankThickness; G4double m_coverThickness; G4double m_sidewallHeight; G4double m_shieldingThickness; G4double m_topPlaneLength; G4double m_topPlaneHeight; G4double m_topPlaneWidth; G4double m_topPlaneOffSetY; G4double m_waterGutterWidth; G4double m_waterGutterThickness; G4double m_waterGutterHeight; G4double m_topContainer2SupportDistance; G4double m_supportBarsThickness; G4double m_supportVerBarsWidth; G4double m_supportTopBarsWidth; G4double m_supportLength; G4double m_supportHeight; G4double m_supportWidth; G4double m_shieldingLength_outer; G4double m_shieldingHeight_outer; G4double m_shieldingWidth_outer; G4double m_shieldingLength_inner; G4double m_shieldingHeight_inner; G4double m_shieldingWidth_inner; G4double m_shieldingFullLength_outer; G4double m_shieldingFullHeight_outer; G4double m_shieldingFullWidth_outer; G4double m_shieldingFullLength_inner; G4double m_shieldingFullHeight_inner; G4double m_shieldingFullWidth_inner; G4double m_floorPlateSmallLength; G4double m_floorPlateSmallHeight; G4double m_floorPlateSmallWidth; G4double m_floorPlateBigLength; G4double m_floorPlateBigHeight; G4double m_floorPlateBigWidth; G4double m_shieldingOffSetX; G4double m_shieldingOffSetY; G4double m_shieldingOffSetZ; G4SubtractionSolid* LeakageGutterConstruction(); G4UnionSolid* TopSupportConstruction(); G4SubtractionSolid* ExtrudedBarConstruction(G4double length, G4double Width, G4double thickness); }; #endif