ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_Module.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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
15class GeoMaterial;
16class GeoVPhysVol;
17class GeoLogVol;
18
19class SCT_InnerSide;
20class SCT_OuterSide;
21class SCT_BaseBoard;
22
24
25{
26public:
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
43public:
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
55 const GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector.get();}
56 const GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector.get();}
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
73private:
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
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
double width() const
Definition SCT_Module.h:45
const GeoTrf::Vector3D * env1RefPointVector() const
Definition SCT_Module.h:55
const SCT_OuterSide * outerSide() const
Definition SCT_Module.h:69
double sensorGap() const
Definition SCT_Module.h:58
std::unique_ptr< SCT_BaseBoard > m_baseBoard
Definition SCT_Module.h:102
double env2Thickness() const
Definition SCT_Module.h:51
double m_stereoOuter
Definition SCT_Module.h:95
double env1Thickness() const
Definition SCT_Module.h:48
void getParameters()
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
Definition SCT_Module.h:108
double stereoOuter() const
Definition SCT_Module.h:60
double m_stereoInner
Definition SCT_Module.h:94
double m_env1Width
Definition SCT_Module.h:82
double m_sensorGap
Definition SCT_Module.h:93
double m_env1Thickness
Definition SCT_Module.h:81
double m_length
Definition SCT_Module.h:79
double m_baseBoardOffsetZ
Definition SCT_Module.h:91
double thickness() const
Definition SCT_Module.h:44
const SCT_InnerSide * innerSide() const
Definition SCT_Module.h:68
double stereoInner() const
Definition SCT_Module.h:59
double activeWidth() const
Definition SCT_Module.h:63
double m_env2Width
Definition SCT_Module.h:85
double baseBoardOffsetZ() const
Definition SCT_Module.h:66
double m_env2Thickness
Definition SCT_Module.h:84
std::unique_ptr< GeoTrf::Transform3D > m_innerSidePos
Definition SCT_Module.h:104
double m_env2Length
Definition SCT_Module.h:86
double env2Length() const
Definition SCT_Module.h:53
std::unique_ptr< GeoTrf::Translate3D > m_baseBoardPos
Definition SCT_Module.h:106
double m_env1Length
Definition SCT_Module.h:83
double env2Width() const
Definition SCT_Module.h:52
double m_safety
Definition SCT_Module.h:98
virtual GeoVPhysVol * build(SCT_Identifier id)
std::unique_ptr< SCT_InnerSide > m_innerSide
Definition SCT_Module.h:100
double baseBoardOffsetY() const
Definition SCT_Module.h:65
std::unique_ptr< SCT_OuterSide > m_outerSide
Definition SCT_Module.h:101
SCT_Module & operator=(const SCT_Module &)=delete
const SCT_BaseBoard * baseBoard() const
Definition SCT_Module.h:70
const GeoTrf::Vector3D * env2RefPointVector() const
Definition SCT_Module.h:56
double m_width
Definition SCT_Module.h:78
double m_baseBoardOffsetY
Definition SCT_Module.h:90
int m_upperSide
Definition SCT_Module.h:97
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
Definition SCT_Module.h:109
virtual const GeoLogVol * preBuild()
SCT_Module(const SCT_Module &)=delete
double m_activeWidth
Definition SCT_Module.h:88
double length() const
Definition SCT_Module.h:46
std::unique_ptr< GeoTrf::Transform3D > m_outerSidePos
Definition SCT_Module.h:105
double m_thickness
Definition SCT_Module.h:77
double env1Width() const
Definition SCT_Module.h:49
double stereoAngle() const
Definition SCT_Module.h:61
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)
double m_stereoAngle
Definition SCT_Module.h:96
double env1Length() const
Definition SCT_Module.h:50
SCT_UniqueComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr, GeoModelIO::ReadGeoModel *sqliteReader=nullptr, std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > mapFPV=nullptr, std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > mapAX=nullptr)