ATLAS Offline Software
Loading...
Searching...
No Matches
BCM_Wall Class Reference

Beam Condition Monitor wall builder. More...

#include <BCM_Wall.h>

Collaboration diagram for BCM_Wall:

Public Member Functions

GeoPhysVol * Build (double halfX, double halfY, double thick, const std::string &logname, const GeoMaterial *material)
GeoPhysVol * Build (double halfX, double halfY, double thick_one, double thick_two, const GeoMaterial *material_one, const GeoMaterial *material_two, StoredMaterialManager *mat_mgr)
GeoPhysVol * Build (double halfX, double halfY, double thick_one, double thick_two, double thick_three, const GeoMaterial *material_one, const GeoMaterial *material_two, const GeoMaterial *material_three, StoredMaterialManager *mat_mgr)

Detailed Description

Beam Condition Monitor wall builder.

Author
Bostjan Macek bostj.nosp@m.an.m.nosp@m.acek@.nosp@m.cern.nosp@m..ch

Definition at line 22 of file BCM_Wall.h.

Member Function Documentation

◆ Build() [1/3]

GeoPhysVol * BCM_Wall::Build ( double halfX,
double halfY,
double thick,
const std::string & logname,
const GeoMaterial * material )

Definition at line 15 of file BCM_Wall.cxx.

16{
17 const GeoBox* bcmWallBox = new GeoBox(halfX, halfY, thick/2);
18 const GeoLogVol* bcmWallLog = new GeoLogVol(logname, bcmWallBox, material);
19 GeoPhysVol* bcmWallPhys = new GeoPhysVol(bcmWallLog);
20
21 return bcmWallPhys;
22}

◆ Build() [2/3]

GeoPhysVol * BCM_Wall::Build ( double halfX,
double halfY,
double thick_one,
double thick_two,
const GeoMaterial * material_one,
const GeoMaterial * material_two,
StoredMaterialManager * mat_mgr )

Definition at line 24 of file BCM_Wall.cxx.

25{
26 double wallthick = thick_one + thick_two;
27
28 //outside box
29 const GeoMaterial* air = mat_mgr->getMaterial("std::Air");
30 const GeoBox* bcmWallBox = new GeoBox(halfX, halfY, wallthick/2);
31 const GeoLogVol* bcmWallLog=new GeoLogVol("bcmWallLog", bcmWallBox, air);
32 GeoPhysVol* bcmWallPhys = new GeoPhysVol(bcmWallLog);
33
34 //adding first layer (material one)
35
36 const GeoBox* bcmWallOneBox = new GeoBox(halfX, halfY, thick_one/2);
37 const GeoLogVol* bcmWallOneLog = new GeoLogVol("bcmWallLog", bcmWallOneBox, material_one);
38 GeoPhysVol* bcmWallOnePhys = new GeoPhysVol(bcmWallOneLog);
39
40 GeoTrf::Translate3D WallOnePos(0,0,thick_one/2 - wallthick/2);
41 GeoTransform* xform = new GeoTransform(WallOnePos);
42 bcmWallPhys->add(xform);
43 bcmWallPhys->add(bcmWallOnePhys);
44
45 //adding second layer (material two)
46
47 const GeoBox* bcmWallTwoBox = new GeoBox(halfX, halfY, thick_two/2);
48 const GeoLogVol* bcmWallTwoLog = new GeoLogVol("bcmWallLog", bcmWallTwoBox, material_two);
49 GeoPhysVol* bcmWallTwoPhys = new GeoPhysVol(bcmWallTwoLog);
50
51 GeoTrf::Translate3D WallTwoPos(0,0,wallthick/2 - thick_two/2);
52 xform = new GeoTransform(WallTwoPos);
53 bcmWallPhys->add(xform);
54 bcmWallPhys->add(bcmWallTwoPhys);
55
56 return bcmWallPhys;
57}
virtual const GeoMaterial * getMaterial(const std::string &name)=0

◆ Build() [3/3]

GeoPhysVol * BCM_Wall::Build ( double halfX,
double halfY,
double thick_one,
double thick_two,
double thick_three,
const GeoMaterial * material_one,
const GeoMaterial * material_two,
const GeoMaterial * material_three,
StoredMaterialManager * mat_mgr )

Definition at line 59 of file BCM_Wall.cxx.

60{
61 double wallthick = thick_one + thick_two + thick_three;
62
63 //outside box
64 const GeoMaterial* air = mat_mgr->getMaterial("std::Air");
65 const GeoBox* bcmWallBox = new GeoBox(halfX, halfY, wallthick/2);
66 const GeoLogVol* bcmWallLog=new GeoLogVol("bcmWallLog", bcmWallBox, air);
67 GeoPhysVol* bcmWallPhys = new GeoPhysVol(bcmWallLog);
68
69 //adding first layer (material one)
70
71 const GeoBox* bcmWallOneBox = new GeoBox(halfX, halfY, thick_one/2);
72 const GeoLogVol* bcmWallOneLog = new GeoLogVol("bcmWallLog", bcmWallOneBox, material_one);
73 GeoPhysVol* bcmWallOnePhys = new GeoPhysVol(bcmWallOneLog);
74
75 GeoTrf::Translate3D WallOnePos(0,0,thick_one/2 - wallthick/2);
76 GeoTransform* xform = new GeoTransform(WallOnePos);
77 bcmWallPhys->add(xform);
78 bcmWallPhys->add(bcmWallOnePhys);
79
80 //adding second layer (material two)
81
82 const GeoBox* bcmWallTwoBox = new GeoBox(halfX, halfY, thick_two/2);
83 const GeoLogVol* bcmWallTwoLog = new GeoLogVol("bcmWallLog", bcmWallTwoBox, material_two);
84 GeoPhysVol* bcmWallTwoPhys = new GeoPhysVol(bcmWallTwoLog);
85
86 GeoTrf::Translate3D WallTwoPos(0,0,thick_one -wallthick/2 + thick_two/2);
87 xform = new GeoTransform(WallTwoPos);
88 bcmWallPhys->add(xform);
89 bcmWallPhys->add(bcmWallTwoPhys);
90
91 //adding third layer (material three)
92
93 const GeoBox* bcmWallThreeBox = new GeoBox(halfX, halfY, thick_three/2);
94 const GeoLogVol* bcmWallThreeLog = new GeoLogVol("bcmWallLog", bcmWallThreeBox, material_three);
95 GeoPhysVol* bcmWallThreePhys = new GeoPhysVol(bcmWallThreeLog);
96
97 GeoTrf::Translate3D WallThreePos(0,0,wallthick/2 - thick_three/2);
98 xform = new GeoTransform(WallThreePos);
99 bcmWallPhys->add(xform);
100 bcmWallPhys->add(bcmWallThreePhys);
101
102 return bcmWallPhys;
103}

The documentation for this class was generated from the following files: