ATLAS Offline Software
SCT_FwdModule.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_FWDMODULE_H
6 #define SCT_GEOMODEL_SCT_FWDMODULE_H
7 
9 
11 
12 #include <memory>
13 #include <string>
14 
15 class SCT_Identifier;
17 class SCT_FwdHybrid;
18 class SCT_FwdSpine;
19 class SCT_FwdSubSpine;
20 
21 class GeoTransform;
22 class GeoVPhysVol;
23 class GeoPhysVol;
24 
25 
27 {
28 public:
29 
30  SCT_FwdModule(const std::string & name, int ringType,
31  InDetDD::SCT_DetectorManager* detectorManager,
32  SCT_GeometryManager* geometryManager,
33  SCT_MaterialManager* materials,
34  GeoModelIO::ReadGeoModel* sqliteReader,
35  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
36  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
38  //explicitly disallow copy, assignment to appease coverity
39  SCT_FwdModule(const SCT_FwdModule &) = delete;
40  SCT_FwdModule & operator=(const SCT_FwdModule &) = delete;
41 
42  // Ring type
43  int ringType() const {return m_ringType;}
44 
45  virtual GeoVPhysVol* build(SCT_Identifier id);
46 
47  double stereoAngle() const {return m_stereoAngle;}
48 
49  double moduleShift() const {return m_moduleShift;}
50 
51  double length() const {return m_length;}
52  double outerWidth() const {return m_widthOuter;}
53  double innerWidth() const {return m_widthInner;}
54  double thickness() const {return m_thickness;}
55 
56  double innerRadius() const {return m_innerRadius;}
57  double outerRadius() const {return m_outerRadius;}
58 
59  double centerRadius() const {return 0.5 * (m_innerRadius + m_outerRadius);}
60  double sensorCenterRadius() const {return m_sensor->centerRadius();}
61  double powerTapeStart() const {return m_powerTapeStart;}
62 
63  double mainMountPointRadius() const {return m_mainMountPoint;}
64  double secMountPointRadius() const {return m_secMountPoint;}
65  double endModuleRadius() const {return m_endLocator;}
66 
67 private:
68  void getParameters();
69  virtual const GeoLogVol * preBuild();
70 
71 // const std::string & m_name;
73 
74  double m_stereoAngle = 0.0; // Magnitude of stereo angle
75  double m_length = 0.0;
76  double m_widthOuter = 0.0;
77  double m_widthInner = 0.0;
78  double m_thickness = 0.0;
79  double m_moduleShift = 0.0;
80  double m_glueThickness = 0.0;
81  double m_distBtwMountPoints = 0.0;
82  double m_mountPointToCenter = 0.0;
83  bool m_hybridIsOnInnerEdge = false;
84  int m_upperSide = 0;
85 
86  double m_innerRadius = 0.0;
87  double m_outerRadius = 0.0;
88  double m_powerTapeStart = 0.0;
89 
90  double m_mainMountPoint = 0.0;
91  double m_secMountPoint = 0.0;
92  double m_endLocator = 0.0;
93 
94  bool m_connectorPresent = false;
95 
96 public:
97  // Child detector elements
98  std::unique_ptr<SCT_FwdSensor> m_sensor;
99  std::unique_ptr<SCT_FwdModuleConnector> m_connector;
100  std::unique_ptr<SCT_FwdHybrid> m_hybrid;
101  std::unique_ptr<SCT_FwdSpine> m_spine;
102  std::unique_ptr<SCT_FwdSubSpine> m_subspineL;
103  std::unique_ptr<SCT_FwdSubSpine> m_subspineR;
104 };
105 
106 #endif // SCT_GEOMODEL_SCT_FWDMODULE_H
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_FwdModule::m_widthInner
double m_widthInner
Definition: SCT_FwdModule.h:77
SCT_FwdModule::SCT_FwdModule
SCT_FwdModule(const std::string &name, int ringType, 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_FwdModule.cxx:50
SCT_FwdModule::operator=
SCT_FwdModule & operator=(const SCT_FwdModule &)=delete
SCT_FwdModule::stereoAngle
double stereoAngle() const
Definition: SCT_FwdModule.h:47
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_FwdModule::m_length
double m_length
Definition: SCT_FwdModule.h:75
SCT_FwdHybrid
Definition: SCT_FwdHybrid.h:16
SCT_FwdModule::m_distBtwMountPoints
double m_distBtwMountPoints
Definition: SCT_FwdModule.h:81
SCT_FwdModule::moduleShift
double moduleShift() const
Definition: SCT_FwdModule.h:49
SCT_FwdModule::m_outerRadius
double m_outerRadius
Definition: SCT_FwdModule.h:87
SCT_FwdModule::m_glueThickness
double m_glueThickness
Definition: SCT_FwdModule.h:80
SCT_FwdModuleConnector
Definition: SCT_FwdModuleConnector.h:13
SCT_FwdModule::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_FwdModule.cxx:175
SCT_FwdModule::ringType
int ringType() const
Definition: SCT_FwdModule.h:43
SCT_FwdModule::~SCT_FwdModule
~SCT_FwdModule()
Definition: SCT_FwdModule.cxx:80
SCT_FwdModule::innerWidth
double innerWidth() const
Definition: SCT_FwdModule.h:53
SCT_ComponentFactory.h
SCT_FwdModule::m_widthOuter
double m_widthOuter
Definition: SCT_FwdModule.h:76
SCT_FwdModule::m_subspineR
std::unique_ptr< SCT_FwdSubSpine > m_subspineR
Definition: SCT_FwdModule.h:103
SCT_FwdModule::m_secMountPoint
double m_secMountPoint
Definition: SCT_FwdModule.h:91
SCT_FwdModule::endModuleRadius
double endModuleRadius() const
Definition: SCT_FwdModule.h:65
SCT_FwdModule::m_moduleShift
double m_moduleShift
Definition: SCT_FwdModule.h:79
SCT_FwdModule::m_stereoAngle
double m_stereoAngle
Definition: SCT_FwdModule.h:74
SCT_FwdModule::m_mainMountPoint
double m_mainMountPoint
Definition: SCT_FwdModule.h:90
SCT_FwdSensor.h
SCT_FwdModule::SCT_FwdModule
SCT_FwdModule(const SCT_FwdModule &)=delete
SCT_FwdModule::secMountPointRadius
double secMountPointRadius() const
Definition: SCT_FwdModule.h:64
SCT_FwdModule::outerWidth
double outerWidth() const
Definition: SCT_FwdModule.h:52
SCT_FwdModule::thickness
double thickness() const
Definition: SCT_FwdModule.h:54
SCT_FwdModule::m_mountPointToCenter
double m_mountPointToCenter
Definition: SCT_FwdModule.h:82
SCT_FwdModule::m_connector
std::unique_ptr< SCT_FwdModuleConnector > m_connector
Definition: SCT_FwdModule.h:99
SCT_FwdModule::m_innerRadius
double m_innerRadius
Definition: SCT_FwdModule.h:86
SCT_FwdModule::getParameters
void getParameters()
Definition: SCT_FwdModule.cxx:86
SCT_FwdModule::m_subspineL
std::unique_ptr< SCT_FwdSubSpine > m_subspineL
Definition: SCT_FwdModule.h:102
SCT_FwdSpine
Definition: SCT_FwdSpine.h:16
SCT_FwdModule::m_ringType
int m_ringType
Definition: SCT_FwdModule.h:72
SCT_FwdModule::m_powerTapeStart
double m_powerTapeStart
Definition: SCT_FwdModule.h:88
SCT_FwdModule
Definition: SCT_FwdModule.h:27
SCT_FwdModule::m_connectorPresent
bool m_connectorPresent
Definition: SCT_FwdModule.h:94
SCT_FwdModule::m_hybrid
std::unique_ptr< SCT_FwdHybrid > m_hybrid
Definition: SCT_FwdModule.h:100
SCT_FwdModule::m_endLocator
double m_endLocator
Definition: SCT_FwdModule.h:92
SCT_FwdModule::centerRadius
double centerRadius() const
Definition: SCT_FwdModule.h:59
SCT_FwdModule::m_upperSide
int m_upperSide
Definition: SCT_FwdModule.h:84
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
SCT_FwdModule::innerRadius
double innerRadius() const
Definition: SCT_FwdModule.h:56
SCT_FwdModule::m_sensor
std::unique_ptr< SCT_FwdSensor > m_sensor
Definition: SCT_FwdModule.h:98
SCT_FwdModule::outerRadius
double outerRadius() const
Definition: SCT_FwdModule.h:57
SCT_FwdModule::length
double length() const
Definition: SCT_FwdModule.h:51
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_FwdModule::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_FwdModule.cxx:104
SCT_FwdModule::mainMountPointRadius
double mainMountPointRadius() const
Definition: SCT_FwdModule.h:63
SCT_FwdSubSpine
Definition: SCT_FwdSubSpine.h:20
SCT_FwdModule::sensorCenterRadius
double sensorCenterRadius() const
Definition: SCT_FwdModule.h:60
SCT_FwdModule::m_spine
std::unique_ptr< SCT_FwdSpine > m_spine
Definition: SCT_FwdModule.h:101
SCT_FwdModule::m_thickness
double m_thickness
Definition: SCT_FwdModule.h:78
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_FwdModule::powerTapeStart
double powerTapeStart() const
Definition: SCT_FwdModule.h:61
SCT_FwdModule::m_hybridIsOnInnerEdge
bool m_hybridIsOnInnerEdge
Definition: SCT_FwdModule.h:83