1 #ifndef _G4XTankSimulatorAG_G4XTankConstruction_h_
2 #define _G4XTankSimulatorAG_G4XTankConstruction_h_
9 #include <utl/TabulatedFunction.h>
12 #include <G4VUserDetectorConstruction.hh>
14 #include <G4Colour.hh>
15 #include <G4Element.hh>
16 #include <G4ElementTable.hh>
17 #include <G4LogicalBorderSurface.hh>
18 #include <G4LogicalVolume.hh>
19 #include <G4Material.hh>
20 #include <G4MaterialTable.hh>
21 #include <G4PVPlacement.hh>
22 #include <G4SDManager.hh>
23 #include <G4Sphere.hh>
24 #include <G4ThreeVector.hh>
26 #include <G4VisAttributes.hh>
27 #include <G4GeometryManager.hh>
28 #include <G4PhysicalVolumeStore.hh>
29 #include <G4LogicalVolumeStore.hh>
30 #include <G4SolidStore.hh>
31 #include <G4RunManager.hh>
32 #include <CLHEP/Units/SystemOfUnits.h>
33 #include <G4SubtractionSolid.hh>
36 #include <G4Ellipsoid.hh>
38 namespace G4XTankSimulatorAG {
79 G4Element *
elN, *
elO, *
elAl, *
elFe, *
elH, *
elSi, *
elB, *
elNa, *
elC, *
elMg, *
elCl, *
elK, *
elCa, *
elTi;
80 G4Material *
Air, *
Water, *
Vacuum, *
SiO2, *
B2O2, *
Na2O, *
Pyrex, *
Pyrex1, *
CH3, *
Al2O3, *
Fe2O3, *
TiO2, *
CaO, *
MgO, *
K2O;
G4LogicalVolume * tank_log
static double fFaceRadiusz
G4VPhysicalVolume * pmt1_phys
G4VPhysicalVolume * pmt1_phys1
G4LogicalVolume * expHall_log
G4LogicalVolume * pmt2_log1
G4Ellipsoid * interface_out_aux
G4VPhysicalVolume * pmt2_phys1
G4VPhysicalVolume * ground_phys
void CreateAluminium(void)
static double fSolarPanelX
G4VPhysicalVolume * side_phys
G4SubtractionSolid * pmt_solid
G4LogicalVolume * inner1_log
G4VPhysicalVolume * solarPanel_phys
G4MaterialPropertiesTable * airMPT
G4VPhysicalVolume * inner1_phys
static utl::TabulatedFunction fLinerBACKSCATTERCONSTANT
static utl::TabulatedFunction fLinerABSORPTION
G4SubtractionSolid * interface_solid
static double fSolarPanelThickness
G4LogicalVolume * pmt3_log1
static double fInterfaceThickness
Class to hold collection (x,y) points and provide interpolation between them.
G4Ellipsoid * dome_in_aux
static utl::TabulatedFunction fInterfaceABSORPTION
G4VPhysicalVolume * tank_phys
G4LogicalVolume * dome2_log
static double fElecBoxTiltAngle
static double fInterfaceRzmax
static double fInterfaceRzmin
G4VPhysicalVolume * interface2_phys
G4MaterialPropertiesTable * pmtdomeMPT
static double fTankRadius
G4VPhysicalVolume * pmt3_phys
G4LogicalVolume * ground_log
G4LogicalVolume * inner_log
G4VPhysicalVolume * inner2_phys
G4LogicalVolume * pmt3_log
void CreateInterface(void)
G4VPhysicalVolume * Construct(void)
static double fFaceRadius
G4VPhysicalVolume * pmt3_phys1
static double fTankHalfHeight
G4LogicalVolume * pmt1_log1
G4VPhysicalVolume * CreateTank(void)
static double fSolarPanelLength
G4VPhysicalVolume * dome2_phys
G4Ellipsoid * interface_in_aux
G4VPhysicalVolume * interface1_phys
G4LogicalVolume * interface2_log
G4LogicalVolume * side_log
static utl::TabulatedFunction fInterfaceRINDEX
G4MaterialPropertiesTable * interfaceMPT
G4LogicalVolume * inner3_log
G4MaterialPropertiesTable * waterMPT
G4LogicalBorderSurface * bottomsurface
static double fGlassThickness
static utl::TabulatedFunction fLinerTYVEK_RINDEX
static utl::TabulatedFunction fPmtfaceRINDEX
G4LogicalVolume * interface3_log
G4VPhysicalVolume * dome1_phys
void SetDetectorParameters(void)
static double fElecBoxThickness
void SetRequiredParameters(double)
static double fElecBoxLength
G4VPhysicalVolume * dome3_phys
G4LogicalVolume * top_log
static utl::TabulatedFunction fPmtdomeABSORPTION
G4Ellipsoid * inner_solid
void SetXMLParameters(void)
G4LogicalVolume * interface1_log
G4SubtractionSolid * dome_solid
G4VPhysicalVolume * elecBox_phys
G4LogicalVolume * dome1_log
static double fInterfaceRmin
G4SubtractionSolid * pmt_solid1
G4LogicalBorderSurface * sidesurface
static utl::TabulatedFunction fWaterRINDEX
void CleanupFreestore(void)
G4LogicalVolume * inner2_log
G4LogicalVolume * dome3_log
G4Ellipsoid * dome_out_aux
G4MaterialPropertiesTable * pmtfaceMPT1
G4VPhysicalVolume * inner3_phys
static utl::TabulatedFunction fPmtdomeRINDEX
static utl::TabulatedFunction fLinerREFLECTIVITY
static utl::TabulatedFunction fLinerSPECULARSPIKECONSTANT
G4VPhysicalVolume * bottom_phys
static double fSolarPanelTiltAngle
static double fSolarPanelWidth
static double fSIGMA_ALPHA
G4VPhysicalVolume * pmt2_phys
G4OpticalSurface * OpLinerSurface
G4MaterialPropertiesTable * linerMPT
G4LogicalVolume * pmt2_log
G4MaterialPropertiesTable * linerOpticalMPT
G4VPhysicalVolume * interface3_phys
G4XTankConstruction(double)
G4LogicalVolume * bottom_log
static utl::TabulatedFunction fWaterABSORPTION
G4LogicalVolume * pmt1_log
G4LogicalBorderSurface * topsurface
void GetDataForThisTank(void)
G4VPhysicalVolume * expHall_phys
static double fFaceActiveRadius
void CreatePrimitives(void)
static double fTankThickness
static double fInterfaceRmax
G4MaterialPropertiesTable * pmtfaceMPT
static double fDomeThickness
G4LogicalVolume * elecBox_log
void CreateElements(void)
static utl::TabulatedFunction fLinerSPECULARLOBECONSTANT
static double fSolarPanelZ
G4VPhysicalVolume * top_phys
static double fElecBoxWidth
static double fSolarPanelY
void CreateMaterials(void)
static utl::TabulatedFunction fPmtfaceABSORPTION
static double fGroundThickness
G4LogicalVolume * solarPanel_log