ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_BarrelParameters.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8#include "SCT_DataBase.h"
9
11#include "GaudiKernel/SystemOfUnits.h"
12
13#include <cmath>
14
15
20
21
22//
23// Barrel Ski
24//
25int
27{
28 return m_rdb->brlSki()->getInt("SKIFIRSTSTAGGER");
29}
30
31double
33{
34 return m_rdb->brlSki()->getDouble("SKIRADIALSEP") * Gaudi::Units::mm;
35}
36
37int
39{
40 return m_rdb->brlSkiZSize();
41}
42
43double
45{
46 return m_rdb->brlSkiZ(index)->getDouble("ZPOSITION") * Gaudi::Units::mm;
47}
48
49int
51{
52 return m_rdb->brlSkiZ(index)->getInt("MODULEID");
53}
54
55//
56// Barrel Layer
57//
58double
60{
61 return m_rdb->brlLayer(iLayer)->getDouble("TILT") * Gaudi::Units::degree;
62}
63
64int
66{
67 return m_rdb->brlLayer(iLayer)->getInt("STEREOSIGN");
68}
69
70
71double
73{
74 return m_rdb->brlLayer(iLayer)->getDouble("RADIUS") * Gaudi::Units::mm;
75}
76
77int
79{
80 return m_rdb->brlLayer(iLayer)->getInt("SKISPERLAYER");
81}
82
83double
85{
86 return m_rdb->brlLayer(iLayer)->getDouble("BRACKETPHIOFFSET") * Gaudi::Units::deg;
87}
88
89double
91{
92 // For backward compatibility, if field is null return (90 - tilt)
93 // as ref module is horizontal in old versions.
94 if (m_rdb->brlLayer(iLayer)->isFieldNull("PHIOFREFMODULE")) {
95 return 90*Gaudi::Units::deg - tilt(iLayer);
96 }
97 return m_rdb->brlLayer(iLayer)->getDouble("PHIOFREFMODULE") * Gaudi::Units::deg;
98}
99
100
101//
102// Barrel Bracket
103//
104double
106{
107 return m_rdb->brlSki()->getDouble("BRACKETTHICKNESS") * Gaudi::Units::mm;
108}
109
110double
112{
113 return m_rdb->brlSki()->getDouble("BRACKETWIDTH") * Gaudi::Units::mm;
114}
115
116double
118{
119 return m_rdb->brlSki()->getDouble("BRACKETLENGTH") * Gaudi::Units::mm;
120}
121
122std::string
124{
125 return m_rdb->brlSki()->getString("BRACKETMATERIAL");
126}
127
128//
129// Barrel Dogleg
130//
131double
133{
134 return m_rdb->brlSki()->getDouble("DOGLEGTHICKNESS") * Gaudi::Units::mm;
135}
136
137double
139{
140 return m_rdb->brlSki()->getDouble("DOGLEGWIDTH") * Gaudi::Units::mm;
141}
142
143double
145{
146 return m_rdb->brlSki()->getDouble("DOGLEGLENGTH") * Gaudi::Units::mm;
147}
148
149std::string
151{
152 return m_rdb->brlSki()->getString("DOGLEGMATERIAL");
153}
154
155double
157{
158 return m_rdb->brlSki()->getDouble("DOGLEGOFFSETX") * Gaudi::Units::mm;
159}
160
161double
163{
164 return m_rdb->brlSki()->getDouble("DOGLEGOFFSETY") * Gaudi::Units::mm;
165}
166
167//
168// Barrel CoolingBlock
169//
170double
172{
173 return m_rdb->brlSki()->getDouble("COOLINGBLOCKTHICK") * Gaudi::Units::mm;
174}
175
176double
178{
179 return m_rdb->brlSki()->getDouble("COOLINGBLOCKWIDTH") * Gaudi::Units::mm;
180}
181
182double
184{
185 return m_rdb->brlSki()->getDouble("COOLINGBLOCKLENGTH") * Gaudi::Units::mm;
186}
187
188std::string
190{
191 return m_rdb->brlSki()->getString("COOLINGBLOCKMATERIAL");
192}
193
194double
196{
197 return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETX") * Gaudi::Units::mm;
198}
199
200double
202{
203 return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETY") * Gaudi::Units::mm;
204}
205
206double
208{
209 return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETZ") * Gaudi::Units::mm;
210}
211
212//
213// Barrel CoolingPipe
214//
215double
217{
218 return m_rdb->brlSki()->getDouble("COOLINGPIPERADIUS") * Gaudi::Units::mm;
219}
220
221std::string
223{
224 return m_rdb->brlSki()->getString("COOLINGPIPEMATERIAL");
225}
226
227double
229{
230 return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETX") * Gaudi::Units::mm;
231}
232
233double
235{
236 return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETY") * Gaudi::Units::mm;
237}
238
239
240//
241// Barrel PowerTape
242//
243double
245{
246 return m_rdb->brlSki()->getDouble("POWERTAPETHICKNESS") * Gaudi::Units::mm;
247}
248
249double
251{
252 return m_rdb->brlSki()->getDouble("POWERTAPEWIDTH") * Gaudi::Units::mm;
253}
254
255std::string
257{
258 return m_rdb->brlSki()->getString("POWERTAPEMATERIAL");
259}
260
261double
263{
264 return m_rdb->brlSki()->getDouble("POWERTAPESTARTOFFSET") * Gaudi::Units::mm;
265}
266
267//
268// Barrel Harness
269//
270double
272{
273 return m_rdb->brlSki()->getDouble("HARNESSTHICKNESS") * Gaudi::Units::mm;
274}
275
276double
278{
279 return m_rdb->brlSki()->getDouble("HARNESSWIDTH") * Gaudi::Units::mm;
280}
281
282std::string
284{
285 return m_rdb->brlSki()->getString("HARNESSMATERIAL");
286}
287
288//
289// Barrel SupportCyl
290//
291double
293{
294 return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLINNERRAD") * Gaudi::Units::mm;
295}
296
297double
299{
300 return supportCylInnerRadius(iLayer) + supportCylDeltaR(iLayer);
301}
302
303double
305{
306 return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLDELTAR") * Gaudi::Units::mm;
307}
308
309std::string
311{
312 return m_rdb->brlServPerLayer(iLayer)->getString("SUPPORTCYLMATERIAL");
313}
314
315
316//
317// Barrel Flange
318//
319double
321{
322 return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAZ") * Gaudi::Units::mm;
323}
324
325double
327{
328 return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAR") * Gaudi::Units::mm;
329}
330
331std::string
333{
334 return m_rdb->brlServPerLayer(iLayer)->getString("FLANGEMATERIAL");
335}
336
337//
338// Barrel Clamp
339//
340double
342{
343 return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAZ") * Gaudi::Units::mm;
344}
345
346double
348{
349 return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAR") * Gaudi::Units::mm;
350}
351
352std::string
354{
355 return m_rdb->brlServPerLayer(iLayer)->getString("CLAMPMATERIAL");
356}
357
358//
359// Barrel Cooling Inlet/outlets
360//
361double
363{
364 return m_rdb->brlServPerLayer(iLayer)->getDouble("COOLINGENDDELTAR") * Gaudi::Units::mm;
365}
366
367std::string
369{
370 return m_rdb->brlServPerLayer(iLayer)->getString("COOLINGENDMATERIAL");
371}
372
373//
374// Barrel CloseOut
375//
376double
378{
379 return m_rdb->brlServPerLayer(iLayer)->getDouble("CLOSEOUTDELTAZ") * Gaudi::Units::mm;
380}
381
382std::string
384{
385 return m_rdb->brlServPerLayer(iLayer)->getString("CLOSEOUTMATERIAL");
386}
387
388//
389// Barrel InterLink and B6 bearing
390//
391double
393{
394 return m_rdb->brlServices()->getDouble("INTERLINKDELTAZ") * Gaudi::Units::mm;
395}
396
397double
399{
400 return m_rdb->brlServices()->getDouble("INTERLINKINNERRADIUS") * Gaudi::Units::mm;
401}
402
403double
405{
406 return m_rdb->brlServices()->getDouble("INTERLINKOUTERRADIUS") * Gaudi::Units::mm;
407}
408
409std::string
411{
412 return m_rdb->brlServices()->getString("INTERLINKMATERIAL");
413}
414
415double
417{
418 if (m_rdb->brlServices()->isFieldNull("INTERLINKDPHI")) {
419 return 360.*Gaudi::Units::deg;
420 }
421 return m_rdb->brlServices()->getDouble("INTERLINKDPHI") * Gaudi::Units::deg;
422}
423
424double
426{
427 if (m_rdb->brlServices()->isFieldNull("INTERLINKPHIPOS")) {
428 return 0.;
429 }
430 return m_rdb->brlServices()->getDouble("INTERLINKPHIPOS") * Gaudi::Units::deg;
431}
432
433int
435{
436 if (m_rdb->brlServices()->isFieldNull("INTERLINKNREPEAT")) {
437 return 1;
438 }
439 return m_rdb->brlServices()->getInt("INTERLINKNREPEAT");
440}
441
442double
444{
445 if (m_rdb->brlServices()->isFieldNull("BEARINGDPHI")) {
446 return 0.;
447 }
448 return m_rdb->brlServices()->getDouble("BEARINGDPHI") * Gaudi::Units::deg;
449}
450
451double
453{
454 if (m_rdb->brlServices()->isFieldNull("BEARINGPHIPOS")) {
455 return 0.;
456 }
457 return m_rdb->brlServices()->getDouble("BEARINGPHIPOS") * Gaudi::Units::deg;
458}
459
460int
462{
463 if (m_rdb->brlServices()->isFieldNull("BEARINGNREPEAT")) {
464 return 0;
465 }
466 return m_rdb->brlServices()->getInt("BEARINGNREPEAT");
467}
468
469std::string
471{
472 if (m_rdb->brlServices()->isFieldNull("BEARINGMATERIAL")) {
473 return " ";
474 }
475 return m_rdb->brlServices()->getString("BEARINGMATERIAL");
476}
477
478//
479// Barrel FSI and FSI flange
480//
481bool
483{
484 return m_rdb->brlFSISize() > 0;
485}
486
487double
489{
490 return m_rdb->brlFSI()->getDouble("FLANGEINNERRADIUS") * Gaudi::Units::mm;
491}
492
493double
495{
496 return m_rdb->brlFSI()->getDouble("FLANGEOUTERRADIUS") * Gaudi::Units::mm;
497}
498
499std::string
501{
502 return m_rdb->brlFSI()->getString("FLANGEMATERIAL");
503}
504
505double
507{
508 return m_rdb->brlFSI()->getDouble("FIBREMASKDELTAR") * Gaudi::Units::mm;
509}
510
511std::string
513{
514 return m_rdb->brlFSI()->getString("FIBREMASKMATERIAL");
515}
516
517double
519{
520 return m_rdb->brlFSI()->getDouble("ENDJEWELRADIALWIDTH") * Gaudi::Units::mm;
521}
522
523double
525{
526 return m_rdb->brlFSI()->getDouble("ENDJEWELRPHIWIDTH") * Gaudi::Units::mm;
527}
528
529double
531{
532 return m_rdb->brlFSI()->getDouble("ENDJEWELLENGTH") * Gaudi::Units::mm;
533}
534
535std::string
537{
538 return m_rdb->brlFSI()->getString("ENDJEWELMATERIAL");
539}
540
541int
543{
544 return m_rdb->brlFSILocation(iLayer)->getInt("ENDJEWELNREPEAT");
545}
546
547double
549{
550 return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELPHI") * Gaudi::Units::degree;
551}
552
553double
555{
556 return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELZ") * Gaudi::Units::mm;
557}
558
559double
561{
562 return m_rdb->brlFSI()->getDouble("SCORPIONRADIALWIDTH") * Gaudi::Units::mm;
563}
564
565double
567{
568 return m_rdb->brlFSI()->getDouble("SCORPIONRPHIWIDTH") * Gaudi::Units::mm;
569}
570
571double
573{
574 return m_rdb->brlFSI()->getDouble("SCORPIONLENGTH") * Gaudi::Units::mm;
575}
576
577std::string
579{
580 return m_rdb->brlFSI()->getString("SCORPIONMATERIAL");
581}
582
583int
585{
586 return m_rdb->brlFSILocation(iLayer)->getInt("SCORPIONNREPEAT");
587}
588
589double
591{
592 return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONPHI") * Gaudi::Units::degree;
593}
594
595double
597{
598 return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONZ") * Gaudi::Units::mm;
599}
600
601
602//
603// Barrel Cooling Spider
604//
605double
607{
608 return m_rdb->brlServices()->getDouble("SPIDERDELTAZ") * Gaudi::Units::mm;
609}
610
611double
613{
614 return m_rdb->brlServices()->getDouble("SPIDERINNERRADIUS") * Gaudi::Units::mm;
615}
616
617double
619{
620 return m_rdb->brlServices()->getDouble("SPIDEROUTERRADIUS") * Gaudi::Units::mm;
621}
622
623std::string
625{
626 return m_rdb->brlServices()->getString("SPIDERMATERIAL");
627}
628
629//
630// Barrel Thermal Shield
631//
632double
634{
635 return m_rdb->brlThermalShield()->getDouble("INNERRADIUS") * Gaudi::Units::mm;
636}
637
638double
640{
641 return m_rdb->brlThermalShield()->getDouble("OUTERRADIUS") * Gaudi::Units::mm;
642}
643
644double
646{
647 return m_rdb->brlThermalShield()->getDouble("ENDZMAX") * Gaudi::Units::mm;
648}
649
650double
652{
653 return m_rdb->brlThermalShield()->getDouble("CYLTOTALTHICKNESS") * Gaudi::Units::mm;
654}
655
656double
658{
659 return m_rdb->brlThermalShield()->getDouble("CYLINNERWALLTHICK") * Gaudi::Units::mm;
660}
661
662double
664{
665 return m_rdb->brlThermalShield()->getDouble("CYLOUTERWALLTHICK") * Gaudi::Units::mm;
666}
667
668double
670{
671 return m_rdb->brlThermalShield()->getDouble("SPACERZWIDTH") * Gaudi::Units::mm;
672}
673
674double
676{
677 return m_rdb->brlThermalShield()->getDouble("FIRSTSPACERZMIN") * Gaudi::Units::mm;
678}
679
680double
682{
683 return m_rdb->brlThermalShield()->getDouble("ENDCAPCYLTHICKNESS") * Gaudi::Units::mm;
684}
685
686double
688{
689 return m_rdb->brlThermalShield()->getDouble("ENDCAPTHICKNESS") * Gaudi::Units::mm;
690}
691
692double
694{
695 return m_rdb->brlThermalShield()->getDouble("BULKHEADINNERRADIUS") * Gaudi::Units::mm;
696}
697
698double
700{
701 return m_rdb->brlThermalShield()->getDouble("BULKHEADOUTERRADIUS") * Gaudi::Units::mm;
702}
703
704double
706{
707 return m_rdb->brlThermalShield()->getDouble("ENDPANELINNERRADIUS") * Gaudi::Units::mm;
708}
709
710double
712{
713 return m_rdb->brlThermalShield()->getDouble("ENDPANELOUTERRADIUS") * Gaudi::Units::mm;
714}
715
716std::string
718{
719 return m_rdb->brlThermalShield()->getString("MATERIALSPACER");
720}
721
722std::string
724{
725 return m_rdb->brlThermalShield()->getString("MATERIALCYL");
726}
727
728std::string
730{
731 return m_rdb->brlThermalShield()->getString("MATERIALOUTERSECT");
732}
733
734std::string
736{
737 return m_rdb->brlThermalShield()->getString("MATERIALINNERSECT");
738}
739
740//
741// Barrel EMI Shield
742//
743double
745{
746 return m_rdb->brlServices()->getDouble("EMIINNERRADIUS") * Gaudi::Units::mm;
747}
748
749double
751{
752 return m_rdb->brlServices()->getDouble("EMIDELTAR") * Gaudi::Units::mm;
753}
754
755double
757{
758 return m_rdb->brlServices()->getDouble("EMIZMAX") * Gaudi::Units::mm;
759}
760
761std::string
763{
764 return m_rdb->brlServices()->getString("EMIMATERIAL");
765}
766
767double
769{
770 return m_rdb->brlServices()->getDouble("EMIJOINTDELTAR") * Gaudi::Units::mm;
771}
772
773double
775{
776 return m_rdb->brlServices()->getDouble("EMIJOINTRPHI") * Gaudi::Units::mm;
777}
778
779std::string
781{
782 return m_rdb->brlServices()->getString("EMIJOINTMATERIAL");
783}
784
785
786
787//
788// Attachment of pixel to SCT.
789//
790double
792{
793 return m_rdb->brlServices()->getDouble("PIXELATTACHINNERRAD") * Gaudi::Units::mm;
794}
795
796double
798{
799 return m_rdb->brlServices()->getDouble("PIXELATTACHOUTERRAD") * Gaudi::Units::mm;
800}
801
802double
804{
805 return m_rdb->brlServices()->getDouble("PIXELATTACHZMIN") * Gaudi::Units::mm;
806}
807
808double
810{
811 return m_rdb->brlServices()->getDouble("PIXELATTACHDELTAZ") * Gaudi::Units::mm;
812}
813
814std::string
816{
817 return m_rdb->brlServices()->getString("PIXELATTACHMATERIAL");
818}
819
820//
821// Barrel General
822//
823int
825{
826 return m_rdb->brlGeneral()->getInt("NUMLAYERS");
827}
828
829double
831{
832 return m_rdb->brlGeneral()->getDouble("INNERRADIUS") * Gaudi::Units::mm;
833}
834
835double
837{
838 return m_rdb->brlGeneral()->getDouble("OUTERRADIUS") * Gaudi::Units::mm;
839}
840
841double
843{
844 return m_rdb->brlGeneral()->getDouble("LENGTH") * Gaudi::Units::mm;
845}
846
847double
849{
850 return m_rdb->brlGeneral()->getDouble("CYLINDERLENGTH") * Gaudi::Units::mm;
851}
852
853double
855{
856 return m_rdb->brlGeneral()->getDouble("ACTIVELENGTH") * Gaudi::Units::mm;
857}
858
859bool
861{
862 return m_rdb->brlGeneral()->isFieldNull("CYLINDERLENGTH");
863}
864
Definition of the abstract IRDBRecord interface.
double thermalShieldBulkheadInnerRadius() const
double thermalShieldCylTotalThickness() const
double fsiScorpionZ(int iLayer) const
std::string closeOutMaterial(int iLayer) const
double thermalShieldEndPanelInnerRadius() const
std::string thermalShieldMaterialCyl() const
std::string thermalShieldMaterialOuterSect() const
std::string coolingEndMaterial(int iLayer) const
double radius(int iLayer) const
double layerPhiOfRefModule(int iLayer) const
std::string doglegMaterial() const
double pixelAttachmentInnerRadius() const
std::string coolingPipeMaterial() const
double thermalShieldSpacerZWidth() const
double supportCylInnerRadius(int iLayer) const
double clampDeltaR(int iLayer) const
SCT_BarrelParameters(SCT_DataBase *rdb)
double layerBracketPhiOffset(int iLayer) const
int skiModuleIdentifier(int index) const
std::string pixelAttachmentMaterial() const
double thermalShieldInnerRadius() const
double supportCylDeltaR(int iLayer) const
std::string coolingBlockMaterial() const
std::string fsiFlangeMaterial() const
int skisPerLayer(int iLayer) const
double flangeDeltaZ(int iLayer) const
std::string fsiFibreMaskMaterial() const
double clampDeltaZ(int iLayer) const
std::string bearingMaterial() const
std::string emiJointMaterial() const
std::string fsiScorpionMaterial() const
double thermalShieldBulkheadOuterRadius() const
std::string thermalShieldMaterialSpacer() const
double thermalShieldFirstSpacerZMin() const
double thermalShieldEndCapCylThickness() const
double fsiScorpionPhi(int iLayer) const
double powerTapeStartPointOffset() const
double fsiEndJewelZ(int iLayer) const
std::string supportCylMaterial(int iLayer) const
std::string interLinkMaterial() const
std::string emiShieldMaterial() const
double pixelAttachmentOuterRadius() const
double thermalShieldCylInnerWallThickness() const
double flangeDeltaR(int iLayer) const
std::string fsiEndJewelMaterial() const
int fsiScorpionNRepeat(int iLayer) const
std::string bracketMaterial() const
std::string spiderMaterial() const
double coolingEndDeltaR(int iLayer) const
double thermalShieldEndPanelOuterRadius() const
int fsiEndJewelNRepeat(int iLayer) const
std::string thermalShieldMaterialInnerSect() const
std::string harnessMaterial() const
double fsiEndJewelRadialWidth() const
std::string powerTapeMaterial() const
double closeOutDeltaZ(int iLayer) const
double thermalShieldEndCapThickness() const
double supportCylOuterRadius(int iLayer) const
double thermalShieldCylOuterWallThickness() const
std::string clampMaterial(int iLayer) const
double fsiEndJewelPhi(int iLayer) const
double tilt(int iLayer) const
double fsiScorpionRadialWidth() const
int layerStereoSign(int iLayer) const
std::string flangeMaterial(int iLayer) const
double thermalShieldOuterRadius() const
double skiZPosition(int index) const
Definition index.py:1