ATLAS Offline Software
SCT_Forward.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_FORWARD_H
6 #define SCT_GEOMODEL_SCT_FORWARD_H
7 
9 
10 #include <memory>
11 #include <vector>
12 
13 class SCT_FwdModule;
14 class SCT_FwdWheel;
15 
16 
18 {
19 
20 public:
21 
22  SCT_Forward(const std::string & name, int ec,
23  InDetDD::SCT_DetectorManager* detectorManager,
24  SCT_GeometryManager* geometryManager,
25  SCT_MaterialManager* materials,
26  GeoModelIO::ReadGeoModel* sqliteReader,
27  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
28  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
29  ~SCT_Forward();
30 
31  //
32  // Methods to return basic and derived parameters.
33  //
34  // Retrieve basic parameters
35  //
36 
37  int numModuleTypes() const {return m_numModuleTypes;}
38  int numWheels() const {return m_numWheels;}
39  double innerRadius() const {return m_innerRadius;}
40  double outerRadius() const {return m_outerRadius;}
41  double zMax() const {return m_zMax;}
42  double zMin() const {return m_zMin;}
43  double trtGapPos() const {return m_trtGapPos;}
44 
45  //
46  // Retrieve derived parameters
47  //
48  double length() const {return m_length;}
49  double zCenter() const {return 0.5*(m_zMin+m_zMax);}
50 
51  virtual GeoVPhysVol * build(SCT_Identifier id);
52 
53 
54 
55 private:
56  void getParameters();
57  virtual const GeoLogVol * preBuild();
58 
59  // Basic parameters
60  int m_endcap;
62  int m_numWheels = 0;
63  double m_innerRadius = 0.0;
64  double m_outerRadius = 0.0;
65  double m_zMin = 0.0;
66  double m_zMax = 0.0;
67  double m_trtGapPos = 0.0;
68  double m_coolingPipeRadius = 0.0;
71 
72  // Derived parameters
73  double m_length = 0.0;
75 
76  // Child detector elements
77  std::vector<std::unique_ptr<SCT_FwdWheel>> m_wheels;
78 
79  std::vector<std::unique_ptr<SCT_FwdModule>> m_modules;
80 
81 };
82 
83 #endif // SCT_GEOMODEL_SCT_FWDRING_H
84 
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Forward::m_modules
std::vector< std::unique_ptr< SCT_FwdModule > > m_modules
Definition: SCT_Forward.h:79
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_Forward::m_innerRadius
double m_innerRadius
Definition: SCT_Forward.h:63
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_Forward::numModuleTypes
int numModuleTypes() const
Definition: SCT_Forward.h:37
SCT_Forward::m_wheels
std::vector< std::unique_ptr< SCT_FwdWheel > > m_wheels
Definition: SCT_Forward.h:77
SCT_Forward::SCT_Forward
SCT_Forward(const std::string &name, 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_Forward.cxx:40
SCT_Forward::zMax
double zMax() const
Definition: SCT_Forward.h:41
SCT_Forward::m_outerRadiusCylinderServices
double m_outerRadiusCylinderServices
Definition: SCT_Forward.h:74
SCT_Forward::zMin
double zMin() const
Definition: SCT_Forward.h:42
SCT_Forward::~SCT_Forward
~SCT_Forward()
Definition: SCT_Forward.cxx:55
SCT_Forward::m_cylinderServicesPresent
bool m_cylinderServicesPresent
Definition: SCT_Forward.h:70
SCT_Forward::m_coolingPipeRadius
double m_coolingPipeRadius
Definition: SCT_Forward.h:68
SCT_ComponentFactory.h
SCT_Forward::m_zMax
double m_zMax
Definition: SCT_Forward.h:66
SCT_Forward::innerRadius
double innerRadius() const
Definition: SCT_Forward.h:39
SCT_Forward::m_numModuleTypes
int m_numModuleTypes
Definition: SCT_Forward.h:61
SCT_FwdModule
Definition: SCT_FwdModule.h:27
SCT_Forward::outerRadius
double outerRadius() const
Definition: SCT_Forward.h:40
SCT_Forward::length
double length() const
Definition: SCT_Forward.h:48
SCT_Forward::m_numThermalShieldElements
int m_numThermalShieldElements
Definition: SCT_Forward.h:69
SCT_Forward::m_outerRadius
double m_outerRadius
Definition: SCT_Forward.h:64
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_Forward::m_endcap
int m_endcap
Definition: SCT_Forward.h:60
SCT_Forward::m_trtGapPos
double m_trtGapPos
Definition: SCT_Forward.h:67
SCT_Forward::zCenter
double zCenter() const
Definition: SCT_Forward.h:49
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_Forward::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_Forward.cxx:99
SCT_Forward::getParameters
void getParameters()
Definition: SCT_Forward.cxx:60
SCT_Forward::numWheels
int numWheels() const
Definition: SCT_Forward.h:38
SCT_Forward
Definition: SCT_Forward.h:18
SCT_FwdWheel
Definition: SCT_FwdWheel.h:26
SCT_Forward::m_numWheels
int m_numWheels
Definition: SCT_Forward.h:62
SCT_Forward::m_zMin
double m_zMin
Definition: SCT_Forward.h:65
SCT_Forward::m_length
double m_length
Definition: SCT_Forward.h:73
SCT_Forward::trtGapPos
double trtGapPos() const
Definition: SCT_Forward.h:43
SCT_Forward::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Forward.cxx:131
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25