ATLAS Offline Software
SCT_FwdRing.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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 
10 class SCT_FwdModule;
12 
13 #include <memory>
14 #include <vector>
15 
16 class GeoNameTag;
17 class GeoTransform;
18 class GeoLogVol;
19 class GeoPhysVol;
20 
22 {
23 
24 public:
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 
37  ~SCT_FwdRing();
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 
67 private:
68  void makeModuleServices();
69 
70 private:
71  void getParameters();
72  virtual const GeoLogVol * preBuild();
73 
74  int m_iWheel;
75  int m_iRing;
76  int m_endcap;
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;
88  double m_discSupportThickness = 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;
97  int m_firstStagger = 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
SCT_FwdRing::m_thickness
double m_thickness
Definition: SCT_FwdRing.h:93
SCT_FwdRing::m_iWheel
int m_iWheel
Definition: SCT_FwdRing.h:74
SCT_FwdRing::SCT_FwdRing
SCT_FwdRing(const SCT_FwdRing &)=delete
SCT_FwdRing::m_module
SCT_FwdModule * m_module
Definition: SCT_FwdRing.h:112
SCT_FwdRing::operator=
SCT_FwdRing & operator=(const SCT_FwdRing &)=delete
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_FwdRing::innerRadius
double innerRadius() const
Definition: SCT_FwdRing.h:55
SCT_FwdRing::m_moduleServicesLoOuterZPos
double m_moduleServicesLoOuterZPos
Definition: SCT_FwdRing.h:107
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_FwdRing::m_startAngle
double m_startAngle
Definition: SCT_FwdRing.h:96
SCT_FwdRing::m_ringSide
int m_ringSide
Definition: SCT_FwdRing.h:83
SCT_FwdRing
Definition: SCT_FwdRing.h:22
SCT_FwdRing::m_innerRadius
double m_innerRadius
Definition: SCT_FwdRing.h:91
SCT_FwdRing::makeModuleServices
void makeModuleServices()
Definition: SCT_FwdRing.cxx:327
SCT_FwdRing::SCT_FwdRing
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)
Definition: SCT_FwdRing.cxx:37
SCT_FwdRing::outerRadius
double outerRadius() const
Definition: SCT_FwdRing.h:56
SCT_FwdRing::m_refFirstStagger
int m_refFirstStagger
Definition: SCT_FwdRing.h:86
SCT_FwdRing::thicknessInner
double thicknessInner() const
Definition: SCT_FwdRing.h:53
SCT_FwdRing::m_moduleStagger
double m_moduleStagger
Definition: SCT_FwdRing.h:80
SCT_FwdRing::~SCT_FwdRing
~SCT_FwdRing()
Definition: SCT_FwdRing.cxx:87
SCT_FwdRing::m_coolingBlockLoSec
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockLoSec
Definition: SCT_FwdRing.h:116
SCT_FwdRing::m_identifier
int m_identifier
Definition: SCT_FwdRing.h:82
SCT_FwdRing::m_iRing
int m_iRing
Definition: SCT_FwdRing.h:75
SCT_FwdRing::m_coolingBlockLoMain
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockLoMain
Definition: SCT_FwdRing.h:115
SCT_FwdRing::m_discSupportThickness
double m_discSupportThickness
Definition: SCT_FwdRing.h:88
SCT_FwdRing::m_moduleZero
int m_moduleZero
Definition: SCT_FwdRing.h:99
SCT_FwdRing::m_coolingBlockHiMain
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockHiMain
Definition: SCT_FwdRing.h:113
SCT_FwdRing::m_refStartAngle
double m_refStartAngle
Definition: SCT_FwdRing.h:85
SCT_FwdRing::numModules
int numModules() const
Definition: SCT_FwdRing.h:46
SCT_FwdRing::m_moduleServicesLoRPos
double m_moduleServicesLoRPos
Definition: SCT_FwdRing.h:102
SCT_FwdRing::module
const SCT_FwdModule * module() const
Definition: SCT_FwdRing.h:65
SCT_ComponentFactory.h
SCT_FwdCoolingBlock
Definition: SCT_FwdCoolingBlock.h:18
SCT_FwdRing::ringOffset
double ringOffset() const
Definition: SCT_FwdRing.h:50
SCT_FwdRing::identifier
int identifier() const
Definition: SCT_FwdRing.h:48
SCT_FwdRing::m_ringOffset
double m_ringOffset
Definition: SCT_FwdRing.h:87
SCT_FwdRing::m_maxModuleServicesBaseToRingCenter
double m_maxModuleServicesBaseToRingCenter
Definition: SCT_FwdRing.h:109
SCT_FwdRing::m_numModules
int m_numModules
Definition: SCT_FwdRing.h:79
SCT_FwdRing::m_moduleServicesHiZPos
double m_moduleServicesHiZPos
Definition: SCT_FwdRing.h:103
SCT_FwdModule
Definition: SCT_FwdModule.h:27
SCT_FwdRing::discRotated
bool discRotated() const
Definition: SCT_FwdRing.h:60
SCT_FwdRing::thickness
double thickness() const
Definition: SCT_FwdRing.h:52
SCT_FwdRing::m_moduleServicesHi
GeoPhysVol * m_moduleServicesHi
Definition: SCT_FwdRing.h:118
SCT_FwdRing::m_outerRadius
double m_outerRadius
Definition: SCT_FwdRing.h:92
SCT_FwdRing::m_stereoSign
int m_stereoSign
Definition: SCT_FwdRing.h:84
SCT_FwdRing::getParameters
void getParameters()
Definition: SCT_FwdRing.cxx:61
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_FwdRing::moduleStagger
double moduleStagger() const
Definition: SCT_FwdRing.h:47
SCT_FwdRing::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_FwdRing.cxx:92
SCT_FwdRing::m_moduleServicesHiOuterZPos
double m_moduleServicesHiOuterZPos
Definition: SCT_FwdRing.h:106
SCT_FwdRing::m_firstStagger
int m_firstStagger
Definition: SCT_FwdRing.h:97
SCT_FwdRing::m_moduleServicesHiRPos
double m_moduleServicesHiRPos
Definition: SCT_FwdRing.h:101
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_FwdRing::m_safety
double m_safety
Definition: SCT_FwdRing.h:81
SCT_FwdRing::thicknessOuter
double thicknessOuter() const
Definition: SCT_FwdRing.h:54
SCT_FwdRing::m_discRotated
bool m_discRotated
Definition: SCT_FwdRing.h:98
SCT_FwdRing::m_endcap
int m_endcap
Definition: SCT_FwdRing.h:76
SCT_FwdRing::ringSide
int ringSide() const
Definition: SCT_FwdRing.h:49
SCT_FwdRing::m_moduleServicesLo
GeoPhysVol * m_moduleServicesLo
Definition: SCT_FwdRing.h:119
SCT_FwdRing::m_thicknessOuter
double m_thicknessOuter
Definition: SCT_FwdRing.h:95
SCT_FwdRing::m_coolingBlockHiSec
std::unique_ptr< SCT_FwdCoolingBlock > m_coolingBlockHiSec
Definition: SCT_FwdRing.h:114
SCT_FwdRing::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_FwdRing.cxx:172
SCT_FwdRing::stereoSign
int stereoSign() const
Definition: SCT_FwdRing.h:58
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_FwdRing::m_moduleServicesLoZPos
double m_moduleServicesLoZPos
Definition: SCT_FwdRing.h:104
SCT_FwdRing::m_thicknessInner
double m_thicknessInner
Definition: SCT_FwdRing.h:94