ATLAS Offline Software
Public Member Functions | Static Public Attributes | List of all members
BLM_Wall Class Reference

#include <BLM_Wall.h>

Collaboration diagram for BLM_Wall:

Public Member Functions

GeoPhysVol * BuildLayerI (double thick, const GeoMaterial *material, bool hole)
 
GeoPhysVol * BuildLayerII (double thick, const GeoMaterial *material)
 
GeoPhysVol * BuildLayerIII (double thick, const GeoMaterial *material)
 
GeoPhysVol * BuildLayerIV (double thick, const GeoMaterial *material)
 
GeoPhysVol * BuildLayerV (double thick, const GeoMaterial *material)
 
GeoPhysVol * BuildHolder (const GeoMaterial *material)
 
GeoPhysVol * BuildScrew (double length, const GeoMaterial *material)
 
GeoPhysVol * BuildBlock (double X, double Y, double Z, const std::string &logname, const GeoMaterial *material)
 
GeoPhysVol * BuildClamp (const GeoMaterial *material)
 

Static Public Attributes

static constexpr double s_width = 18
 
static constexpr double s_length = 22
 
static constexpr double s_extended_length = 27
 
static constexpr double s_hole_r = 1.85
 
static constexpr double s_hole_position = 2.5
 
static constexpr double s_holder_length = 33
 
static constexpr double s_holder_height = 10
 
static constexpr double s_holder_spacing = 4
 
static constexpr double s_holder_spacing_length = 4
 
static constexpr double s_holder_thickness = 3
 
static constexpr double s_clamp_length = 6
 
static constexpr double s_clamp_thickness = 2
 

Detailed Description

Beam Loss Monitor wall builder

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

Definition at line 20 of file BLM_Wall.h.

Member Function Documentation

◆ BuildBlock()

GeoPhysVol * BLM_Wall::BuildBlock ( double  X,
double  Y,
double  Z,
const std::string &  logname,
const GeoMaterial *  material 
)

Definition at line 37 of file BLM_Wall.cxx.

38 {
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);
42 
43  return blmWallPhys;
44 }

◆ BuildClamp()

GeoPhysVol * BLM_Wall::BuildClamp ( const GeoMaterial *  material)

Definition at line 15 of file BLM_Wall.cxx.

16 {
17  const GeoBox* blmWallBox = new GeoBox(s_width/2, s_clamp_thickness/2, s_clamp_length/2);
18  const GeoTube* blmWallHole = new GeoTube(0, s_hole_r, s_clamp_thickness);
19  //rotations
20  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
21  //position of holes
24 
25  //offsets
26  GeoTrf::Transform3D offset1 = pos1*rm;
27  GeoTrf::Transform3D offset2 = pos2*rm;
28  const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1));
29  const GeoShapeSubtraction& blmFinal = blm1.subtract(((*blmWallHole)<< offset2));
30 
31  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
32  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
33 
34  return blmWallPhys;
35 }

◆ BuildHolder()

GeoPhysVol * BLM_Wall::BuildHolder ( const GeoMaterial *  material)

Definition at line 60 of file BLM_Wall.cxx.

61 {
62  const GeoBox* blmWallBox = new GeoBox(s_width/2, s_holder_thickness/2, s_holder_length/2);
63  const GeoBox* blmWallBox1 = new GeoBox(s_width/2, s_holder_height/2, s_holder_thickness/2);
64  const GeoTube* blmWallHole = new GeoTube(0, s_hole_r, s_holder_thickness);
65  const GeoBox* blmWallHole1 = new GeoBox(s_holder_spacing/2, s_holder_height, (s_holder_spacing_length+s_holder_thickness)/2+1);
66  //rotations
67  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
68  //position of holes
77  //position of vertical boxes
78  GeoTrf::Translate3D offset7(0, s_holder_thickness/2-s_holder_height/2, s_holder_thickness/2-s_holder_length/2);
79  //position of the hole
80  GeoTrf::Translate3D offset8(0, -s_holder_height/2, (s_holder_spacing_length+s_holder_thickness)/2-s_holder_length/2-2);
81  //offsets
82  GeoTrf::Transform3D offset1 = pos1*rm;
83  GeoTrf::Transform3D offset2 = pos2*rm;
84  GeoTrf::Transform3D offset3 = pos3*rm;
85  GeoTrf::Transform3D offset4 = pos4*rm;
86  GeoTrf::Transform3D offset5 = pos5*rm;
87  GeoTrf::Transform3D offset6 = pos6*rm;
88 
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));
99 
100  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
101  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
102 
103  return blmWallPhys;
104 }

◆ BuildLayerI()

GeoPhysVol * BLM_Wall::BuildLayerI ( double  thick,
const GeoMaterial *  material,
bool  hole 
)

Definition at line 106 of file BLM_Wall.cxx.

107 {
108  if(hole)
109  {
110  const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_extended_length/2);
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);
115  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
116  GeoTrf::RotateY3D rm1(45.*Gaudi::Units::deg);
123  GeoTrf::Translate3D offset5(0, 0, s_extended_length/2-s_length+12.55);
124  GeoTrf::Translate3D offset6(0, 0, s_extended_length/2-s_length+4);
126  GeoTrf::Transform3D offset1 = pos1*rm;
127  GeoTrf::Transform3D offset2 = pos2*rm;
128  GeoTrf::Transform3D offset3 = pos3*rm;
129  GeoTrf::Transform3D offset4 = pos4*rm;
130  GeoTrf::Transform3D offset7 = pos7*rm1;
131  GeoTrf::Transform3D offset9 = pos9*rm;
132  GeoTrf::Transform3D offset10 = pos10*rm;
133 
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));
143 
144  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
145  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
146 
147  return blmWallPhys;
148  }
149  else
150  {
151  const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_extended_length/2);
152  const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick);
153  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
160  GeoTrf::Transform3D offset1 = pos1*rm;
161  GeoTrf::Transform3D offset2 = pos2*rm;
162  GeoTrf::Transform3D offset3 = pos3*rm;
163  GeoTrf::Transform3D offset4 = pos4*rm;
164  GeoTrf::Transform3D offset5 = pos5*rm;
165  GeoTrf::Transform3D offset6 = pos6*rm;
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));
172 
173  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
174  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
175 
176  return blmWallPhys;
177  }
178 }

◆ BuildLayerII()

GeoPhysVol * BLM_Wall::BuildLayerII ( double  thick,
const GeoMaterial *  material 
)

Definition at line 180 of file BLM_Wall.cxx.

181 {
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);
186  //const GeoShape* blmWallHole3 = new GeoBox(1.76777, thick, 1.76777);
187  const GeoShape* blmWallHole3 = new GeoBox(3.9, thick, 3.9);
188  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
189  GeoTrf::RotateY3D rm1(45.*Gaudi::Units::deg);
194  GeoTrf::Translate3D offset5(0, 0, 1.5);
195  GeoTrf::Translate3D offset6(0, 0, -7.175);
196  //GeoTrf::Translation3D pos7(s_width/2-6.1, 0, 6.6-s_length/2);
197  //GeoTrf::Vector3D pos8(6.1-s_width/2, 0, 6.6-s_length/2);
198  GeoTrf::Translation3D pos8(0, 0, 6.6-s_length/2);
199  GeoTrf::Transform3D offset1 = pos1*rm;
200  GeoTrf::Transform3D offset2 = pos2*rm;
201  GeoTrf::Transform3D offset3 = pos3*rm;
202  GeoTrf::Transform3D offset4 = pos4*rm;
203  //GeoTrf::Transform3D offset7 = pos7*rm1;
204  GeoTrf::Transform3D offset8 = pos8*rm1;
205 
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));
212  //const GeoShapeSubtraction& blm7 = blm6.subtract(((*blmWallHole3) << offset7));
213  const GeoShapeSubtraction& blmFinal = blm6.subtract(((*blmWallHole) << offset1));
214 
215  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
216  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
217 
218  return blmWallPhys;
219 }

◆ BuildLayerIII()

GeoPhysVol * BLM_Wall::BuildLayerIII ( double  thick,
const GeoMaterial *  material 
)

Definition at line 221 of file BLM_Wall.cxx.

222 {
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);
226  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
231  GeoTrf::Translate3D offset5(0, 0, 2.075);
232  GeoTrf::Transform3D offset1 = pos1*rm;
233  GeoTrf::Transform3D offset2 = pos2*rm;
234  GeoTrf::Transform3D offset3 = pos3*rm;
235  GeoTrf::Transform3D offset4 = pos4*rm;
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));
241 
242  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
243  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
244 
245  return blmWallPhys;
246 }

◆ BuildLayerIV()

GeoPhysVol * BLM_Wall::BuildLayerIV ( double  thick,
const GeoMaterial *  material 
)

Definition at line 248 of file BLM_Wall.cxx.

249 {
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);
254  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
259  GeoTrf::Translate3D offset5(0, 0, 2.075);
260  GeoTrf::Translate3D offset6(0, 0, -7.175);
261  GeoTrf::Transform3D offset1 = pos1*rm;
262  GeoTrf::Transform3D offset2 = pos2*rm;
263  GeoTrf::Transform3D offset3 = pos3*rm;
264  GeoTrf::Transform3D offset4 = pos4*rm;
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));
271 
272  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
273  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
274 
275  return blmWallPhys;
276 }

◆ BuildLayerV()

GeoPhysVol * BLM_Wall::BuildLayerV ( double  thick,
const GeoMaterial *  material 
)

Definition at line 278 of file BLM_Wall.cxx.

279 {
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);
282  GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg);
287  GeoTrf::Transform3D offset1 = pos1*rm;
288  GeoTrf::Transform3D offset2 = pos2*rm;
289  GeoTrf::Transform3D offset3 = pos3*rm;
290  GeoTrf::Transform3D offset4 = pos4*rm;
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));
295 
296  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
297  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
298 
299  return blmWallPhys;
300 }

◆ BuildScrew()

GeoPhysVol * BLM_Wall::BuildScrew ( double  length,
const GeoMaterial *  material 
)

Definition at line 46 of file BLM_Wall.cxx.

47 {
48  const GeoTube* blmScrew = new GeoTube(0, 2.5, 1);
49  const GeoTube* blmScrew1 = new GeoTube(0, 1.5, length/2);
50  //positions
51  GeoTrf::Translate3D offset1(0, 0, length/2+1);
52  const GeoShapeUnion& blmFinal = blmScrew->add(((*blmScrew1) << offset1));
53 
54  const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material);
55  GeoPhysVol* blmWallPhys = new GeoPhysVol(blmWallLog);
56 
57  return blmWallPhys;
58 }

Member Data Documentation

◆ s_clamp_length

constexpr double BLM_Wall::s_clamp_length = 6
staticconstexpr

Definition at line 43 of file BLM_Wall.h.

◆ s_clamp_thickness

constexpr double BLM_Wall::s_clamp_thickness = 2
staticconstexpr

Definition at line 44 of file BLM_Wall.h.

◆ s_extended_length

constexpr double BLM_Wall::s_extended_length = 27
staticconstexpr

Definition at line 35 of file BLM_Wall.h.

◆ s_holder_height

constexpr double BLM_Wall::s_holder_height = 10
staticconstexpr

Definition at line 39 of file BLM_Wall.h.

◆ s_holder_length

constexpr double BLM_Wall::s_holder_length = 33
staticconstexpr

Definition at line 38 of file BLM_Wall.h.

◆ s_holder_spacing

constexpr double BLM_Wall::s_holder_spacing = 4
staticconstexpr

Definition at line 40 of file BLM_Wall.h.

◆ s_holder_spacing_length

constexpr double BLM_Wall::s_holder_spacing_length = 4
staticconstexpr

Definition at line 41 of file BLM_Wall.h.

◆ s_holder_thickness

constexpr double BLM_Wall::s_holder_thickness = 3
staticconstexpr

Definition at line 42 of file BLM_Wall.h.

◆ s_hole_position

constexpr double BLM_Wall::s_hole_position = 2.5
staticconstexpr

Definition at line 37 of file BLM_Wall.h.

◆ s_hole_r

constexpr double BLM_Wall::s_hole_r = 1.85
staticconstexpr

Definition at line 36 of file BLM_Wall.h.

◆ s_length

constexpr double BLM_Wall::s_length = 22
staticconstexpr

Definition at line 34 of file BLM_Wall.h.

◆ s_width

constexpr double BLM_Wall::s_width = 18
staticconstexpr

Definition at line 33 of file BLM_Wall.h.


The documentation for this class was generated from the following files:
BLM_Wall::s_hole_r
static constexpr double s_hole_r
Definition: BLM_Wall.h:36
BLM_Wall::s_holder_spacing_length
static constexpr double s_holder_spacing_length
Definition: BLM_Wall.h:41
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
BLM_Wall::s_holder_height
static constexpr double s_holder_height
Definition: BLM_Wall.h:39
BLM_Wall::s_holder_thickness
static constexpr double s_holder_thickness
Definition: BLM_Wall.h:42
deg
#define deg
Definition: SbPolyhedron.cxx:17
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
xAOD::EgammaParameters::pos7
@ pos7
Difference between the track and the shower positions: sum_{i=i_m-7}^{i=i_m+7}E_i x (i-i_m) / sum_{i=...
Definition: EgammaEnums.h:133
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
BLM_Wall::s_holder_length
static constexpr double s_holder_length
Definition: BLM_Wall.h:38
BLM_Wall::s_clamp_length
static constexpr double s_clamp_length
Definition: BLM_Wall.h:43
BLM_Wall::s_extended_length
static constexpr double s_extended_length
Definition: BLM_Wall.h:35
BLM_Wall::s_holder_spacing
static constexpr double s_holder_spacing
Definition: BLM_Wall.h:40
Monitored::Y
@ Y
Definition: HistogramFillerUtils.h:24
BLM_Wall::s_length
static constexpr double s_length
Definition: BLM_Wall.h:34
BLM_Wall::s_width
static constexpr double s_width
Definition: BLM_Wall.h:33
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
BLM_Wall::s_clamp_thickness
static constexpr double s_clamp_thickness
Definition: BLM_Wall.h:44
Trk::hole
@ hole
Definition: MeasurementType.h:36
BLM_Wall::s_hole_position
static constexpr double s_hole_position
Definition: BLM_Wall.h:37
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
MakeSliceSet.logname
logname
Definition: MakeSliceSet.py:34