14 LOM16(G4bool pPlaceHarness =
false);
23 ss <<
"LOM16/" << m_index;
27 G4UnionSolid* pressureVessel(
const G4double pOutRad, G4String pSuffix);
30 void placeCADSupportStructure();
32 void appendEquatorBand();
35 void placePMTsAndGelpads(G4VSolid* lGelSolid,G4LogicalVolume* lGelLogical);
36 void setPMTAndGelpadPositions();
37 void createGelpadLogicalVolumes(G4VSolid* lGelSolid);
38 void placePMTs(G4LogicalVolume* lInnerVolumeLogical);
39 void placeGelpads(G4LogicalVolume* lInnerVolumeLogical);
42 G4bool m_placeHarness =
true;
43 G4bool m_harnessUnion =
true;
46 std::vector<G4ThreeVector> m_positionsPMT;
47 std::vector<G4ThreeVector> m_positionsGelpad;
48 std::vector<G4double> m_thetaPMT;
49 std::vector<G4double> m_phiPMT;
52 std::stringstream m_converter;
53 std::stringstream m_converter2;
56 std::vector<G4LogicalVolume*> m_gelPadLogical;
58 G4String m_PMTModel =
"pmt_Hamamatsu_4inch";
60 const G4double m_xInternalCAD = 68.248*mm;
61 const G4double m_yInternalCAD = 0*mm;
62 const G4double m_zInternalCAD = -124.218*mm;
63 const G4double m_gelPadDZ = 30.0*mm;
64 const G4double m_glassOutRad = 153.2*mm;
65 const G4double m_glassThick = 12.0*mm;
66 const G4double m_glassInRad = m_glassOutRad - m_glassThick;
67 const G4double m_cylinderHeight = 68.8*mm;
68 const G4double m_cylinderAngle = 2.5*deg;
69 const G4double m_gelThicknessFrontPMT = 3.6*mm;
70 const G4double m_gelThickness = 4.5*mm;
71 const G4double m_EqPMTrOffset = 2.6*mm;
72 const G4double m_EqPMTzOffset = 62.5*mm;
73 const G4double m_reflectorHalfZ = 15*mm;
74 const G4double m_reflectorConeSheetThickness = 0.5*mm;
75 const G4double m_reflectorConeToHolder = 1.55*mm;
76 const G4double m_thetaPolar = 36.0*deg;
77 const G4double m_thetaEquatorial = 62.0*deg;
78 const G4int m_numberPolarPMTs = 4;
79 const G4int m_numberEqPMTs = 4;
80 const G4double m_polarEquatorialPMTphiPhase = 45.0*deg;
81 const G4double m_equatorialTiltAngle = 15.0*deg;
82 const G4double m_polarPadOpeningAngle = 30.0*deg;
83 const G4double m_equatorialPadOpeningAngle = 22.0*deg;
84 const G4int m_totalNumberPMTs = (m_numberPolarPMTs + m_numberEqPMTs) * 2;
87 G4double m_maxPMTRadius;
89 const G4double m_equatorialBandWidth = 45 * mm;
90 const G4double m_equatorialBandThickness = 1 * mm;