163 TGeoShape* gasS =
new TGeoBBox(
"gasS", gas_XSize * 0.5, gas_YSize * 0.5, gas_ZSize * 0.5);
172 Fatal(
"Main",
"Invalid medium for gasV!");
181 gasV_transf[0]->
SetDx(0.0);
182 gasV_transf[0]->
SetDy(0.0);
183 gasV_transf[0]->
SetDz(0.0);
185 detectorV->
AddNode(gasV, 0, gasV_transf[0]);
194 new TGeoBBox(
"horizFGFrameS", horizFGFrame_XSize * 0.5, horizFGFrame_YSize * 0.5, horizFGFrame_ZSize * 0.5);
201 if (horizFGFrameV_medium) {
202 horizFGFrameV->
SetMedium(horizFGFrameV_medium);
204 Fatal(
"Main",
"Invalid medium for horizFGFrameV!");
213 horizFGFrameV_transf[0]->
SetDx(0.0);
214 horizFGFrameV_transf[0]->
SetDy(gas_YSize * 0.5 + horizFGFrame_YSize * 0.5);
215 horizFGFrameV_transf[0]->
SetDz(0.0);
218 horizFGFrameV_transf[1]->
SetDx(0.0);
219 horizFGFrameV_transf[1]->
SetDy(-(gas_YSize * 0.5 + horizFGFrame_YSize * 0.5));
220 horizFGFrameV_transf[1]->
SetDz(0.0);
222 detectorV->
AddNode(horizFGFrameV, 0, horizFGFrameV_transf[0]);
223 detectorV->
AddNode(horizFGFrameV, 1, horizFGFrameV_transf[1]);
232 new TGeoBBox(
"sideFGFrameS", sideFGFrame_XSize * 0.5, sideFGFrame_YSize * 0.5, sideFGFrame_ZSize * 0.5);
239 if (sideFGFrameV_medium) {
240 sideFGFrameV->
SetMedium(sideFGFrameV_medium);
242 Fatal(
"Main",
"Invalid medium for sideFGFrameV!");
251 sideFGFrameV_transf[0]->
SetDx(gas_XSize * 0.5 + sideFGFrame_XSize * 0.5);
252 sideFGFrameV_transf[0]->
SetDy(0.0);
253 sideFGFrameV_transf[0]->
SetDz(0.0);
256 sideFGFrameV_transf[1]->
SetDx(-(gas_XSize * 0.5 + sideFGFrame_XSize * 0.5));
257 sideFGFrameV_transf[1]->
SetDy(0.0);
258 sideFGFrameV_transf[1]->
SetDz(0.0);
260 detectorV->
AddNode(sideFGFrameV, 0, sideFGFrameV_transf[0]);
261 detectorV->
AddNode(sideFGFrameV, 1, sideFGFrameV_transf[1]);
270 new TGeoBBox(
"mylarFilmS", mylarFilm_XSize * 0.5, mylarFilm_YSize * 0.5, mylarFilm_ZSize * 0.5);
276 if (mylarFilmV_medium) {
277 mylarFilmV->
SetMedium(mylarFilmV_medium);
279 Fatal(
"Main",
"Invalid medium for mylarFilmV!");
288 mylarFilmV_transf[0]->
SetDx(0.0);
289 mylarFilmV_transf[0]->
SetDy(0.0);
290 mylarFilmV_transf[0]->
SetDz(gas_ZSize * 0.5 + mylarFilm_ZSize * 0.5);
293 mylarFilmV_transf[1]->
SetDx(0.0);
294 mylarFilmV_transf[1]->
SetDy(0.0);
295 mylarFilmV_transf[1]->
SetDz(-(gas_ZSize * 0.5 + mylarFilm_ZSize * 0.5));
297 detectorV->
AddNode(mylarFilmV, 0, mylarFilmV_transf[0]);
298 detectorV->
AddNode(mylarFilmV, 1, mylarFilmV_transf[1]);
302 Double_t horizAlumFrame_XSize = 27.0;
303 Double_t horizAlumFrame_YSize = 2.0;
304 Double_t horizAlumFrame_ZSize = 1.4;
306 TGeoShape* horizAlumFrameS =
new TGeoBBox(
"horizAlumFrameS", horizAlumFrame_XSize * 0.5, horizAlumFrame_YSize * 0.5,
307 horizAlumFrame_ZSize * 0.5);
314 if (horizAlumFrameV_medium) {
315 horizAlumFrameV->
SetMedium(horizAlumFrameV_medium);
317 Fatal(
"Main",
"Invalid medium for horizAlumFrameV!");
326 horizAlumFrameV_transf[0]->
SetDx(-(horizAlumFrame_XSize - horizFGFrame_XSize) * 0.5);
327 horizAlumFrameV_transf[0]->
SetDy((gas_YSize * 0.5 + horizFGFrame_YSize) - horizAlumFrame_YSize * 0.5);
328 horizAlumFrameV_transf[0]->
SetDz(gas_ZSize * 0.5 + mylarFilm_ZSize + horizAlumFrame_ZSize * 0.5);
331 horizAlumFrameV_transf[1]->
SetDx(-(horizAlumFrame_XSize - horizFGFrame_XSize) * 0.5);
332 horizAlumFrameV_transf[1]->
SetDy(-((gas_YSize * 0.5 + horizFGFrame_YSize) - horizAlumFrame_YSize * 0.5));
333 horizAlumFrameV_transf[1]->
SetDz(gas_ZSize * 0.5 + mylarFilm_ZSize + horizAlumFrame_ZSize * 0.5);
336 horizAlumFrameV_transf[2]->
SetDx(-(horizAlumFrame_XSize - horizFGFrame_XSize) * 0.5);
337 horizAlumFrameV_transf[2]->
SetDy((gas_YSize * 0.5 + horizFGFrame_YSize) - horizAlumFrame_YSize * 0.5);
338 horizAlumFrameV_transf[2]->
SetDz(-(gas_ZSize * 0.5 + mylarFilm_ZSize + horizAlumFrame_ZSize * 0.5));
341 horizAlumFrameV_transf[3]->
SetDx(-(horizAlumFrame_XSize - horizFGFrame_XSize) * 0.5);
342 horizAlumFrameV_transf[3]->
SetDy(-((gas_YSize * 0.5 + horizFGFrame_YSize) - horizAlumFrame_YSize * 0.5));
343 horizAlumFrameV_transf[3]->
SetDz(-(gas_ZSize * 0.5 + mylarFilm_ZSize + horizAlumFrame_ZSize * 0.5));
345 detectorV->
AddNode(horizAlumFrameV, 0, horizAlumFrameV_transf[0]);
346 detectorV->
AddNode(horizAlumFrameV, 1, horizAlumFrameV_transf[1]);
347 detectorV->
AddNode(horizAlumFrameV, 2, horizAlumFrameV_transf[2]);
348 detectorV->
AddNode(horizAlumFrameV, 3, horizAlumFrameV_transf[3]);
353 Double_t sideAlumFrame_YSize = 21.0;
357 new TGeoBBox(
"sideAlumFrameS", sideAlumFrame_XSize * 0.5, sideAlumFrame_YSize * 0.5, sideAlumFrame_ZSize * 0.5);
364 if (sideAlumFrameV_medium) {
365 sideAlumFrameV->
SetMedium(sideAlumFrameV_medium);
367 Fatal(
"Main",
"Invalid medium for sideAlumFrameV!");
376 sideAlumFrameV_transf[0]->
SetDx((gas_XSize * 0.5 + sideFGFrame_XSize) - sideAlumFrame_XSize * 0.5);
377 sideAlumFrameV_transf[0]->
SetDy(0.0);
378 sideAlumFrameV_transf[0]->
SetDz(gas_ZSize * 0.5 + mylarFilm_ZSize + sideAlumFrame_ZSize * 0.5);
381 sideAlumFrameV_transf[1]->
SetDx(-((gas_XSize * 0.5 + sideFGFrame_XSize) - sideAlumFrame_XSize * 0.5));
382 sideAlumFrameV_transf[1]->
SetDy(0.0);
383 sideAlumFrameV_transf[1]->
SetDz(gas_ZSize * 0.5 + mylarFilm_ZSize + sideAlumFrame_ZSize * 0.5);
386 sideAlumFrameV_transf[2]->
SetDx((gas_XSize * 0.5 + sideFGFrame_XSize) - sideAlumFrame_XSize * 0.5);
387 sideAlumFrameV_transf[2]->
SetDy(0.0);
388 sideAlumFrameV_transf[2]->
SetDz(-(gas_ZSize * 0.5 + mylarFilm_ZSize + sideAlumFrame_ZSize * 0.5));
391 sideAlumFrameV_transf[3]->
SetDx(-((gas_XSize * 0.5 + sideFGFrame_XSize) - sideAlumFrame_XSize * 0.5));
392 sideAlumFrameV_transf[3]->
SetDy(0.0);
393 sideAlumFrameV_transf[3]->
SetDz(-(gas_ZSize * 0.5 + mylarFilm_ZSize + sideAlumFrame_ZSize * 0.5));
395 detectorV->
AddNode(sideAlumFrameV, 0, sideAlumFrameV_transf[0]);
396 detectorV->
AddNode(sideAlumFrameV, 1, sideAlumFrameV_transf[1]);
397 detectorV->
AddNode(sideAlumFrameV, 2, sideAlumFrameV_transf[2]);
398 detectorV->
AddNode(sideAlumFrameV, 3, sideAlumFrameV_transf[3]);
406 TGeoShape* pcbPlankS =
new TGeoBBox(
"pcbPlankS", pcbPlank_XSize * 0.5, pcbPlank_YSize * 0.5, pcbPlank_ZSize * 0.5);
412 if (pcbPlankV_medium) {
415 Fatal(
"Main",
"Invalid medium for pcbPlankV!");
424 pcbPlankV_transf[0]->
SetDx(
425 -(horizAlumFrame_XSize * 0.5 + (horizAlumFrame_XSize - horizFGFrame_XSize) * 0.5 + pcbPlank_XSize * 0.5));
426 pcbPlankV_transf[0]->
SetDy(0.0);
427 pcbPlankV_transf[0]->
SetDz(0.0);
429 detectorV->
AddNode(pcbPlankV, 0, pcbPlankV_transf[0]);