ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_ForwardModuleParameters.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include "SCT_DataBase.h"
8
11
12#include "GaudiKernel/SystemOfUnits.h"
13
14#include <cmath>
15
16
21
22//
23// Forward Sensor
24//
25int
27{
28 return m_rdb->fwdSensor(iModuleType)->getInt("NUMWAFERS");
29}
30
31double
33{
34 return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * Gaudi::Units::mm;
35}
36
37double
39{
40 return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHNEAR") * Gaudi::Units::mm;
41}
42
43double
45{
46 return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * Gaudi::Units::mm;
47}
48
49double
51{
52 return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHNEAR") * Gaudi::Units::mm;
53}
54
55double
57{
58 return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * Gaudi::Units::mm;
59}
60
61double
63{
64 return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * Gaudi::Units::mm;
65}
66
67double
69{
70 return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * Gaudi::Units::mm;
71}
72
73double
75{
76 return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSNEAR") * Gaudi::Units::mm;
77}
78
79double
81{
82 return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSFAR") * Gaudi::Units::mm;
83}
84
85std::string
87{
88 return m_rdb->fwdSensor(iModuleType)->getString("MATERIALNEAR");
89}
90
91std::string
93{
94 return m_rdb->fwdSensor(iModuleType)->getString("MATERIALFAR");
95}
96
97bool
99{
100 return m_rdb->fwdSensor(iModuleType)->getInt("ACTIVENEAR");
101}
102
103bool
105{
106 return m_rdb->fwdSensor(iModuleType)->getInt("ACTIVEFAR");
107}
108
109double
111{
112 return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHNEAR") * Gaudi::Units::mm;
113}
114
115double
117{
118 return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * Gaudi::Units::mm;
119}
120
121double
123{
124 return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * Gaudi::Units::radian;
125}
126
127int
129{
130 return m_rdb->fwdSensor(iModuleType)->getInt("NUMSTRIPS");
131}
132
133int
135{
136 return m_rdb->fwdSensor(iModuleType)->getInt("NUMREADOUTSTRIPS");
137}
138
139int
141{
142 return m_rdb->fwdSensor(iModuleType)->getInt("STRIPSHIFT");
143}
144
145
146//
147// Forward Hybrid
148//
149double
151{
152 return m_rdb->fwdHybrid()->getDouble("THICKNESS") * Gaudi::Units::mm;
153}
154
155double
157{
158 return m_rdb->fwdHybrid()->getDouble("INNERWIDTH") * Gaudi::Units::mm;
159}
160
161double
163{
164 return m_rdb->fwdHybrid()->getDouble("OUTERWIDTH") * Gaudi::Units::mm;
165}
166
167double
169{
170 return m_rdb->fwdHybrid()->getDouble("LENGTH") * Gaudi::Units::mm;
171}
172
173double
175{
176 return m_rdb->fwdHybrid()->getDouble("LENGTHTOCORNER") * Gaudi::Units::mm;
177}
178
179double
181{
182 return m_rdb->fwdHybrid()->getDouble("MOUNTPOINTTOINEDGE") * Gaudi::Units::mm;
183}
184
185std::string
187{
188 return m_rdb->fwdHybrid()->getString("MATERIAL");
189}
190
191//
192// Forward Spine
193//
194double
196{
197 return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * Gaudi::Units::mm;
198}
199
200double
202{
203 return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * Gaudi::Units::mm;
204}
205
206double
208{
209 return m_rdb->fwdSpine(iModuleType)->getDouble("ENDTOMODULECENTER") * Gaudi::Units::mm;
210}
211
212
213double
215{
216 return m_rdb->fwdSpine(iModuleType)->getDouble("ENDLOCATORTOENDMOUNT") * Gaudi::Units::mm;
217}
218
219
220std::string
222{
223 return m_rdb->fwdSpine(iModuleType)->getString("MATERIAL");
224}
225
226//
227// Forward SubSpine
228//
229
230double
232{
233 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERWIDTH") * Gaudi::Units::mm;
234}
235
236double
238{
239 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERLENGTH") * Gaudi::Units::mm;
240}
241
242double
244{
245 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERREFDIST") * Gaudi::Units::mm;
246}
247
248double
250{
251 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEWIDTH") * Gaudi::Units::mm;
252}
253
254double
256{
257 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLELENGTH") * Gaudi::Units::mm;
258}
259
260double
262{
263 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEREFDIST") * Gaudi::Units::mm;
264}
265
266double
268{
269 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERWIDTH") * Gaudi::Units::mm;
270}
271
272double
274{
275 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERLENGTH") * Gaudi::Units::mm;
276}
277
278double
280{
281 return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERREFDIST") * Gaudi::Units::mm;
282}
283
284std::string
286{
287 return m_rdb->fwdSpine(iModuleType)->getString("SUBMATERIAL");
288}
289
290
291
292//
293// Forward Module
294//
295int
297{
298 return m_rdb->fwdModuleSize();
299}
300
301double
303{
304 return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * Gaudi::Units::milliradian;
305}
306
307int
309{
310 return m_rdb->fwdModule(iModuleType)->getInt("STEREOUPPERSIGN");
311}
312
313int
315{
316 // Old geometries have lower module side = 0 and upper = 1
317 if (m_rdb->fwdModule(iModuleType)->isFieldNull("SIDEUPPER")) {
318 return 1;
319 }
320 return m_rdb->fwdModule(iModuleType)->getInt("SIDEUPPER");
321}
322
323double
325{
326 return m_rdb->fwdModule(iModuleType)->getDouble("GLUETHICKNESS") * Gaudi::Units::mm;
327}
328
329double
331{
332 return m_rdb->fwdModule(iModuleType)->getDouble("MOUNTPOINT") * Gaudi::Units::mm;
333}
334
335double
337{
338 return m_rdb->fwdModule(iModuleType)->getDouble("DISTBTWMOUNTPOINTS") * Gaudi::Units::mm;
339}
340
341double
343{
344 return m_rdb->fwdModule(iModuleType)->getDouble("HYBRIDEDGETOSPINE")*Gaudi::Units::mm;
345}
346
347bool
349{
350 return m_rdb->fwdModule(iModuleType)->getInt("HYBRIDISONINNEREDGE");
351}
352
353//
354// Module Connectors
355//
356bool
358{
359 return m_rdb->fwdModuleConnectorTable()->size() > 0;
360}
361
362double
364{
365 return m_rdb->fwdModuleConnector()->getDouble("DELTAR") * Gaudi::Units::mm;
366}
367
368double
370{
371 return m_rdb->fwdModuleConnector()->getDouble("RPHI") * Gaudi::Units::mm;
372}
373
374double
376{
377 return m_rdb->fwdModuleConnector()->getDouble("THICKNESS") * Gaudi::Units::mm;
378}
379
380std::string
382{
383 return m_rdb->fwdModuleConnector()->getString("MATERIAL");
384}
385
386
Definition of the abstract IRDBRecord interface.
Definition of the abstract IRDBRecordset interface.
int fwdSensorStripShift(int iModuleType) const
double fwdSensorOuterWidthFar(int iModuleType) const
double fwdSubSpineInnerLength(int iModuleType) const
double fwdSubSpineOuterLength(int iModuleType) const
double fwdSubSpineInnerRefDist(int iModuleType) const
double fwdSubSpineMiddleRefDist(int iModuleType) const
double fwdSpineEndToModuleCenter(int iModuleType) const
int fwdModuleStereoUpperSign(int iModuleType) const
bool fwdSensorActiveNear(int iModuleType) const
double fwdSensorActiveHalfLengthNear(int iModuleType) const
double fwdSensorThickness(int iModuleType) const
int fwdModuleUpperSideNumber(int iModuleType) const
double fwdSensorInnerWidthNear(int iModuleType) const
double fwdModuleDistBtwMountPoints(int iModuleType) const
double fwdModuleGlueThickness(int iModuleType) const
double fwdModuleHybridEdgeToSpine(int iModuleType) const
double fwdSensorRadiusFar(int iModuleType) const
int fwdSensorNumReadoutStrips(int iModuleType) const
double fwdSensorLengthFar(int iModuleType) const
double fwdSubSpineMiddleLength(int iModuleType) const
double fwdSensorOuterWidthNear(int iModuleType) const
double fwdSpineEndLocatorToEndMount(int iModuleType) const
bool fwdHybridIsOnInnerEdge(int iModuleType) const
double fwdSubSpineOuterWidth(int iModuleType) const
double fwdSpineWidth(int iModuleType) const
bool fwdSensorActiveFar(int iModuleType) const
double fwdSensorInnerWidthFar(int iModuleType) const
std::string fwdSpineMaterial(int iModuleType) const
double fwdSubSpineOuterRefDist(int iModuleType) const
std::string fwdSensorMaterialFar(int iModuleType) const
int fwdSensorNumStrips(int iModuleType) const
double fwdModuleMountPoint(int iModuleType) const
double fwdSensorActiveHalfLengthFar(int iModuleType) const
int fwdSensorNumWafers(int iModuleType) const
double fwdSensorAngularPitch(int iModuleType) const
double fwdModuleStereoAngle(int iModuleType) const
std::string fwdSensorMaterialNear(int iModuleType) const
double fwdSensorLengthNear(int iModuleType) const
double fwdSpineThickness(int iModuleType) const
double fwdSubSpineMiddleWidth(int iModuleType) const
double fwdSubSpineInnerWidth(int iModuleType) const
double fwdSensorRadiusNear(int iModuleType) const
std::string fwdSubSpineMaterial(int iModuleType) const