ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_FwdRing.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef SCT_GEOMODEL_SCT_FWDRING_H
6#define SCT_GEOMODEL_SCT_FWDRING_H
7
9
10class SCT_FwdModule;
12
13#include <memory>
14#include <vector>
15
16class GeoNameTag;
17class GeoTransform;
18class GeoLogVol;
19class GeoPhysVol;
20
22{
23
24public:
25 SCT_FwdRing(const std::string & name,
27 int iWheel,
28 int iRing,
29 int ec,
30 InDetDD::SCT_DetectorManager* detectorManager,
31 SCT_GeometryManager* geometryManager,
32 SCT_MaterialManager* materials,
33 GeoModelIO::ReadGeoModel* sqliteReader,
34 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
35 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
36
38
39 //explicitly disallow copy, assignment to appease coverity
40 SCT_FwdRing(const SCT_FwdRing &) = delete;
41 SCT_FwdRing & operator=(const SCT_FwdRing &) = delete;
42
43 //
44 // Retrieve parameters
45 //
46 int numModules() const {return m_numModules;}
47 double moduleStagger() const {return m_moduleStagger;}
48 int identifier() const {return m_identifier;}
49 int ringSide() const {return m_ringSide;}
50 double ringOffset() const {return m_ringOffset;}
51
52 double thickness() const {return m_thickness;}
53 double thicknessInner() const {return m_thicknessInner;}
54 double thicknessOuter() const {return m_thicknessOuter;}
55 double innerRadius() const {return m_innerRadius;}
56 double outerRadius() const {return m_outerRadius;}
57
58 int stereoSign() const {return m_stereoSign;}
59
60 bool discRotated() const {return m_discRotated;}
61
62 virtual GeoVPhysVol * build(SCT_Identifier id);
63
64 // Child elements
65 const SCT_FwdModule* module() const {return m_module;}
66
67private:
68 void makeModuleServices();
69
70private:
71 void getParameters();
72 virtual const GeoLogVol * preBuild();
73
77
78 // Basic parameters
79 int m_numModules = 0;
80 double m_moduleStagger = 0.0;
81 double m_safety = 0.0;
82 int m_identifier = 0;
83 int m_ringSide = 0;
84 int m_stereoSign = 0;
85 double m_refStartAngle = 0.0;
87 double m_ringOffset = 0.0;
89
90 // Derived parameters
91 double m_innerRadius = 0.0;
92 double m_outerRadius = 0.0;
93 double m_thickness = 0.0;
94 double m_thicknessInner = 0.0;
95 double m_thicknessOuter = 0.0;
96 double m_startAngle = 0.0;
98 bool m_discRotated = false;
99 int m_moduleZero = 0;
100
105
108
110
111 // Child detector elements
113 std::unique_ptr<SCT_FwdCoolingBlock> m_coolingBlockHiMain;
114 std::unique_ptr<SCT_FwdCoolingBlock> m_coolingBlockHiSec;
115 std::unique_ptr<SCT_FwdCoolingBlock> m_coolingBlockLoMain;
116 std::unique_ptr<SCT_FwdCoolingBlock> m_coolingBlockLoSec;
117
118 GeoPhysVol * m_moduleServicesHi = nullptr;
119 GeoPhysVol * m_moduleServicesLo = nullptr;
120
121};
122
123#endif // SCT_GEOMODEL_SCT_FWDRING_H
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
double m_moduleServicesLoRPos
GeoPhysVol * m_moduleServicesLo
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockLoSec
double m_moduleServicesHiZPos
SCT_FwdRing(const std::string &name, SCT_FwdModule *module, int iWheel, int iRing, int ec, 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)
double thicknessInner() const
Definition SCT_FwdRing.h:53
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockLoMain
double m_innerRadius
Definition SCT_FwdRing.h:91
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockHiMain
GeoPhysVol * m_moduleServicesHi
double m_refStartAngle
Definition SCT_FwdRing.h:85
const SCT_FwdModule * module() const
Definition SCT_FwdRing.h:65
double m_ringOffset
Definition SCT_FwdRing.h:87
int stereoSign() const
Definition SCT_FwdRing.h:58
double moduleStagger() const
Definition SCT_FwdRing.h:47
double m_moduleServicesLoOuterZPos
double m_moduleServicesHiOuterZPos
double thicknessOuter() const
Definition SCT_FwdRing.h:54
bool discRotated() const
Definition SCT_FwdRing.h:60
virtual GeoVPhysVol * build(SCT_Identifier id)
int identifier() const
Definition SCT_FwdRing.h:48
double m_moduleServicesHiRPos
virtual const GeoLogVol * preBuild()
void getParameters()
double m_thickness
Definition SCT_FwdRing.h:93
double m_moduleStagger
Definition SCT_FwdRing.h:80
double outerRadius() const
Definition SCT_FwdRing.h:56
double m_maxModuleServicesBaseToRingCenter
SCT_FwdRing(const SCT_FwdRing &)=delete
int numModules() const
Definition SCT_FwdRing.h:46
bool m_discRotated
Definition SCT_FwdRing.h:98
SCT_FwdRing & operator=(const SCT_FwdRing &)=delete
double m_outerRadius
Definition SCT_FwdRing.h:92
int ringSide() const
Definition SCT_FwdRing.h:49
SCT_FwdModule * m_module
double m_discSupportThickness
Definition SCT_FwdRing.h:88
int m_firstStagger
Definition SCT_FwdRing.h:97
void makeModuleServices()
double innerRadius() const
Definition SCT_FwdRing.h:55
double m_safety
Definition SCT_FwdRing.h:81
int m_refFirstStagger
Definition SCT_FwdRing.h:86
double m_thicknessOuter
Definition SCT_FwdRing.h:95
double m_thicknessInner
Definition SCT_FwdRing.h:94
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockHiSec
double m_moduleServicesLoZPos
double thickness() const
Definition SCT_FwdRing.h:52
double ringOffset() const
Definition SCT_FwdRing.h:50
double m_startAngle
Definition SCT_FwdRing.h:96
SCT_UniqueComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr, GeoModelIO::ReadGeoModel *sqliteReader=nullptr, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV=nullptr, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX=nullptr)