ATLAS Offline Software
SCT_Module.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_MODULE_H
6 #define SCT_GEOMODEL_SCT_MODULE_H
7 
10 #include "GeoModelKernel/GeoDefinitions.h"
11 
12 #include <memory>
13 #include <string>
14 
15 class GeoMaterial;
16 class GeoVPhysVol;
17 class GeoLogVol;
18 
19 class SCT_InnerSide;
20 class SCT_OuterSide;
21 class SCT_BaseBoard;
22 
24 
25 {
26 public:
27 
28  SCT_Module(const std::string & name,
29  InDetDD::SCT_DetectorManager* detectorManager,
30  SCT_GeometryManager* geometryManager,
31  SCT_MaterialManager* materials,
32  GeoModelIO::ReadGeoModel* sqliteReader,
33  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
34  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
35 
36  ~SCT_Module();
37  //Explicitly disallow copy, assign to appease coverity
38  SCT_Module(const SCT_Module &) = delete;
39  SCT_Module & operator=(const SCT_Module &) = delete;
40 
41  virtual GeoVPhysVol * build(SCT_Identifier id);
42 
43 public:
44  double thickness() const {return m_thickness;}
45  double width() const {return m_width;}
46  double length() const {return m_length;}
47 
48  double env1Thickness() const {return m_env1Thickness;}
49  double env1Width() const {return m_env1Width;}
50  double env1Length() const {return m_env1Length;}
51  double env2Thickness() const {return m_env2Thickness;}
52  double env2Width() const {return m_env2Width;}
53  double env2Length() const {return m_env2Length;}
54 
57 
58  double sensorGap() const {return m_sensorGap;}
59  double stereoInner() const {return m_stereoInner;}
60  double stereoOuter() const {return m_stereoOuter;}
61  double stereoAngle() const {return m_stereoAngle;}
62 
63  double activeWidth() const {return m_activeWidth;}
64 
65  double baseBoardOffsetY() const {return m_baseBoardOffsetY;}
66  double baseBoardOffsetZ() const {return m_baseBoardOffsetZ;}
67 
68  const SCT_InnerSide * innerSide() const {return m_innerSide.get();}
69  const SCT_OuterSide * outerSide() const {return m_outerSide.get();}
70  const SCT_BaseBoard * baseBoard() const {return m_baseBoard.get();}
71 
72 
73 private:
74  void getParameters();
75  virtual const GeoLogVol * preBuild();
76 
77  double m_thickness = 0.0;
78  double m_width = 0.0;
79  double m_length = 0.0;
80 
81  double m_env1Thickness = 0.0;
82  double m_env1Width = 0.0;
83  double m_env1Length = 0.0;
84  double m_env2Thickness = 0.0;
85  double m_env2Width = 0.0;
86  double m_env2Length = 0.0;
87 
88  double m_activeWidth = 0.0;
89 
90  double m_baseBoardOffsetY = 0.0;
91  double m_baseBoardOffsetZ = 0.0;
92 
93  double m_sensorGap = 0.0;
94  double m_stereoInner = 0.0;
95  double m_stereoOuter = 0.0;
96  double m_stereoAngle = 0.0;
97  int m_upperSide = 0;
98  double m_safety = 0.0;
99 
100  std::unique_ptr<SCT_InnerSide> m_innerSide;
101  std::unique_ptr<SCT_OuterSide> m_outerSide;
102  std::unique_ptr<SCT_BaseBoard> m_baseBoard;
103 
104  std::unique_ptr<GeoTrf::Transform3D> m_innerSidePos;
105  std::unique_ptr<GeoTrf::Transform3D> m_outerSidePos;
106  std::unique_ptr<GeoTrf::Translate3D> m_baseBoardPos;
107 
108  std::unique_ptr<GeoTrf::Vector3D> m_env1RefPointVector;
109  std::unique_ptr<GeoTrf::Vector3D> m_env2RefPointVector;
110 
111 };
112 
113 #endif // SCT_GEOMODEL_SCT_MODULE_H
SCT_Module::m_thickness
double m_thickness
Definition: SCT_Module.h:77
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_Module::thickness
double thickness() const
Definition: SCT_Module.h:44
SCT_Module::baseBoardOffsetZ
double baseBoardOffsetZ() const
Definition: SCT_Module.h:66
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_Module::m_env2Thickness
double m_env2Thickness
Definition: SCT_Module.h:84
SCT_Module::m_length
double m_length
Definition: SCT_Module.h:79
SCT_Module::m_env1Width
double m_env1Width
Definition: SCT_Module.h:82
SCT_Module::env2Width
double env2Width() const
Definition: SCT_Module.h:52
SCT_Module::operator=
SCT_Module & operator=(const SCT_Module &)=delete
SCT_Module::m_stereoInner
double m_stereoInner
Definition: SCT_Module.h:94
SCT_Module::env1Width
double env1Width() const
Definition: SCT_Module.h:49
SCT_Module::SCT_Module
SCT_Module(const std::string &name, 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_Module.cxx:42
SCT_Module::m_outerSide
std::unique_ptr< SCT_OuterSide > m_outerSide
Definition: SCT_Module.h:101
SCT_Module::stereoInner
double stereoInner() const
Definition: SCT_Module.h:59
SCT_Module::innerSide
const SCT_InnerSide * innerSide() const
Definition: SCT_Module.h:68
SCT_BaseBoard
Definition: SCT_BaseBoard.h:16
SCT_Module
Definition: SCT_Module.h:25
SCT_Module::m_env1Length
double m_env1Length
Definition: SCT_Module.h:83
SCT_Module::env1Length
double env1Length() const
Definition: SCT_Module.h:50
SCT_Module::env2Thickness
double env2Thickness() const
Definition: SCT_Module.h:51
SCT_Module::m_env2RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
Definition: SCT_Module.h:109
SCT_Module::~SCT_Module
~SCT_Module()
Definition: SCT_Module.cxx:56
SCT_Module::activeWidth
double activeWidth() const
Definition: SCT_Module.h:63
SCT_Module::sensorGap
double sensorGap() const
Definition: SCT_Module.h:58
SCT_Module::m_env1RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
Definition: SCT_Module.h:108
SCT_Module::stereoOuter
double stereoOuter() const
Definition: SCT_Module.h:60
SCT_Module::stereoAngle
double stereoAngle() const
Definition: SCT_Module.h:61
SCT_Module::m_upperSide
int m_upperSide
Definition: SCT_Module.h:97
SCT_Module::getParameters
void getParameters()
Definition: SCT_Module.cxx:62
SCT_Module::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_Module.cxx:82
SCT_Module::env2Length
double env2Length() const
Definition: SCT_Module.h:53
SCT_ComponentFactory.h
GeoPrimitives.h
SCT_Module::m_env1Thickness
double m_env1Thickness
Definition: SCT_Module.h:81
SCT_Module::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Module.cxx:316
SCT_Module::SCT_Module
SCT_Module(const SCT_Module &)=delete
SCT_Module::m_baseBoardOffsetY
double m_baseBoardOffsetY
Definition: SCT_Module.h:90
SCT_Module::env1Thickness
double env1Thickness() const
Definition: SCT_Module.h:48
SCT_Module::m_env2Length
double m_env2Length
Definition: SCT_Module.h:86
SCT_Module::m_outerSidePos
std::unique_ptr< GeoTrf::Transform3D > m_outerSidePos
Definition: SCT_Module.h:105
SCT_InnerSide
Definition: SCT_InnerSide.h:32
SCT_Module::m_stereoAngle
double m_stereoAngle
Definition: SCT_Module.h:96
SCT_Module::m_baseBoardOffsetZ
double m_baseBoardOffsetZ
Definition: SCT_Module.h:91
SCT_Module::baseBoard
const SCT_BaseBoard * baseBoard() const
Definition: SCT_Module.h:70
SCT_Module::length
double length() const
Definition: SCT_Module.h:46
SCT_Module::env1RefPointVector
const GeoTrf::Vector3D * env1RefPointVector() const
Definition: SCT_Module.h:55
SCT_Module::m_width
double m_width
Definition: SCT_Module.h:78
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_OuterSide
Definition: SCT_OuterSide.h:28
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_Module::width
double width() const
Definition: SCT_Module.h:45
SCT_Module::m_baseBoard
std::unique_ptr< SCT_BaseBoard > m_baseBoard
Definition: SCT_Module.h:102
SCT_Module::baseBoardOffsetY
double baseBoardOffsetY() const
Definition: SCT_Module.h:65
SCT_Module::m_env2Width
double m_env2Width
Definition: SCT_Module.h:85
SCT_Module::m_activeWidth
double m_activeWidth
Definition: SCT_Module.h:88
SCT_Module::m_stereoOuter
double m_stereoOuter
Definition: SCT_Module.h:95
SCT_Module::env2RefPointVector
const GeoTrf::Vector3D * env2RefPointVector() const
Definition: SCT_Module.h:56
SCT_Module::m_innerSidePos
std::unique_ptr< GeoTrf::Transform3D > m_innerSidePos
Definition: SCT_Module.h:104
SCT_Module::outerSide
const SCT_OuterSide * outerSide() const
Definition: SCT_Module.h:69
SCT_Module::m_baseBoardPos
std::unique_ptr< GeoTrf::Translate3D > m_baseBoardPos
Definition: SCT_Module.h:106
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_Module::m_innerSide
std::unique_ptr< SCT_InnerSide > m_innerSide
Definition: SCT_Module.h:100
SCT_Module::m_sensorGap
double m_sensorGap
Definition: SCT_Module.h:93
SCT_Module::m_safety
double m_safety
Definition: SCT_Module.h:98