7 #include "GeoModelKernel/GeoShapeSubtraction.h"
8 #include "GeoModelKernel/GeoShapeUnion.h"
9 #include "GeoModelKernel/GeoShapeShift.h"
10 #include "GeoModelKernel/GeoBox.h"
11 #include "GeoModelKernel/GeoTube.h"
12 #include "GeoModelKernel/GeoLogVol.h"
13 #include "GaudiKernel/SystemOfUnits.h"
28 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1));
29 const GeoShapeSubtraction& blmFinal = blm1.subtract(((*blmWallHole)<< offset2));
31 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
32 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
39 const GeoBox* blmWallBox =
new GeoBox(
X/2,
Y/2,
Z/2);
40 const GeoLogVol* blmWallLog =
new GeoLogVol(
logname, blmWallBox, material);
41 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
48 const GeoTube* blmScrew =
new GeoTube(0, 2.5, 1);
49 const GeoTube* blmScrew1 =
new GeoTube(0, 1.5,
length/2);
51 GeoTrf::Translate3D offset1(0, 0,
length/2+1);
52 const GeoShapeUnion& blmFinal = blmScrew->add(((*blmScrew1) << offset1));
54 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
55 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
89 const GeoShapeUnion& blm1 = blmWallBox->add(((*blmWallBox1) << offset7));
90 const GeoShapeSubtraction& blm3 = blm1.subtract(((*blmWallHole1)<< offset8));
91 const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset1));
92 const GeoShapeSubtraction& blm5 = blm4.subtract(((*blmWallHole) << offset2));
93 const GeoShapeSubtraction& blm6 = blm5.subtract(((*blmWallHole) << offset3));
94 const GeoShapeSubtraction& blm7 = blm6.subtract(((*blmWallHole) << offset4));
95 const GeoShapeSubtraction& blm8 = blm7.subtract(((*blmWallHole) << offset5));
96 const GeoShapeSubtraction& blm9 = blm8.subtract(((*blmWallHole) << offset9));
97 const GeoShapeSubtraction& blm10 = blm9.subtract(((*blmWallHole) << offset10));
98 const GeoShapeSubtraction& blmFinal = blm10.subtract(((*blmWallHole) << offset6));
100 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
101 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
111 const GeoShape* blmWallHole =
new GeoTube(0,
s_hole_r, thick);
112 const GeoShape* blmWallHole1 =
new GeoBox(
s_width/2-3.5, thick, 5.9);
113 const GeoShape* blmWallHole2 =
new GeoBox(
s_width/2-6.1, thick, 4);
114 const GeoShape* blmWallHole3 =
new GeoBox(3.89, thick, 3.89);
134 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole3) << offset7));
135 const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2));
136 const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3));
137 const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset4));
138 const GeoShapeSubtraction& blm5 = blm4.subtract(((*blmWallHole1) << offset5));
139 const GeoShapeSubtraction& blm6 = blm5.subtract(((*blmWallHole2) << offset6));
140 const GeoShapeSubtraction& blm7 = blm6.subtract(((*blmWallHole) << offset9));
141 const GeoShapeSubtraction& blm8 = blm7.subtract(((*blmWallHole) << offset10));
142 const GeoShapeSubtraction& blmFinal = blm8.subtract(((*blmWallHole) << offset1));
144 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
145 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
152 const GeoShape* blmWallHole =
new GeoTube(0,
s_hole_r, thick);
166 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1));
167 const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2));
168 const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3));
169 const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset4));
170 const GeoShapeSubtraction& blm5 = blm4.subtract(((*blmWallHole) << offset5));
171 const GeoShapeSubtraction& blmFinal = blm5.subtract(((*blmWallHole) << offset6));
173 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
174 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
182 const GeoShape* blmWallBox =
new GeoBox(
s_width/2, thick/2,
s_length/2);
183 const GeoShape* blmWallHole =
new GeoTube(0,
s_hole_r, thick);
184 const GeoShape* blmWallHole1 =
new GeoBox(
s_width/2-3.5, thick, 5.9);
185 const GeoShape* blmWallHole2 =
new GeoBox(
s_width/2-6.1, thick, 4);
187 const GeoShape* blmWallHole3 =
new GeoBox(3.9, thick, 3.9);
194 GeoTrf::Translate3D offset5(0, 0, 1.5);
195 GeoTrf::Translate3D offset6(0, 0, -7.175);
206 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole3) << offset8));
207 const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2));
208 const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3));
209 const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset4));
210 const GeoShapeSubtraction& blm5 = blm4.subtract(((*blmWallHole1) << offset5));
211 const GeoShapeSubtraction& blm6 = blm5.subtract(((*blmWallHole2) << offset6));
213 const GeoShapeSubtraction& blmFinal = blm6.subtract(((*blmWallHole) << offset1));
215 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
216 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
223 const GeoShape* blmWallBox =
new GeoBox(
s_width/2, thick/2,
s_length/2);
224 const GeoShape* blmWallHole =
new GeoTube(0,
s_hole_r, thick);
225 const GeoShape* blmWallHole1 =
new GeoBox(
s_width/2-3.5, thick, 5.425);
231 GeoTrf::Translate3D offset5(0, 0, 2.075);
236 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1));
237 const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2));
238 const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3));
239 const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset4));
240 const GeoShapeSubtraction& blmFinal = blm4.subtract(((*blmWallHole1) << offset5));
242 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
243 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
250 const GeoShape* blmWallBox =
new GeoBox(
s_width/2, thick/2,
s_length/2);
251 const GeoShape* blmWallHole =
new GeoTube(0,
s_hole_r, thick);
252 const GeoShape* blmWallHole1 =
new GeoBox(
s_width/2-3.5, thick, 5.425);
253 const GeoShape* blmWallHole2 =
new GeoBox(
s_width/2-8.1, thick, 4);
259 GeoTrf::Translate3D offset5(0, 0, 2.075);
260 GeoTrf::Translate3D offset6(0, 0, -7.175);
265 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1));
266 const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2));
267 const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3));
268 const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset4));
269 const GeoShapeSubtraction& blm5 = blm4.subtract(((*blmWallHole1) << offset5));
270 const GeoShapeSubtraction& blmFinal = blm5.subtract(((*blmWallHole2) << offset6));
272 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
273 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);
280 const GeoShape* blmWallBox =
new GeoBox(
s_width/2, thick/2,
s_length/2);
281 const GeoShape* blmWallHole =
new GeoTube(0,
s_hole_r, thick);
291 const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1));
292 const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2));
293 const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3));
294 const GeoShapeSubtraction& blmFinal = blm3.subtract(((*blmWallHole) << offset4));
296 const GeoLogVol* blmWallLog =
new GeoLogVol(
"blmWallLog", &blmFinal, material);
297 GeoPhysVol* blmWallPhys =
new GeoPhysVol(blmWallLog);