ATLAS Offline Software
EMECAccordionConstruction.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2024-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
12 #ifndef LARGEOENDCAP_EMECACCORDIONCONSTRUCTION_H
13 #define LARGEOENDCAP_EMECACCORDIONCONSTRUCTION_H
14 
15 #include <string>
16 #include <array>
17 
18 #include "GeoModelKernel/GeoDefinitions.h"
19 
20 
23 
24 class GeoXmlInpManager;
25 class GeoMaterial;
26 class GeoPhysVol;
27 class GeoFullPhysVol;
28 class GeoShape;
29 
30 namespace LArGeo {
31 
36  {
37  public:
40 
41  void setWheelParameters();
42  void setInnerWheel(GeoFullPhysVol* innerWheel);
43  void setOuterWheel(GeoFullPhysVol* outerWheel);
44  void setMaterial(const std::string& name, const GeoMaterial* material);
45 
46  void constructInnerWheelStructure(bool makeSlices = true);
47  void constructOuterWheelStructure(bool makeSlices = true);
48 
49  private:
50  struct CutPlane { // plane equation: n.dot(p) + d = 0
52  double m_d;
53  };
54 
55  void setInnerWheelSlices();
56  void setOuterWheelSlices();
57  void getInnerAbsorberData(double& wmin, double& wmax,
58  double& llip1, double& ylip1,
59  double& llip2, double& ylip2) const;
60  void getOuterAbsorberData(double& wmin, double& wmax,
61  double& llip1, double& ylip1,
62  double& llip2, double& ylip2) const;
63  void getBladeCorners(double wmin, double wmax, double thickness,
64  double rmin, double rmax, double zdel,
65  GeoThreeVector corners[8]) const;
66  CutPlane getBottomCutPlane(double zmin, double rmin,
67  double zmax, double rmax) const;
68  CutPlane getTopCutPlane(double zmin, double rmin,
69  double zmax, double rmax,
70  const GeoThreeVector corners[8]) const;
72  const GeoThreeVector& p2,
73  const CutPlane& plane) const;
74  GeoShape* constructBlade(int icase,
75  const GeoThreeVector corners[8], double xscale,
76  double pz1, double pr1min, double pr1max,
77  double pz2, double pr2min, double pr2max) const;
78 
79  // Construction of logical volumes
80  void constructInnerSlices();
81  void constructOuterSlices();
82  void constructInnerLips(double innerLipLength1, double innerLipPosition1,
83  double innerLipLength2, double innerLipPosition2);
84  void constructOuterLips(double outerLipLength1, double outerLipPosition1,
85  double outerLipLength2, double outerLipPosition2);
86  void constructInnerBlades(const GeoThreeVector innerCorners[8],
87  const GeoThreeVector innerElectrodeCorners[8]);
88  void constructOuterBlades(const GeoThreeVector outerCorners[8],
89  const GeoThreeVector outerElectrodeCorners[8]);
90 
91  // Construction of physical volumes
92  void placeInnerGlueAndLead();
93  void placeOuterGlueAndLead();
94  void placeInnerSlices(bool makeSlices);
95  void placeOuterSlices(bool makeSlices);
96  void placeInnerAccordion(int innerNoSectors, bool makeSlices, bool makeSectors);
97  void placeOuterAccordion(int outerNoSectors, bool makeSlices, bool makeSectors);
98 
99  private:
100  GeoFullPhysVol* m_innerWheel = nullptr;
101  GeoFullPhysVol* m_outerWheel = nullptr;
102 
103  const GeoMaterial* m_materialLiquidArgon = nullptr;
104  const GeoMaterial* m_materialKapton = nullptr;
105  const GeoMaterial* m_materialLead = nullptr;
106  const GeoMaterial* m_materialSteel = nullptr;
107  const GeoMaterial* m_materialGlue = nullptr;
108 
109  int m_innerNoElectrodes = 256; // Number of electrodes in Inner wheel
110  int m_innerNoAbsorbes = 256; // Number of absorbers in Inner wheel
111  int m_innerNoWaves = 6; // Number of waves in Inner wheel
112  static constexpr int s_innerNoBlades = 15; // Number of blades (11 half_waves + 2 quarter_waves + 2 lips)
113 
114  int m_outerNoElectrodes = 768; // Number of electrodes in Outer wheel
115  int m_outerNoAbsorbes = 768; // Number of absorbers in Outer wheel
116  int m_outerNoWaves = 9; // Number of waves in Outer wheel
117  static constexpr int s_outerNoBlades = 21; // Number of blades (17 half_waves + 2 quarter_waves + 2 lips)
118 
119  // Strings for construction of names
120  std::string m_nameInnerWheel = "";
121  std::string m_nameOuterWheel = "";
122  std::string m_nameSlice = "::Slice";
123  std::string m_nameAbsorber = "::Absorber";
124  std::string m_nameLead = "::Lead";
125  std::string m_nameGlue = "::Glue";
126  std::string m_nameElectrode = "::Electrode";
127 
128  std::string m_nameSuffix[s_outerNoBlades] = {
129  "01","02","03","04","05","06","07","08","09","10",
130  "11","12","13","14","15","16","17","18","19","20","21"
131  };
132 
133  // Inner wheel accordion wave parameters
134  double m_innerWheelWidth; // 514 mm
135  double m_innerLipWidth; // 2 mm
136  double m_innerWaveZoneWidth; // 514 - 2*2 = 510 mm
137  double m_innerWaveWidth; // 510:6 = 85 mm
140 
141  // Outer wheel accordion wave parameters
142  double m_outerWheelWidth; // 514 mm
143  double m_outerLipWidth; // 2 mm
144  double m_outerWaveZoneWidth; // 514 - 2*2 = 510 mm
145  double m_outerWaveWidth; // 510:9 = 56.67 mm
148 
149  // Inner wheel thiknesses
155  double m_innerGlueRatio; // x-scale factor for glue in absorber
156  double m_innerLeadRatio; // x-scale factor for lead in absorber
157 
158  // Outer wheel thiknesses
164  double m_outerGlueRatio; // x-scale factor for glue in absorber
165  double m_outerLeadRatio; // x-scale factor for lead in absorber
166 
167  // Contraction factor
169 
170  // Inner wheel parameters
171  std::array<double, 2> m_zWheelInner;
172  std::array<double, 2> m_rMinInner;
173  std::array<double, 2> m_rMaxInner;
174 
175  // Outer wheel parameters
176  std::array<double, 3> m_zWheelOuter;
177  std::array<double, 3> m_rMinOuter;
178  std::array<double, 3> m_rMaxOuter;
179 
180  // Data for Inner wheel slices
181  std::array<double, s_innerNoBlades + 1> m_innerWheelZ;
182  std::array<double, s_innerNoBlades + 1> m_innerWheelRmin;
183  std::array<double, s_innerNoBlades + 1> m_innerWheelRmax;
188 
189  // Data for Outer wheel slices
190  std::array<double, s_outerNoBlades + 1> m_outerWheelZ;
191  std::array<double, s_outerNoBlades + 1> m_outerWheelRmin;
192  std::array<double, s_outerNoBlades + 1> m_outerWheelRmax;
193  std::array<double, 2> m_outerWheelRminIncrement;
194  std::array<double, 2> m_outerWheelRmaxIncrement;
197 
198  // Logical volumes for Inner wheel blades
199  std::array<GeoPhysVol*, s_innerNoBlades> m_innerAbsorber {{nullptr}};
200  std::array<GeoPhysVol*, s_innerNoBlades> m_innerGlue {{nullptr}};
201  std::array<GeoPhysVol*, s_innerNoBlades> m_innerLead {{nullptr}};
202  std::array<GeoPhysVol*, s_innerNoBlades> m_innerElectrode {{nullptr}};
203  std::array<GeoThreeVector, s_innerNoBlades> m_innerAbsorberOffset;
204  std::array<GeoThreeVector, s_innerNoBlades> m_innerElectrodeOffset;
205 
206  // Logical volumes for Outer wheel blades
207  std::array<GeoPhysVol*, s_outerNoBlades> m_outerAbsorber {{nullptr}};
208  std::array<GeoPhysVol*, s_outerNoBlades> m_outerGlue {{nullptr}};
209  std::array<GeoPhysVol*, s_outerNoBlades> m_outerLead {{nullptr}};
210  std::array<GeoPhysVol*, s_outerNoBlades> m_outerElectrode {{nullptr}};
211  std::array<GeoThreeVector, s_outerNoBlades> m_outerAbsorberOffset;
212  std::array<GeoThreeVector, s_outerNoBlades> m_outerElectrodeOffset;
213 
214  // Logical volumes for Inner wheel slices
215  std::array<GeoPhysVol*, s_innerNoBlades> m_innerSlice {{nullptr}};
216  std::array<GeoThreeVector, s_innerNoBlades> m_innerSliceOffset;
217 
218  // Logical volumes for Outer wheel slices
219 
220  std::array<GeoPhysVol*, s_outerNoBlades> m_outerSlice {{nullptr}};
221  std::array<GeoThreeVector, s_outerNoBlades> m_outerSliceOffset;
222 
223  // Logical volumes for Inner wheel sectors
224  std::array<GeoPhysVol*, s_innerNoBlades> m_innerSector {{nullptr}};
225 
226  // Logical volumes for Outer wheel sectors
227  std::array<GeoPhysVol*, s_outerNoBlades> m_outerSector;
228  };
229 
230 } // namespace LArGeo
231 
232 #endif
233 
LArGeo::EMECAccordionConstruction::m_innerLead
std::array< GeoPhysVol *, s_innerNoBlades > m_innerLead
Definition: EMECAccordionConstruction.h:201
LArGeo::EMECAccordionConstruction::m_innerNoElectrodes
int m_innerNoElectrodes
Definition: EMECAccordionConstruction.h:109
LArGeo::EMECAccordionConstruction::~EMECAccordionConstruction
~EMECAccordionConstruction()=default
LArGeo::EMECAccordionConstruction::m_nameSuffix
std::string m_nameSuffix[s_outerNoBlades]
Definition: EMECAccordionConstruction.h:128
LArGeo::EMECAccordionConstruction::getOuterAbsorberData
void getOuterAbsorberData(double &wmin, double &wmax, double &llip1, double &ylip1, double &llip2, double &ylip2) const
Definition: EMECAccordionConstruction.cxx:406
LArGeo::EMECAccordionConstruction::constructBlade
GeoShape * constructBlade(int icase, const GeoThreeVector corners[8], double xscale, double pz1, double pr1min, double pr1max, double pz2, double pr2min, double pr2max) const
Definition: EMECAccordionConstruction.cxx:590
LArGeo::EMECAccordionConstruction::m_outerWheelRmax
std::array< double, s_outerNoBlades+1 > m_outerWheelRmax
Definition: EMECAccordionConstruction.h:192
LArGeo::EMECAccordionConstruction::m_outerWheelRminIncrement
std::array< double, 2 > m_outerWheelRminIncrement
Definition: EMECAccordionConstruction.h:193
LArGeo::EMECAccordionConstruction::setOuterWheel
void setOuterWheel(GeoFullPhysVol *outerWheel)
Definition: EMECAccordionConstruction.cxx:218
LArGeo::EMECAccordionConstruction::m_outerLeadThickness
double m_outerLeadThickness
Definition: EMECAccordionConstruction.h:159
LArGeo::EMECAccordionConstruction::CutPlane::m_d
double m_d
Definition: EMECAccordionConstruction.h:52
LArGeo::EMECAccordionConstruction::m_outerLead
std::array< GeoPhysVol *, s_outerNoBlades > m_outerLead
Definition: EMECAccordionConstruction.h:209
LArGeo::EMECAccordionConstruction::CutPlane::m_n
GeoThreeVector m_n
Definition: EMECAccordionConstruction.h:51
LArGeo::EMECAccordionConstruction::getInnerAbsorberData
void getInnerAbsorberData(double &wmin, double &wmax, double &llip1, double &ylip1, double &llip2, double &ylip2) const
Definition: EMECAccordionConstruction.cxx:332
LArGeo::EMECAccordionConstruction::m_outerAbsorberOffset
std::array< GeoThreeVector, s_outerNoBlades > m_outerAbsorberOffset
Definition: EMECAccordionConstruction.h:211
LArGeo
Definition: LArDetectorFactory.h:26
LArGeo::EMECAccordionConstruction::m_materialGlue
const GeoMaterial * m_materialGlue
Definition: EMECAccordionConstruction.h:107
LArGeo::EMECAccordionConstruction::m_innerNoAbsorbes
int m_innerNoAbsorbes
Definition: EMECAccordionConstruction.h:110
LArGeo::EMECAccordionConstruction::m_innerGlueThickness
double m_innerGlueThickness
Definition: EMECAccordionConstruction.h:152
LArGeo::EMECAccordionConstruction::placeOuterAccordion
void placeOuterAccordion(int outerNoSectors, bool makeSlices, bool makeSectors)
Definition: EMECAccordionConstruction.cxx:1106
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
LArGeo::EMECAccordionConstruction::constructInnerBlades
void constructInnerBlades(const GeoThreeVector innerCorners[8], const GeoThreeVector innerElectrodeCorners[8])
Definition: EMECAccordionConstruction.cxx:872
LArGeo::EMECAccordionConstruction::constructOuterWheelStructure
void constructOuterWheelStructure(bool makeSlices=true)
Definition: EMECAccordionConstruction.cxx:1258
LArGeo::EMECAccordionConstruction::m_outerGlueRatio
double m_outerGlueRatio
Definition: EMECAccordionConstruction.h:164
LArGeo::EMECAccordionConstruction::IntersectionPoint
GeoThreeVector IntersectionPoint(const GeoThreeVector &p1, const GeoThreeVector &p2, const CutPlane &plane) const
Definition: EMECAccordionConstruction.cxx:572
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
LArGeo::EMECAccordionConstruction::m_innerElectrode
std::array< GeoPhysVol *, s_innerNoBlades > m_innerElectrode
Definition: EMECAccordionConstruction.h:202
LArGeo::EMECAccordionConstruction::m_outerAbsorber
std::array< GeoPhysVol *, s_outerNoBlades > m_outerAbsorber
Definition: EMECAccordionConstruction.h:207
LArGeo::EMECAccordionConstruction::m_materialLead
const GeoMaterial * m_materialLead
Definition: EMECAccordionConstruction.h:105
LArGeo::EMECAccordionConstruction::m_innerWheelZmin
double m_innerWheelZmin
Definition: EMECAccordionConstruction.h:186
LArGeo::EMECAccordionConstruction::m_outerLeadRatio
double m_outerLeadRatio
Definition: EMECAccordionConstruction.h:165
LArGeo::EMECAccordionConstruction::m_materialLiquidArgon
const GeoMaterial * m_materialLiquidArgon
Definition: EMECAccordionConstruction.h:103
LArGeo::EMECAccordionConstruction::m_nameLead
std::string m_nameLead
Definition: EMECAccordionConstruction.h:124
LArGeo::EMECAccordionConstruction::m_innerWheel
GeoFullPhysVol * m_innerWheel
Definition: EMECAccordionConstruction.h:100
LArGeo::EMECAccordionConstruction::m_outerHalfWaveWidth
double m_outerHalfWaveWidth
Definition: EMECAccordionConstruction.h:146
LArGeo::EMECAccordionConstruction::constructInnerLips
void constructInnerLips(double innerLipLength1, double innerLipPosition1, double innerLipLength2, double innerLipPosition2)
Definition: EMECAccordionConstruction.cxx:725
LArGeo::EMECAccordionConstruction::m_innerWaveWidth
double m_innerWaveWidth
Definition: EMECAccordionConstruction.h:137
LArGeo::EMECAccordionConstruction::getBottomCutPlane
CutPlane getBottomCutPlane(double zmin, double rmin, double zmax, double rmax) const
Definition: EMECAccordionConstruction.cxx:523
LArGeo::EMECAccordionConstruction::m_outerSteelThickness
double m_outerSteelThickness
Definition: EMECAccordionConstruction.h:160
LArGeo::EMECAccordionConstruction::m_innerSlice
std::array< GeoPhysVol *, s_innerNoBlades > m_innerSlice
Definition: EMECAccordionConstruction.h:215
LArGeo::EMECAccordionConstruction::m_outerWheelZmin
double m_outerWheelZmin
Definition: EMECAccordionConstruction.h:195
LArGeo::EMECAccordionConstruction::m_innerGlue
std::array< GeoPhysVol *, s_innerNoBlades > m_innerGlue
Definition: EMECAccordionConstruction.h:200
LArGeo::EMECAccordionConstruction::m_rMaxInner
std::array< double, 2 > m_rMaxInner
Definition: EMECAccordionConstruction.h:173
LArGeo::EMECAccordionConstruction::m_outerWheelRmaxIncrement
std::array< double, 2 > m_outerWheelRmaxIncrement
Definition: EMECAccordionConstruction.h:194
LArGeo::EMECAccordionConstruction::m_innerAbsorberThickness
double m_innerAbsorberThickness
Definition: EMECAccordionConstruction.h:153
LArGeo::EMECAccordionConstruction::m_innerLeadThickness
double m_innerLeadThickness
Definition: EMECAccordionConstruction.h:150
LArGeo::EMECAccordionConstruction::setOuterWheelSlices
void setOuterWheelSlices()
Definition: EMECAccordionConstruction.cxx:277
LArGeo::EMECAccordionConstruction::m_outerSliceOffset
std::array< GeoThreeVector, s_outerNoBlades > m_outerSliceOffset
Definition: EMECAccordionConstruction.h:221
LArGeo::EMECAccordionConstruction::m_rMaxOuter
std::array< double, 3 > m_rMaxOuter
Definition: EMECAccordionConstruction.h:178
LArGeo::EMECAccordionConstruction::getBladeCorners
void getBladeCorners(double wmin, double wmax, double thickness, double rmin, double rmax, double zdel, GeoThreeVector corners[8]) const
Definition: EMECAccordionConstruction.cxx:492
LArGeo::EMECAccordionConstruction::m_outerQuaterWaveWidth
double m_outerQuaterWaveWidth
Definition: EMECAccordionConstruction.h:147
LArGeo::EMECAccordionConstruction::m_nameOuterWheel
std::string m_nameOuterWheel
Definition: EMECAccordionConstruction.h:121
LArGeo::EMECAccordionConstruction::m_nameElectrode
std::string m_nameElectrode
Definition: EMECAccordionConstruction.h:126
LArGeo::EMECAccordionConstruction
Class for construction of EMEC internal structure.
Definition: EMECAccordionConstruction.h:36
LArGeo::EMECAccordionConstruction::m_innerWheelRmin
std::array< double, s_innerNoBlades+1 > m_innerWheelRmin
Definition: EMECAccordionConstruction.h:182
LArGeo::EMECAccordionConstruction::m_innerHalfWaveWidth
double m_innerHalfWaveWidth
Definition: EMECAccordionConstruction.h:138
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
LArGeo::EMECAccordionConstruction::m_innerSector
std::array< GeoPhysVol *, s_innerNoBlades > m_innerSector
Definition: EMECAccordionConstruction.h:224
LArGeo::EMECAccordionConstruction::placeInnerGlueAndLead
void placeInnerGlueAndLead()
Definition: EMECAccordionConstruction.cxx:967
LArGeo::EMECAccordionConstruction::m_outerElectrodeOffset
std::array< GeoThreeVector, s_outerNoBlades > m_outerElectrodeOffset
Definition: EMECAccordionConstruction.h:212
LArGeo::EMECAccordionConstruction::constructOuterBlades
void constructOuterBlades(const GeoThreeVector outerCorners[8], const GeoThreeVector outerElectrodeCorners[8])
Definition: EMECAccordionConstruction.cxx:920
LArGeo::EMECAccordionConstruction::m_outerNoWaves
int m_outerNoWaves
Definition: EMECAccordionConstruction.h:116
LArGeo::EMECAccordionConstruction::m_innerWheelWidth
double m_innerWheelWidth
Definition: EMECAccordionConstruction.h:134
LArGeo::EMECAccordionConstruction::constructInnerSlices
void constructInnerSlices()
Definition: EMECAccordionConstruction.cxx:683
LArGeo::EMECAccordionConstruction::m_outerElectrodeThickness
double m_outerElectrodeThickness
Definition: EMECAccordionConstruction.h:163
LArGeo::EMECAccordionConstruction::placeInnerSlices
void placeInnerSlices(bool makeSlices)
Definition: EMECAccordionConstruction.cxx:993
LArGeo::EMECAccordionConstruction::m_innerWheelRmaxIncrement
double m_innerWheelRmaxIncrement
Definition: EMECAccordionConstruction.h:185
LArGeo::EMECAccordionConstruction::m_nameSlice
std::string m_nameSlice
Definition: EMECAccordionConstruction.h:122
LArGeo::EMECAccordionConstruction::m_outerWheel
GeoFullPhysVol * m_outerWheel
Definition: EMECAccordionConstruction.h:101
LArGeo::EMECAccordionConstruction::m_rMinInner
std::array< double, 2 > m_rMinInner
Definition: EMECAccordionConstruction.h:172
LArGeo::EMECAccordionConstruction::setInnerWheel
void setInnerWheel(GeoFullPhysVol *innerWheel)
Definition: EMECAccordionConstruction.cxx:192
LArGeo::EMECAccordionConstruction::m_zWheelInner
std::array< double, 2 > m_zWheelInner
Definition: EMECAccordionConstruction.h:171
LArGeo::EMECAccordionConstruction::m_innerElectrodeOffset
std::array< GeoThreeVector, s_innerNoBlades > m_innerElectrodeOffset
Definition: EMECAccordionConstruction.h:204
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:169
LArGeo::EMECAccordionConstruction::m_outerWaveWidth
double m_outerWaveWidth
Definition: EMECAccordionConstruction.h:145
LArGeo::EMECAccordionConstruction::s_outerNoBlades
static constexpr int s_outerNoBlades
Definition: EMECAccordionConstruction.h:117
LArGeo::EMECAccordionConstruction::placeInnerAccordion
void placeInnerAccordion(int innerNoSectors, bool makeSlices, bool makeSectors)
Definition: EMECAccordionConstruction.cxx:1028
GeoTwoVector
GeoTrf::Vector2D GeoTwoVector
Definition: EMECAccordionConstruction.h:21
LArGeo::EMECAccordionConstruction::m_innerAbsorberOffset
std::array< GeoThreeVector, s_innerNoBlades > m_innerAbsorberOffset
Definition: EMECAccordionConstruction.h:203
LArGeo::EMECAccordionConstruction::m_nameInnerWheel
std::string m_nameInnerWheel
Definition: EMECAccordionConstruction.h:120
LArGeo::EMECAccordionConstruction::m_outerGlueThickness
double m_outerGlueThickness
Definition: EMECAccordionConstruction.h:161
LArGeo::EMECAccordionConstruction::EMECAccordionConstruction
EMECAccordionConstruction()=default
LArGeo::EMECAccordionConstruction::setMaterial
void setMaterial(const std::string &name, const GeoMaterial *material)
Definition: EMECAccordionConstruction.cxx:313
LArGeo::EMECAccordionConstruction::m_kContraction
double m_kContraction
Definition: EMECAccordionConstruction.h:168
LArGeo::EMECAccordionConstruction::m_nameAbsorber
std::string m_nameAbsorber
Definition: EMECAccordionConstruction.h:123
LArGeo::EMECAccordionConstruction::m_outerAbsorberThickness
double m_outerAbsorberThickness
Definition: EMECAccordionConstruction.h:162
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
LArGeo::EMECAccordionConstruction::getTopCutPlane
CutPlane getTopCutPlane(double zmin, double rmin, double zmax, double rmax, const GeoThreeVector corners[8]) const
Definition: EMECAccordionConstruction.cxx:541
LArGeo::EMECAccordionConstruction::m_outerGlue
std::array< GeoPhysVol *, s_outerNoBlades > m_outerGlue
Definition: EMECAccordionConstruction.h:208
LArGeo::EMECAccordionConstruction::m_outerWheelRmin
std::array< double, s_outerNoBlades+1 > m_outerWheelRmin
Definition: EMECAccordionConstruction.h:191
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
LArGeo::EMECAccordionConstruction::m_innerLeadRatio
double m_innerLeadRatio
Definition: EMECAccordionConstruction.h:156
LArGeo::EMECAccordionConstruction::m_outerLipWidth
double m_outerLipWidth
Definition: EMECAccordionConstruction.h:143
GeoThreeVector
GeoTrf::Vector3D GeoThreeVector
Definition: EMECAccordionConstruction.h:22
LArGeo::EMECAccordionConstruction::m_outerWheelWidth
double m_outerWheelWidth
Definition: EMECAccordionConstruction.h:142
LArGeo::EMECAccordionConstruction::m_nameGlue
std::string m_nameGlue
Definition: EMECAccordionConstruction.h:125
LArGeo::EMECAccordionConstruction::CutPlane
Definition: EMECAccordionConstruction.h:50
LArGeo::EMECAccordionConstruction::m_innerQuaterWaveWidth
double m_innerQuaterWaveWidth
Definition: EMECAccordionConstruction.h:139
LArGeo::EMECAccordionConstruction::m_innerLipWidth
double m_innerLipWidth
Definition: EMECAccordionConstruction.h:135
LArGeo::EMECAccordionConstruction::constructOuterLips
void constructOuterLips(double outerLipLength1, double outerLipPosition1, double outerLipLength2, double outerLipPosition2)
Definition: EMECAccordionConstruction.cxx:798
LArGeo::EMECAccordionConstruction::m_outerNoElectrodes
int m_outerNoElectrodes
Definition: EMECAccordionConstruction.h:114
LArGeo::EMECAccordionConstruction::m_rMinOuter
std::array< double, 3 > m_rMinOuter
Definition: EMECAccordionConstruction.h:177
LArGeo::EMECAccordionConstruction::m_outerWheelZ
std::array< double, s_outerNoBlades+1 > m_outerWheelZ
Definition: EMECAccordionConstruction.h:190
LArGeo::EMECAccordionConstruction::m_innerAbsorber
std::array< GeoPhysVol *, s_innerNoBlades > m_innerAbsorber
Definition: EMECAccordionConstruction.h:199
LArGeo::EMECAccordionConstruction::m_innerWheelZmax
double m_innerWheelZmax
Definition: EMECAccordionConstruction.h:187
LArGeo::EMECAccordionConstruction::s_innerNoBlades
static constexpr int s_innerNoBlades
Definition: EMECAccordionConstruction.h:112
LArGeo::EMECAccordionConstruction::m_outerSector
std::array< GeoPhysVol *, s_outerNoBlades > m_outerSector
Definition: EMECAccordionConstruction.h:227
LArGeo::EMECAccordionConstruction::m_outerWheelZmax
double m_outerWheelZmax
Definition: EMECAccordionConstruction.h:196
LArGeo::EMECAccordionConstruction::m_innerSliceOffset
std::array< GeoThreeVector, s_innerNoBlades > m_innerSliceOffset
Definition: EMECAccordionConstruction.h:216
LArGeo::EMECAccordionConstruction::placeOuterGlueAndLead
void placeOuterGlueAndLead()
Definition: EMECAccordionConstruction.cxx:980
LArGeo::EMECAccordionConstruction::m_materialKapton
const GeoMaterial * m_materialKapton
Definition: EMECAccordionConstruction.h:104
LArGeo::EMECAccordionConstruction::m_innerNoWaves
int m_innerNoWaves
Definition: EMECAccordionConstruction.h:111
LArGeo::EMECAccordionConstruction::m_zWheelOuter
std::array< double, 3 > m_zWheelOuter
Definition: EMECAccordionConstruction.h:176
LArGeo::EMECAccordionConstruction::m_outerElectrode
std::array< GeoPhysVol *, s_outerNoBlades > m_outerElectrode
Definition: EMECAccordionConstruction.h:210
LArGeo::EMECAccordionConstruction::m_outerSlice
std::array< GeoPhysVol *, s_outerNoBlades > m_outerSlice
Definition: EMECAccordionConstruction.h:220
LArGeo::EMECAccordionConstruction::constructInnerWheelStructure
void constructInnerWheelStructure(bool makeSlices=true)
Definition: EMECAccordionConstruction.cxx:1184
LArGeo::EMECAccordionConstruction::m_outerNoAbsorbes
int m_outerNoAbsorbes
Definition: EMECAccordionConstruction.h:115
LArGeo::EMECAccordionConstruction::m_innerWheelRmax
std::array< double, s_innerNoBlades+1 > m_innerWheelRmax
Definition: EMECAccordionConstruction.h:183
LArGeo::EMECAccordionConstruction::m_outerWaveZoneWidth
double m_outerWaveZoneWidth
Definition: EMECAccordionConstruction.h:144
LArGeo::EMECAccordionConstruction::m_innerWaveZoneWidth
double m_innerWaveZoneWidth
Definition: EMECAccordionConstruction.h:136
LArGeo::EMECAccordionConstruction::setInnerWheelSlices
void setInnerWheelSlices()
Definition: EMECAccordionConstruction.cxx:245
LArGeo::EMECAccordionConstruction::m_materialSteel
const GeoMaterial * m_materialSteel
Definition: EMECAccordionConstruction.h:106
LArGeo::EMECAccordionConstruction::setWheelParameters
void setWheelParameters()
Definition: EMECAccordionConstruction.cxx:51
LArGeo::EMECAccordionConstruction::m_innerSteelThickness
double m_innerSteelThickness
Definition: EMECAccordionConstruction.h:151
LArGeo::EMECAccordionConstruction::m_innerWheelRminIncrement
double m_innerWheelRminIncrement
Definition: EMECAccordionConstruction.h:184
LArGeo::EMECAccordionConstruction::constructOuterSlices
void constructOuterSlices()
Definition: EMECAccordionConstruction.cxx:703
LArGeo::EMECAccordionConstruction::placeOuterSlices
void placeOuterSlices(bool makeSlices)
Definition: EMECAccordionConstruction.cxx:1010
LArGeo::EMECAccordionConstruction::m_innerWheelZ
std::array< double, s_innerNoBlades+1 > m_innerWheelZ
Definition: EMECAccordionConstruction.h:181
LArGeo::EMECAccordionConstruction::m_innerGlueRatio
double m_innerGlueRatio
Definition: EMECAccordionConstruction.h:155
LArGeo::EMECAccordionConstruction::m_innerElectrodeThickness
double m_innerElectrodeThickness
Definition: EMECAccordionConstruction.h:154