52 [[nodiscard]] GeoPhysVol*
build();
58 GeoPhysVol* createProximityShielding();
59 GeoPhysVol* createTopShielding();
60 GeoPhysVol* createBottomShielding();
61 GeoPhysVol* createShieldingPedestal();
62 GeoPhysVol* createHeVolume();
63 const GeoShape* createSteelCoreShape();
66 static constexpr double cm = GeoModelKernelUnits::cm;
67 static constexpr double mm = GeoModelKernelUnits::mm;
68 static constexpr double deg = GeoModelKernelUnits::degree;
71 static constexpr double s_vacuumBoxHalfX = 80.0 * cm;
72 static constexpr double s_vacuumBoxHalfY = 113.55 * cm;
73 static constexpr double s_vacuumBoxHalfZ = 150.0 * cm;
76 static constexpr double s_proxEnvHalfX = 80.0 * cm;
77 static constexpr double s_proxEnvHalfY = 56.3 * cm;
78 static constexpr double s_proxEnvHalfZ = 150.0 * cm;
79 static constexpr double s_proxInnerHalfX = 55.0 * cm;
80 static constexpr double s_proxInnerHalfY = 56.3 * cm;
81 static constexpr double s_proxInnerHalfZ = 110.0 * cm;
82 static constexpr double s_proxInnerOffsetZ = 15.0 * cm;
83 static constexpr double s_proxHoleRadius = 10.0 * cm;
84 static constexpr double s_proxHoleHalfZ = 27.5 * cm;
85 static constexpr double s_proxHoleOffsetY = 17.2 * cm;
86 static constexpr double s_proxHoleOffsetZ = -122.5 * cm;
87 static constexpr double s_proxPosY = -2.75 * cm;
90 static constexpr double s_topShieldHalfX = 80.0 * cm;
91 static constexpr double s_topShieldHalfY = 30.0 * cm;
92 static constexpr double s_topShieldHalfZ = 150.0 * cm;
93 static constexpr double s_topShieldPosY = 83.55 * cm;
96 static constexpr double s_bottomShieldHalfX = 80.0 * cm;
97 static constexpr double s_bottomShieldHalfY = 27.25 * cm;
98 static constexpr double s_bottomShieldHalfZ = 150.0 * cm;
99 static constexpr double s_bottomShieldPosY = -86.3 * cm;
102 static constexpr double s_pedestalHalfX = 53.5 * cm;
103 static constexpr double s_pedestalHalfY = 7.5 * cm;
104 static constexpr double s_pedestalHalfZ = 108.5 * cm;
105 static constexpr double s_pedestalPosY = -51.55 * cm;
106 static constexpr double s_pedestalPosZ = 15.0 * cm;
110 static constexpr double s_targetAreaPosY = 14.45 * cm;
111 static constexpr double s_targetAreaPosZ = -43.25 * cm;
118 static constexpr double s_heRadius = 237.0 * mm;
119 static constexpr double s_heZMin = -37.8 * mm;
120 static constexpr double s_heZMax = 1509.7 * mm;
121 static constexpr double s_heCentreZ = 0.5 * (s_heZMin + s_heZMax);
124 static constexpr int s_numDisks = 33;
125 static constexpr double s_diskRadius = 125.0 * mm;
126 static constexpr double s_lastDiskRadius = 157.0 * mm;
127 static constexpr std::array<std::array<double, 2>, s_numDisks> s_diskZ = {{
128 {0.0 * mm, 30.0 * mm}, {34.0 * mm, 44.0 * mm}, {48.0 * mm, 56.0 * mm},
129 {60.0 * mm, 68.0 * mm}, {72.0 * mm, 80.0 * mm}, {84.0 * mm, 92.0 * mm},
130 {96.0 * mm, 104.0 * mm}, {108.0 * mm, 116.0 * mm}, {120.0 * mm, 128.0 * mm},
131 {132.0 * mm, 140.0 * mm}, {144.0 * mm, 152.0 * mm}, {156.0 * mm, 164.0 * mm},
132 {168.0 * mm, 176.0 * mm}, {180.0 * mm, 188.0 * mm}, {192.0 * mm, 200.0 * mm},
133 {204.0 * mm, 212.0 * mm}, {216.0 * mm, 224.0 * mm}, {228.0 * mm, 237.0 * mm},
134 {241.0 * mm, 252.0 * mm}, {256.0 * mm, 268.0 * mm}, {272.0 * mm, 285.0 * mm},
135 {289.0 * mm, 302.0 * mm}, {306.0 * mm, 322.0 * mm}, {326.0 * mm, 346.0 * mm},
136 {350.0 * mm, 370.0 * mm}, {375.0 * mm, 396.0 * mm}, {401.0 * mm, 431.0 * mm},
137 {435.0 * mm, 475.0 * mm}, {479.0 * mm, 534.0 * mm}, {538.0 * mm, 611.0 * mm},
138 {615.0 * mm, 721.0 * mm}, {725.0 * mm, 1001.0 * mm}, {1005.0 * mm, 1460.0 * mm},
142 static constexpr double s_coreZMin = 7.2 * mm;
143 static constexpr double s_coreZMax = 1443.7 * mm;
144 static constexpr double s_coreBoreR1 = 125.0 * mm;
145 static constexpr double s_coreBoreR2 = 157.0 * mm;
146 static constexpr double s_coreBoreStepZ = 1005.0 * mm;
147 static constexpr double s_coreOuterR = 207.0 * mm;
148 static constexpr double s_coreFrontOuterR = 195.0 * mm;
149 static constexpr double s_coreFrontZMax = 55.2 * mm;
150 static constexpr double s_coreRearOuterR = 190.0 * mm;
151 static constexpr double s_coreRearZMin = 1233.7 * mm;
156 static constexpr double s_grooveRmin = 120.0 * mm;
157 static constexpr double s_grooveRmax = 153.0 * mm;
158 static constexpr double s_groovePhiWidth = 61.0 * deg;
159 static constexpr std::array<std::array<double, 2>, 5> s_groovesTop = {{
160 {12.2 * mm, 57.0 * mm},
161 {95.0 * mm, 153.0 * mm},
162 {191.0 * mm, 257.0 * mm},
163 {300.0 * mm, 464.0 * mm},
164 {559.0 * mm, 933.2 * mm},
166 static constexpr std::array<std::array<double, 2>, 4> s_groovesBottom = {{
167 {45.0 * mm, 104.7 * mm},
168 {142.7 * mm, 200.7 * mm},
169 {238.7 * mm, 334.7 * mm},
170 {385.7 * mm, 1005.0 * mm},
174 static constexpr double s_rearGrooveRmin = 152.0 * mm;
175 static constexpr double s_rearGrooveRmax = 182.0 * mm;
176 static constexpr double s_rearGroovePhiWidth = 49.0 * deg;
177 static constexpr double s_rearGrooveZMin = 1005.0 * mm;
178 static constexpr double s_rearGrooveZMax = 1441.7 * mm;
185 static constexpr double s_jacketRmin = 217.0 * mm;
186 static constexpr double s_jacketRmax = 225.0 * mm;
187 static constexpr double s_jacketZMin = s_coreFrontZMax;
188 static constexpr double s_jacketZMax = 1198.7 * mm;
189 static constexpr double s_flangeFrontRmin = 195.0 * mm;
190 static constexpr double s_flangeFrontZMin = -23.8 * mm;
191 static constexpr double s_noseZMin = -35.8 * mm;
192 static constexpr double s_flangeRearRmax = 237.0 * mm;
193 static constexpr double s_flangeRearZMax = 1263.7 * mm;
198 static constexpr double s_windowRmax = 141.0 * mm;
199 static constexpr double s_windowZMin = -33.5 * mm;
200 static constexpr double s_windowZMax = -25.5 * mm;
206 static constexpr double s_coverRing1Rmin = 196.0 * mm;
207 static constexpr double s_coverRing2Rmin = 226.0 * mm;
208 static constexpr double s_coverZMax = -17.8 * mm;
209 static constexpr double s_coverPlateHalfX = 300.0 * mm;
210 static constexpr double s_coverPlateHalfY = 325.0 * mm;
211 static constexpr double s_coverPlateHalfZ = 10.0 * mm;
212 static constexpr double s_coverPlateOffsetY = -75.0 * mm;
217 static constexpr std::array<std::array<double, 3>, 6> s_endcapPlanes = {{
218 {1263.7 * mm, 229.0 * mm, 237.0 * mm},
219 {1413.7 * mm, 229.0 * mm, 237.0 * mm},
220 {1450.0 * mm, 212.0 * mm, 223.0 * mm},
221 {1480.0 * mm, 142.0 * mm, 166.5 * mm},
222 {1505.0 * mm, 0.0 * mm, 67.0 * mm},
223 {1509.7 * mm, 0.0 * mm, 67.0 * mm},