ATLAS Offline Software
SCT_FwdWheel.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_FWDWHEEL_H
6 #define SCT_GEOMODEL_SCT_FWDWHEEL_H
7 
9 
10 #include <memory>
11 #include <vector>
12 
13 
14 class SCT_FwdRing;
16 class SCT_FwdDiscSupport;
17 class SCT_FwdPatchPanel;
18 class SCT_FwdPPConnector;
19 class SCT_FwdPPCooling;
20 class SCT_FwdModule;
21 class SCT_FwdFSI;
22 
23 class FSIDetails;
24 
26 {
27 
28 public:
29  SCT_FwdWheel(const std::string & name,
30  int iWheel,
31  const std::vector<SCT_FwdModule *> & modules,
32  int ec,
33  InDetDD::SCT_DetectorManager* detectorManager,
34  SCT_GeometryManager* geometryManager,
35  SCT_MaterialManager* materials,
36  GeoModelIO::ReadGeoModel* sqliteReader,
37  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
38  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
39  ~SCT_FwdWheel();
40  //Explicitly disallow copy and assignment to appease coverity
41  SCT_FwdWheel(const SCT_FwdWheel &) = delete;
42  SCT_FwdWheel & operator=(const SCT_FwdWheel &) = delete;
43 
44  int wheelNum() const {return m_iWheel;}
45 
46  // Retrieve basic parameters
47  //
48  double zPosition() const {return m_zPosition;}
49  int numRings() const {return m_numRings;}
50  int ringType(int i) const {return m_ringType[i];}
51  const SCT_FwdRing* ring(int i) {return m_rings[i].get();}
52 
53  //
54  // Retrieve derived parameters
55  //
56  double thickness() const {return m_thickness;}
57  double innerRadius() const {return m_innerRadius;}
58  double outerRadius() const {return m_outerRadius;}
59  int totalModules() const {return m_totalModules;}
60 
61  virtual GeoVPhysVol * build(SCT_Identifier id);
62 
63 
64 private:
65  void getParameters();
66  virtual const GeoLogVol * preBuild();
67 
68  int m_iWheel;
69  int m_endcap;
70 
71  // Basic parameters
72  int m_numRings = 0;
73  double m_zPosition = 0.0;
74  std::vector<int> m_ringType;
75  std::vector<int> m_patchPanelType;
76  std::vector<double> m_patchPanelLocAngle;
77  std::vector<bool> m_patchPanelRepeatQuadrant;
80  int m_numFSITypes = 0;
81  int m_numWheels = 0;
82  bool m_optoHarnessPresent = false;
83  bool m_pPConnectorPresent = false;
84  bool m_pPCoolingPresent = false;
85  bool m_discFixationPresent = false;
86  std::vector<double> m_discFixationLocAngle;
87 
88  // Derived parameters
89  double m_innerRadius = 0.0;
90  double m_outerRadius = 0.0;
91  double m_thickness = 0.0;
92  double m_thicknessFront = 0.0;
93  double m_thicknessBack = 0.0;
94  int m_totalModules = 0;
95  int m_rotateWheel = 0;
96  double m_ringMaxRadius = 0.0;
97 
98  double m_safety = 0.0;
99 
100  // Child detector elements
101  std::vector<std::unique_ptr<SCT_FwdRing>> m_rings;
102  std::unique_ptr<SCT_FwdDiscSupport> m_discSupport;
103  std::vector<std::unique_ptr<SCT_FwdPatchPanel>> m_patchPanel;
104  std::unique_ptr<SCT_FwdPPConnector> m_pPConnector;
105  std::unique_ptr<SCT_FwdPPCooling> m_pPCooling;
106  std::vector<std::unique_ptr<SCT_FwdFSI>> m_fsiType;
107  std::unique_ptr<SCT_FwdDiscFixation> m_discFixation;
108 
109  const std::vector<SCT_FwdModule*> & m_modules;
110 
111 
112  const std::vector<const FSIDetails *> * m_fsiVector = nullptr;
113 
114 
115 };
116 
117 #endif // SCT_GEOMODEL_SCT_FWDWHEEL_H
118 
SCT_FwdPatchPanel
Definition: SCT_FwdPatchPanel.h:13
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_FwdWheel::m_outerRadius
double m_outerRadius
Definition: SCT_FwdWheel.h:90
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_FwdWheel::m_numRings
int m_numRings
Definition: SCT_FwdWheel.h:72
SCT_FwdWheel::m_discFixationLocAngle
std::vector< double > m_discFixationLocAngle
Definition: SCT_FwdWheel.h:86
SCT_FwdWheel::totalModules
int totalModules() const
Definition: SCT_FwdWheel.h:59
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_FwdRing
Definition: SCT_FwdRing.h:22
SCT_FwdWheel::m_thickness
double m_thickness
Definition: SCT_FwdWheel.h:91
SCT_FwdWheel::SCT_FwdWheel
SCT_FwdWheel(const SCT_FwdWheel &)=delete
SCT_FwdWheel::m_pPCooling
std::unique_ptr< SCT_FwdPPCooling > m_pPCooling
Definition: SCT_FwdWheel.h:105
SCT_FwdWheel::m_zPosition
double m_zPosition
Definition: SCT_FwdWheel.h:73
SCT_FwdWheel::m_fsiVector
const std::vector< const FSIDetails * > * m_fsiVector
Definition: SCT_FwdWheel.h:112
SCT_FwdWheel::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_FwdWheel.cxx:260
SCT_FwdWheel::m_fsiType
std::vector< std::unique_ptr< SCT_FwdFSI > > m_fsiType
Definition: SCT_FwdWheel.h:106
SCT_FwdWheel::m_safety
double m_safety
Definition: SCT_FwdWheel.h:98
SCT_FwdWheel::~SCT_FwdWheel
~SCT_FwdWheel()
Definition: SCT_FwdWheel.cxx:72
SCT_FwdWheel::m_numWheels
int m_numWheels
Definition: SCT_FwdWheel.h:81
SCT_FwdWheel::m_rotateWheel
int m_rotateWheel
Definition: SCT_FwdWheel.h:95
SCT_FwdWheel::m_modules
const std::vector< SCT_FwdModule * > & m_modules
Definition: SCT_FwdWheel.h:109
SCT_FwdWheel::m_discSupport
std::unique_ptr< SCT_FwdDiscSupport > m_discSupport
Definition: SCT_FwdWheel.h:102
SCT_FwdWheel::numRings
int numRings() const
Definition: SCT_FwdWheel.h:49
SCT_FwdWheel::m_numFSITypes
int m_numFSITypes
Definition: SCT_FwdWheel.h:80
SCT_FwdWheel::m_numPatchPanelTypes
int m_numPatchPanelTypes
Definition: SCT_FwdWheel.h:79
SCT_ComponentFactory.h
SCT_FwdWheel::ring
const SCT_FwdRing * ring(int i)
Definition: SCT_FwdWheel.h:51
SCT_FwdWheel::thickness
double thickness() const
Definition: SCT_FwdWheel.h:56
SCT_FwdWheel::m_ringType
std::vector< int > m_ringType
Definition: SCT_FwdWheel.h:74
SCT_FwdWheel::m_patchPanelType
std::vector< int > m_patchPanelType
Definition: SCT_FwdWheel.h:75
SCT_FwdWheel::innerRadius
double innerRadius() const
Definition: SCT_FwdWheel.h:57
SCT_FwdWheel::getParameters
void getParameters()
Definition: SCT_FwdWheel.cxx:77
SCT_FwdWheel::m_patchPanelLocAngle
std::vector< double > m_patchPanelLocAngle
Definition: SCT_FwdWheel.h:76
SCT_FwdWheel::zPosition
double zPosition() const
Definition: SCT_FwdWheel.h:48
SCT_FwdWheel::ringType
int ringType(int i) const
Definition: SCT_FwdWheel.h:50
lumiFormat.i
int i
Definition: lumiFormat.py:85
SCT_FwdWheel::m_endcap
int m_endcap
Definition: SCT_FwdWheel.h:69
SCT_FwdWheel::SCT_FwdWheel
SCT_FwdWheel(const std::string &name, int iWheel, const std::vector< SCT_FwdModule * > &modules, 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_FwdWheel.cxx:52
SCT_FwdWheel::m_iWheel
int m_iWheel
Definition: SCT_FwdWheel.h:68
SCT_FwdWheel::m_pPConnectorPresent
bool m_pPConnectorPresent
Definition: SCT_FwdWheel.h:83
FSIDetails
Definition: SCT_FSIHelper.h:37
SCT_FwdModule
Definition: SCT_FwdModule.h:27
SCT_FwdWheel::m_innerRadius
double m_innerRadius
Definition: SCT_FwdWheel.h:89
SCT_FwdWheel::wheelNum
int wheelNum() const
Definition: SCT_FwdWheel.h:44
SCT_FwdPPConnector
Definition: SCT_FwdPPConnector.h:13
SCT_FwdWheel::m_pPConnector
std::unique_ptr< SCT_FwdPPConnector > m_pPConnector
Definition: SCT_FwdWheel.h:104
SCT_FwdWheel::m_discFixationPresent
bool m_discFixationPresent
Definition: SCT_FwdWheel.h:85
SCT_FwdWheel::m_optoHarnessPresent
bool m_optoHarnessPresent
Definition: SCT_FwdWheel.h:82
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
SCT_FwdWheel::m_thicknessFront
double m_thicknessFront
Definition: SCT_FwdWheel.h:92
SCT_FwdWheel::m_numPatchPanelLocs
int m_numPatchPanelLocs
Definition: SCT_FwdWheel.h:78
SCT_FwdWheel::m_patchPanelRepeatQuadrant
std::vector< bool > m_patchPanelRepeatQuadrant
Definition: SCT_FwdWheel.h:77
SCT_FwdWheel::m_totalModules
int m_totalModules
Definition: SCT_FwdWheel.h:94
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_FwdWheel::outerRadius
double outerRadius() const
Definition: SCT_FwdWheel.h:58
SCT_FwdPPCooling
Definition: SCT_FwdPPCooling.h:13
SCT_FwdWheel
Definition: SCT_FwdWheel.h:26
SCT_FwdWheel::m_rings
std::vector< std::unique_ptr< SCT_FwdRing > > m_rings
Definition: SCT_FwdWheel.h:101
SCT_FwdDiscSupport
Definition: SCT_FwdDiscSupport.h:13
SCT_FwdWheel::m_pPCoolingPresent
bool m_pPCoolingPresent
Definition: SCT_FwdWheel.h:84
SCT_FwdWheel::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_FwdWheel.cxx:135
SCT_FwdFSI
Definition: SCT_FwdFSI.h:13
SCT_FwdWheel::m_discFixation
std::unique_ptr< SCT_FwdDiscFixation > m_discFixation
Definition: SCT_FwdWheel.h:107
SCT_FwdWheel::operator=
SCT_FwdWheel & operator=(const SCT_FwdWheel &)=delete
SCT_FwdDiscFixation
Definition: SCT_FwdDiscFixation.h:13
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_FwdWheel::m_thicknessBack
double m_thicknessBack
Definition: SCT_FwdWheel.h:93
SCT_FwdWheel::m_ringMaxRadius
double m_ringMaxRadius
Definition: SCT_FwdWheel.h:96
SCT_FwdWheel::m_patchPanel
std::vector< std::unique_ptr< SCT_FwdPatchPanel > > m_patchPanel
Definition: SCT_FwdWheel.h:103