ATLAS Offline Software
SCT_Module.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
9 
13 
20 
22 
23 #include "GeoModelRead/ReadGeoModel.h"
24 #include "GeoModelKernel/GeoShape.h"
25 #include "GeoModelKernel/GeoShapeShift.h"
26 #include "GeoModelKernel/GeoShapeUnion.h"
27 #include "GeoModelKernel/GeoBox.h"
28 #include "GeoModelKernel/GeoLogVol.h"
29 #include "GeoModelKernel/GeoPhysVol.h"
30 #include "GeoModelKernel/GeoVPhysVol.h"
31 #include "GeoModelKernel/GeoFullPhysVol.h"
32 #include "GeoModelKernel/GeoNameTag.h"
33 #include "GeoModelKernel/GeoIdentifierTag.h"
34 #include "GeoModelKernel/GeoTransform.h"
35 #include "GeoModelKernel/GeoAlignableTransform.h"
36 #include "GeoModelKernel/GeoDefinitions.h"
37 #include "GaudiKernel/SystemOfUnits.h"
38 #include "GeoModelKernel/GeoShapeSubtraction.h"
39 
40 #include <cmath>
41 
42 SCT_Module::SCT_Module(const std::string & name,
43  InDetDD::SCT_DetectorManager* detectorManager,
44  SCT_GeometryManager* geometryManager,
45  SCT_MaterialManager* materials,
46  GeoModelIO::ReadGeoModel* sqliteReader,
47  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
48  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX)
49 : SCT_UniqueComponentFactory(name, detectorManager, geometryManager, materials, sqliteReader, mapFPV, mapAX)
50 {
51  getParameters();
53 }
54 
55 
57 {
58 }
59 
60 
61 void
63 {
65  const SCT_GeneralParameters * generalParameters = m_geometryManager->generalParameters();
66  m_safety = generalParameters->safety();
67 
68  m_sensorGap = parameters->moduleSensorToSensorGap();
69 
70  m_stereoAngle = parameters->moduleStereoAngle();
71  int sign = parameters->moduleStereoUpperSign();
72  m_upperSide = parameters->moduleUpperSideNumber();
75 
76  m_baseBoardOffsetY = parameters->baseBoardOffsetY();
77  m_baseBoardOffsetZ = parameters->baseBoardOffsetZ();
78 }
79 
80 
81 const GeoLogVol *
83 {
84  // Create child components
85  m_outerSide = std::make_unique<SCT_OuterSide>("OuterSide", m_detectorManager, m_geometryManager, m_materials, m_sqliteReader, m_mapFPV, m_mapAX);
86  m_innerSide = std::make_unique<SCT_InnerSide>("InnerSide", m_detectorManager, m_geometryManager, m_materials, m_sqliteReader, m_mapFPV, m_mapAX);
87 
88  if(m_sqliteReader) return nullptr;
89 
90  m_baseBoard = std::make_unique<SCT_BaseBoard>("BaseBoard", m_detectorManager, m_geometryManager, m_materials);
91  //
92  // We have 2 envelopes.
93  // 1. It contains two sensors and baseBoard.
94  // 2. It contains hybrid and pigtail.
95  //
96  // See "doc/cornerName.ps".
97  //
98 
99  // We need to take into account the safety incorporated in the inner and outer side
100  // envelopes.
101  double sensorWidth = m_innerSide->sensor()->width() + m_safety;
102  double sensorLength = m_innerSide->sensor()->length() + m_safety;
103  double innerSideHybridWidth = m_innerSide->hybrid()->width() + m_safety;
104  double innerSideHybridLength = m_innerSide->hybrid()->length() + m_safety;
105  double outerSideHybridWidth = m_outerSide->hybrid()->width() + m_safety;
106  double outerSideHybridLength = m_outerSide->hybrid()->length() + m_safety;
107  double baseBoardWidth = m_baseBoard->width() + m_safety;
108  double baseBoardLength = m_baseBoard->length() + m_safety;
109  double outerSidePigtailLength = m_outerSide->pigtail()->length() + m_safety;
110 
111 
112  // Define constants for convenience.
113  // for corner of outer side sensor.
114  GeoTrf::Vector3D a(0.0, 0.5 * sensorWidth, 0.5 * sensorLength);
115  GeoTrf::Vector3D b(0.0, -0.5 * sensorWidth, a.z());
116  GeoTrf::Vector3D c(0.0, b.y(),-0.5 * sensorLength);
117  GeoTrf::Vector3D d(0.0, a.y(), c.z());
118 
119  // for corner of inner side sensor.
120  GeoTrf::Vector3D e(0.0, a.y(), a.z());
121  GeoTrf::Vector3D f(0.0, b.y(), b.z());
122  GeoTrf::Vector3D g(0.0, c.y(), c.z());
123  GeoTrf::Vector3D h(0.0, d.y(), d.z());
124 
125  // for corner of base board.
126  GeoTrf::Vector3D u(0.0,
127  m_baseBoardOffsetY + 0.5*baseBoardWidth,
128  m_baseBoardOffsetZ + 0.5*baseBoardLength);
129  GeoTrf::Vector3D v(0.0, m_baseBoardOffsetY - 0.5*baseBoardWidth, u.z());
130  GeoTrf::Vector3D w(0.0, v.y(), m_baseBoardOffsetZ - 0.5*baseBoardLength);
131  GeoTrf::Vector3D x(0.0, u.y(),w.z());
132 
133  // for corner of hybrid, connectorouter and pigtail of outer side.
134  GeoTrf::Vector3D i(0.0,
135  0.5*outerSideHybridWidth,
136  m_outerSide->hybridOffsetZ() + 0.5*outerSidePigtailLength);
137  GeoTrf::Vector3D l(0.0,
138  -0.5*outerSideHybridWidth - m_outerSide->pigtail()->width(), i.z());
139  GeoTrf::Vector3D m(0.0, l.y(),
140  m_outerSide->hybridOffsetZ() - 0.5*outerSidePigtailLength);
141  GeoTrf::Vector3D p(0.0, i.y(),
142  m.z());
143 
144 
145 
146  // for corner of hybrid and interConnect of inner side.
147  GeoTrf::Vector3D q(0.0, 0.5*outerSideHybridWidth, m_outerSide->hybridOffsetZ() + 0.5*outerSideHybridLength );
148  GeoTrf::Vector3D r(0.0, -0.5*innerSideHybridWidth, q.z());
149  GeoTrf::Vector3D s(0.0, r.y(), m_innerSide->hybridOffsetZ() - 0.5*innerSideHybridLength);
150  GeoTrf::Vector3D t(0.0, q.y(), s.z());
151 
152  // All points turn +-20 mGaudi::Units::rad around physical center of module.
153  a = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*a;
154  b = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*b;
155  c = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*c;
156  d = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*d;
157 
158  e = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*e;
159  f = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*f;
160  g = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*g;
161  h = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*h;
162 
163  i = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*i;
164  //k.rotateX(m_stereoOuter/Gaudi::Units::radian);
165  l = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*l;
166  m = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*m;
167  //n.rotateX(m_stereoOuter/Gaudi::Units::radian);
168  p = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*p;
169 
170  q = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*q;
171  r = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*r;
172  s = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*s;
173  t = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*t;
174 
175  // Calculate demension of envelope1.
176  const double z_ab = std::max(a.z(), b.z());
177  const double z_ef = std::max(e.z(), f.z());
178  const double z_cd = std::min(c.z(), d.z());
179  const double z_gh = std::min(g.z(), h.z());
180 
181  const double y_ad = std::max(a.y(), d.y());
182  const double y_eh = std::max(e.y(), h.y());
183  const double y_bc = std::min(b.y(), c.y());
184  const double y_fg = std::min(f.y(), g.y());
185 
186  const double zmaxEnv1 = std::max(z_ab, z_ef);
187  const double zminEnv1 = std::min(z_cd, z_gh);
188 
189  const double ypre_maxEnv1 = std::max(y_ad, y_eh);
190  const double ypre_minEnv1 = std::min(y_bc, y_fg);
191 
192  const double ymaxEnv1 = std::max(ypre_maxEnv1, u.y());
193  const double yminEnv1 = std::min(ypre_minEnv1, v.y());
194 
195  // some temporary value.
196  const double thicknessEnv1 = m_sensorGap + 2.0*m_outerSide->sensor()->thickness();
197  const double lengthEnv1 = zmaxEnv1 - zminEnv1;
198  const double widthEnv1 = ymaxEnv1 - yminEnv1;
199 
200  // Center of evnelope1.
201  const double xCenterEnv1 = 0.0;
202  const double yCenterEnv1 = yminEnv1 + 0.5*widthEnv1;
203  const double zCenterEnv1 = zmaxEnv1 - 0.5*lengthEnv1;
204 
205  m_env1RefPointVector = std::make_unique<GeoTrf::Vector3D>(-xCenterEnv1, -yCenterEnv1, -zCenterEnv1);
206 
207  // Calculate demension of envelope2.
208  const double z_ikl = std::max(i.z(), l.z());
209  const double z_qr = std::max(q.z(), r.z());
210  const double z_mnp = std::min(m.z(), p.z());
211  const double z_st = std::min(s.z(), t.z());
212 
213  const double y_ip = std::max(i.y(), p.y());
214  const double y_qt = std::max(q.y(), t.y());
215  const double y_lm = std::min(l.y(), m.y());
216  const double y_rs = std::min(r.y(), s.y());
217 
218  const double zmaxEnv2 = std::max(z_ikl, z_qr);
219  const double zminEnv2 = std::min(z_mnp, z_st);
220 
221  const double ymaxEnv2 = std::max(y_ip, y_qt);
222  const double yminEnv2 = std::min(y_lm, y_rs);
223 
224  const double thicknessEnv2 = 2.0*(m_outerSide->hybridOffsetX() +
225  0.5*m_innerSide->sensor()->thickness() +
226  0.5*m_sensorGap +
227  0.5*m_outerSide->hybrid()->thickness());
228  const double lengthEnv2 = zmaxEnv2 - zminEnv2;
229  const double widthEnv2 = ymaxEnv2 - yminEnv2;
230 
231  // Center of envelope2.
232  const double xCenterEnv2 = 0.0;
233  const double yCenterEnv2 = ymaxEnv2 - 0.5*widthEnv2;
234  const double zCenterEnv2 = zmaxEnv2 - 0.5*lengthEnv2;
235 
236  m_env2RefPointVector = std::make_unique<GeoTrf::Vector3D>(-xCenterEnv2, -yCenterEnv2, -zCenterEnv2);
237 
238  // Calculate dimension of subbox
239  const double xmaxSubBox = - 0.5*m_baseBoard->thickness() - m_safety;
240  const double xminSubBox = - 0.5*thicknessEnv2 - 2.0*m_safety;
241 
242  const double ymaxSubBox = std::min(r.y(), s.y()) - m_safety;
243  const double yminSubBox = yminEnv2 - 2.0*m_safety;
244 
245  const double zmaxSubBox = zmaxEnv1 + 2.0*m_safety;
246  const double zminSubBox = zminEnv1 - 2.0*m_safety;
247 
248  const double thicknessSubBox = xmaxSubBox - xminSubBox;
249  const double widthSubBox = ymaxSubBox - yminSubBox;
250  const double lengthSubBox = zmaxSubBox - zminSubBox;
251 
252  // Center of subbox.
253  const double xCenterSubBox = xmaxSubBox - 0.5*thicknessSubBox;
254  const double yCenterSubBox = ymaxSubBox - 0.5*widthSubBox;
255  const double zCenterSubBox = zmaxSubBox - 0.5*lengthSubBox;
256 
257 
258  m_env1Thickness = thicknessEnv1 + 2*m_safety;
259  m_env1Width = widthEnv1 + 2*m_safety;
260  m_env1Length = lengthEnv1 + 2*m_safety;
261 
262  m_env2Thickness = thicknessEnv2 + 2*m_safety;
263  m_env2Width = widthEnv2 + 2*m_safety;
264  m_env2Length = lengthEnv2 + 2*m_safety;
265 
266  // Envelope 2 defines the overall thickness. NB. The ski assumes the
267  // the envelope "thickness" is centered on x, which it is.
272 
273  // Calculate a few things.
274  const double OSPosX = 0.5*m_sensorGap + 0.5*m_innerSide->sensor()->thickness();
275  const double ISPosX = -(0.5*m_sensorGap + 0.5*m_innerSide->sensor()->thickness());
276 
277  //
278  // Make an envelope for the whole module.
279  //
280  const GeoBox * envelope1 = new GeoBox(0.5*m_env1Thickness, 0.5*m_env1Width, 0.5*m_env1Length);
281  const GeoBox * envelope2 = new GeoBox(0.5*m_env2Thickness, 0.5*m_env2Width, 0.5*m_env2Length);
282 
283  const GeoBox * subBox = new GeoBox(0.5*thicknessSubBox, 0.5*widthSubBox, 0.6*lengthSubBox);
284 
285  // In the following, envelope1 and envelope2 are added and SUBBOX is pulled.
286  const GeoShape & moduleEnvelope = (*envelope1 << GeoTrf::Translate3D(xCenterEnv1, yCenterEnv1, zCenterEnv1)).
287  add(*envelope2 << GeoTrf::Translate3D(xCenterEnv2, yCenterEnv2, zCenterEnv2)).
288  subtract(*subBox << GeoTrf::Translate3D(xCenterSubBox, yCenterSubBox, zCenterSubBox));
289 
290  const GeoLogVol * moduleLog = new GeoLogVol(getName(), &moduleEnvelope, m_materials->gasMaterial());
291 
292  //
293  // inner side
294  //
295  GeoTrf::Transform3D rotInner = GeoTrf::RotateX3D(m_stereoInner) * GeoTrf::RotateZ3D(180*Gaudi::Units::deg);
296  m_innerSidePos = std::make_unique<GeoTrf::Transform3D>(GeoTrf::Transform3D(GeoTrf::Translation3D(ISPosX, 0.0, 0.0)*rotInner));
297 
298  //
299  // outer side
300  //
301  GeoTrf::RotateX3D rotOuter(m_stereoOuter);
302  m_outerSidePos = std::make_unique<GeoTrf::Transform3D>(GeoTrf::Transform3D(GeoTrf::Translation3D(OSPosX, 0.0, 0.0)*rotOuter));
303 
304  //
305  // base board
306  //
307  const double baseBoardPosY = m_baseBoardOffsetY;
308  const double baseBoardPosZ = m_baseBoardOffsetZ;
309  m_baseBoardPos = std::make_unique<GeoTrf::Translate3D>(0.0, baseBoardPosY, baseBoardPosZ);
310 
311  return moduleLog;
312 }
313 
314 
315 GeoVPhysVol *
317 {
318  GeoFullPhysVol * module=nullptr;
319 
320  if(!m_sqliteReader){
321 
322  module=new GeoFullPhysVol(m_logVolume);
323 
324 
325  // We make these fullPhysVols for the alignment code.
326  // We probably should make the transform for the sensor
327  // alignable rather than the "side" to save making an extra full phys volume.
328 
329  //
330  // Build the module
331  //
332  // Add Baseboard
333  GeoTransform * baseBoardTransform = new GeoTransform(*m_baseBoardPos);
334  module->add(baseBoardTransform);
335  module->add(m_baseBoard->getVolume());
336 
337  // Add innerside
338  GeoAlignableTransform * innerTransform = new GeoAlignableTransform(*m_innerSidePos);
339  module->add(innerTransform);
340  int innerSideNumber = (m_upperSide) ? 0 : 1;
341  module->add(new GeoNameTag("Side#"+intToString(innerSideNumber))); // Identifier side=0
342  module->add(new GeoIdentifierTag(innerSideNumber));
343  id.setSide(innerSideNumber);
344  Identifier innerId = id.getWaferId();
345  GeoVPhysVol * innerSide = m_innerSide->build(id);
346  module->add(innerSide);
347  // Store alignable transform
348  m_detectorManager->addAlignableTransform(0, innerId, innerTransform, innerSide);
349 
350  // Add outerside
351  GeoAlignableTransform * outerTransform = new GeoAlignableTransform(*m_outerSidePos);
352  module->add(outerTransform);
353  int outerSideNumber = m_upperSide;
354  module->add(new GeoNameTag("Side#"+intToString(outerSideNumber))); // Identifier side=1
355  module->add(new GeoIdentifierTag(outerSideNumber));
356  id.setSide(outerSideNumber);
357  Identifier outerId = id.getWaferId();
358  GeoVPhysVol * outerSide = m_outerSide->build(id);
359  module->add(outerSide);
360  // Store alignable transform
361  m_detectorManager->addAlignableTransform(0, outerId, outerTransform, outerSide);
362  } else
363  {
364 
365  // Add innerside
366  int innerSideNumber = (m_upperSide) ? 0 : 1;
367  id.setSide(innerSideNumber);
368  // Store alignable transform
369  Identifier innerId = id.getWaferId();
370  m_innerSide->build(id);
371 
372  std::string key="Side#"+intToString(innerSideNumber)+"_"+std::to_string(id.getBarrelEC())+"_"+std::to_string(id.getLayerDisk())+"_"+std::to_string(id.getEtaModule())+"_"+std::to_string(id.getPhiModule());
374 
375 
376  // Add outerside
377  int outerSideNumber = m_upperSide;
378  id.setSide(outerSideNumber);
379  // Store alignable transform
380  Identifier outerId = id.getWaferId();
381  m_outerSide->build(id);
382 
383  key="Side#"+intToString(outerSideNumber)+"_"+std::to_string(id.getBarrelEC())+"_"+std::to_string(id.getLayerDisk())+"_"+std::to_string(id.getEtaModule())+"_"+std::to_string(id.getPhiModule());
385 
386  }
387  return module;
388 }
SCT_BaseBoard.h
beamspotman.r
def r
Definition: beamspotman.py:676
SCT_Module::m_thickness
double m_thickness
Definition: SCT_Module.h:77
SCT_ComponentFactory::m_geometryManager
SCT_GeometryManager * m_geometryManager
Definition: SCT_ComponentFactory.h:42
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
SCT_Identifier
Definition: SCT_Identifier.h:12
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_UniqueComponentFactory::m_mapFPV
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
Definition: SCT_ComponentFactory.h:95
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
SCT_Module::m_env2Thickness
double m_env2Thickness
Definition: SCT_Module.h:84
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
SCT_GeneralParameters::safety
double safety() const
Definition: SCT_GeneralParameters.cxx:48
SCT_Identifier.h
SCT_Module::m_length
double m_length
Definition: SCT_Module.h:79
SCT_Module::m_env1Width
double m_env1Width
Definition: SCT_Module.h:82
SCT_UniqueComponentFactory::m_mapAX
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
Definition: SCT_ComponentFactory.h:96
hist_file_dump.d
d
Definition: hist_file_dump.py:137
SCT_MaterialManager.h
SCT_Module::m_stereoInner
double m_stereoInner
Definition: SCT_Module.h:94
SCT_Module::SCT_Module
SCT_Module(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX)
Definition: SCT_Module.cxx:42
SCT_Module::m_outerSide
std::unique_ptr< SCT_OuterSide > m_outerSide
Definition: SCT_Module.h:101
deg
#define deg
Definition: SbPolyhedron.cxx:17
SCT_Module::innerSide
const SCT_InnerSide * innerSide() const
Definition: SCT_Module.h:68
SCT_Sensor.h
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
SCT_Module::m_env1Length
double m_env1Length
Definition: SCT_Module.h:83
SCT_OuterSide.h
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SCT_BarrelModuleParameters.h
SCT_Module::m_env2RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
Definition: SCT_Module.h:109
SCT_Module::~SCT_Module
~SCT_Module()
Definition: SCT_Module.cxx:56
SCT_ComponentFactory::m_detectorManager
InDetDD::SCT_DetectorManager * m_detectorManager
Definition: SCT_ComponentFactory.h:41
x
#define x
SCT_Module::m_env1RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
Definition: SCT_Module.h:108
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
SCT_GeometryManager::generalParameters
const SCT_GeneralParameters * generalParameters() const
Definition: SCT_GeometryManager.cxx:105
SCT_Module::m_upperSide
int m_upperSide
Definition: SCT_Module.h:97
SCT_Module::getParameters
void getParameters()
Definition: SCT_Module.cxx:62
SCT_Module::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_Module.cxx:82
SCT_GeneralParameters.h
python.PyAthena.module
module
Definition: PyAthena.py:134
python.SystemOfUnits.radian
int radian
Definition: SystemOfUnits.py:104
SCT_Module::m_env1Thickness
double m_env1Thickness
Definition: SCT_Module.h:81
SCT_Module::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Module.cxx:316
SCT_Module::m_baseBoardOffsetY
double m_baseBoardOffsetY
Definition: SCT_Module.h:90
lumiFormat.i
int i
Definition: lumiFormat.py:92
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
SCT_MaterialManager::gasMaterial
const GeoMaterial * gasMaterial() const
Definition: SCT_MaterialManager.cxx:80
extractSporadic.h
list h
Definition: extractSporadic.py:97
SCT_Module::m_env2Length
double m_env2Length
Definition: SCT_Module.h:86
SCT_Module::m_outerSidePos
std::unique_ptr< GeoTrf::Transform3D > m_outerSidePos
Definition: SCT_Module.h:105
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
SCT_Module::m_stereoAngle
double m_stereoAngle
Definition: SCT_Module.h:96
SCT_Module::m_baseBoardOffsetZ
double m_baseBoardOffsetZ
Definition: SCT_Module.h:91
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:127
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
SCT_ComponentFactory::intToString
std::string intToString(int i) const
Definition: SCT_ComponentFactory.cxx:29
SCT_Hybrid.h
SCT_GeneralParameters
Definition: SCT_GeneralParameters.h:16
SCT_Module::m_width
double m_width
Definition: SCT_Module.h:78
min
#define min(a, b)
Definition: cfImp.cxx:40
SCT_GeometryManager::barrelModuleParameters
const SCT_BarrelModuleParameters * barrelModuleParameters() const
Definition: SCT_GeometryManager.cxx:84
SCT_ComponentFactory::m_materials
SCT_MaterialManager * m_materials
Definition: SCT_ComponentFactory.h:43
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
SCT_Module.h
SCT_BarrelModuleParameters
Definition: SCT_BarrelModuleParameters.h:12
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
SCT_UniqueComponentFactory::m_logVolume
const GeoLogVol * m_logVolume
Definition: SCT_ComponentFactory.h:90
python.PyAthena.v
v
Definition: PyAthena.py:157
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
h
InDetDD::SCT_DetectorManager::addAlignableTransform
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms. No access to these, they will be changed by manager:
Definition: SCT_DetectorManager.cxx:264
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
SCT_Module::m_baseBoard
std::unique_ptr< SCT_BaseBoard > m_baseBoard
Definition: SCT_Module.h:102
SCT_Module::m_env2Width
double m_env2Width
Definition: SCT_Module.h:85
SCT_Module::m_activeWidth
double m_activeWidth
Definition: SCT_Module.h:88
SCT_Module::m_stereoOuter
double m_stereoOuter
Definition: SCT_Module.h:95
extractSporadic.q
list q
Definition: extractSporadic.py:98
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
SCT_Pigtail.h
SCT_Module::m_innerSidePos
std::unique_ptr< GeoTrf::Transform3D > m_innerSidePos
Definition: SCT_Module.h:104
SCT_DetectorManager.h
SCT_UniqueComponentFactory::m_sqliteReader
GeoModelIO::ReadGeoModel * m_sqliteReader
Definition: SCT_ComponentFactory.h:91
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
SCT_InnerSide.h
python.compressB64.c
def c
Definition: compressB64.py:93
SCT_ComponentFactory::getName
const std::string & getName() const
Definition: SCT_ComponentFactory.h:35
SCT_Module::outerSide
const SCT_OuterSide * outerSide() const
Definition: SCT_Module.h:69
SCT_GeometryManager.h
SCT_Module::m_baseBoardPos
std::unique_ptr< GeoTrf::Translate3D > m_baseBoardPos
Definition: SCT_Module.h:106
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_Module::m_innerSide
std::unique_ptr< SCT_InnerSide > m_innerSide
Definition: SCT_Module.h:100
SCT_Module::m_sensorGap
double m_sensorGap
Definition: SCT_Module.h:93
SCT_Module::m_safety
double m_safety
Definition: SCT_Module.h:98
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37