ATLAS Offline Software
Public Member Functions | List of all members
BCM_Wall Class Reference

#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 }

◆ 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:
StoredMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(const std::string &name)=0
MakeSliceSet.logname
logname
Definition: MakeSliceSet.py:34