ATLAS Offline Software
SCT_FwdSensor.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef SCT_GEOMODEL_SCT_FWDSENSOR_H
6 #define SCT_GEOMODEL_SCT_FWDSENSOR_H
7 
8 
10 
11 #include <atomic>
12 #include <string>
13 
14 // sensor types
15 /*
16 #define SENSOR_NT 0
17 #define SENSOR_FT 1
18 #define SENSOR_NB 2
19 #define SENSOR_FB 3
20 */
21 
22 #define SENSOR_BOTTOM 0
23 #define SENSOR_TOP 1
24 #include "GeoModelKernel/GeoPhysVol.h"
25 
26 
27 
28 namespace InDetDD{class SiDetectorDesign;}
29 
31 {
32 public:
33  SCT_FwdSensor(const std::string & name, int ringType,
34  InDetDD::SCT_DetectorManager* detectorManager,
35  SCT_GeometryManager* geometryManager,
36  SCT_MaterialManager* materials,
37  GeoModelIO::ReadGeoModel* sqliteReader,
38  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
39  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
41 
42  // Ring type
43  int ringType() const {return m_ringType;}
44 
45 
46  // Inner radius of physical sensor
47  double innerRadius() const {return m_innerRadius;}
48 
49  // Outer radius of physical sensor
50  double outerRadius() const {return m_outerRadius;}
51 
52  // Width of silicon at inner radius
53  double innerWidth() const {return m_innerWidth;}
54 
55  // Width of silicon at outer radius
56  double outerWidth() const {return m_outerWidth;}
57 
58  // Thickness of sensor
59  double thickness() const {return m_thickness;}
60 
61  // Length of physical sensor
62  double length() const {return m_outerRadius - m_innerRadius;}
63 
64  // Radius of center of sensor.
65  double centerRadius() const {return m_sensorRadius;}
66  double sensorOffset() const {return m_sensorOffset;}
67 
68 
69  double outerWidthN() const {return m_outerWidthN;}
70  double innerWidthN() const {return m_innerWidthN;}
71  double lengthN() const {return m_lengthN;}
72  double thicknessN() const {return m_thicknessN;}
73 
74  double outerWidthF() const {return m_outerWidthF;}
75  double innerWidthF() const {return m_innerWidthF;}
76  double lengthF() const {return m_lengthF;}
77  double thicknessF() const {return m_thicknessF;}
78 
79 
80  virtual GeoVPhysVol * build(SCT_Identifier id);
81 
82  GeoPhysVol * getInactive() {return m_inactive;}
83 
84 private:
85  void getParameters();
86  virtual const GeoLogVol * preBuild();
87  void makeDesign();
88 
89  int m_ringType{};
90 
91  double m_thickness = 0.0; // Thickness of sensor
92  double m_outerRadius = 0.0; // Outer radius of physical sensor
93  double m_innerRadius = 0.0; // Outer radius of physical sensor
94  double m_innerWidth = 0.0; // Width of sensor at inner radius
95  double m_outerWidth = 0.0; // Width of sensor at outer radius
96 
97 
98  double m_outerWidthN = 0.0; // Outer physical width of near sensor.
99  double m_innerWidthN = 0.0; // Inner width
100  double m_lengthN = 0.0; // Length (radially).
101  double m_thicknessN = 0.0;
102  double m_radiusN = 0.0;
103  double m_activeHalfLengthNear = 0.0; // Active half length
104 
105  double m_outerWidthF = 0.0; // Outer physical width of Far sensor.
106  double m_innerWidthF = 0.0; // Inner width
107  double m_lengthF = 0.0; // Length (radially).
108  double m_thicknessF = 0.0;
109  double m_radiusF = 0.0;
110  double m_activeHalfLengthFar = 0.0; // Active half length
111 
112  double m_sensorRadius = 0.0; // Physics center (of double wafer)
113 
114  double m_sensorOffset = 0.0; // Offset of det element center.
115  // Differs from m_sensorRadius for truncated middle detector
116 
117  const GeoMaterial * m_materialSensor = nullptr;
118  const GeoMaterial * m_materialGlass = nullptr;
119 
120  GeoIntrusivePtr<GeoPhysVol> m_inactive = nullptr;
121 
123 
124  mutable std::atomic_bool m_noElementWarning;
125 };
126 
127 #endif // SCT_GEOMODEL_SCT_FWDSENSOR_H
128 
129 
130 
SCT_FwdSensor::ringType
int ringType() const
Definition: SCT_FwdSensor.h:43
SCT_FwdSensor::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_FwdSensor.cxx:302
SCT_FwdSensor::m_lengthF
double m_lengthF
Definition: SCT_FwdSensor.h:107
SCT_FwdSensor::lengthN
double lengthN() const
Definition: SCT_FwdSensor.h:71
SCT_FwdSensor::m_ringType
int m_ringType
Definition: SCT_FwdSensor.h:89
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_FwdSensor::innerWidth
double innerWidth() const
Definition: SCT_FwdSensor.h:53
SCT_FwdSensor::lengthF
double lengthF() const
Definition: SCT_FwdSensor.h:76
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_FwdSensor::m_lengthN
double m_lengthN
Definition: SCT_FwdSensor.h:100
SCT_FwdSensor::m_radiusN
double m_radiusN
Definition: SCT_FwdSensor.h:102
SCT_FwdSensor::SCT_FwdSensor
SCT_FwdSensor(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_FwdSensor.cxx:41
SCT_FwdSensor::m_activeHalfLengthNear
double m_activeHalfLengthNear
Definition: SCT_FwdSensor.h:103
SCT_FwdSensor::m_inactive
GeoIntrusivePtr< GeoPhysVol > m_inactive
Definition: SCT_FwdSensor.h:120
SCT_FwdSensor::centerRadius
double centerRadius() const
Definition: SCT_FwdSensor.h:65
SCT_FwdSensor::outerRadius
double outerRadius() const
Definition: SCT_FwdSensor.h:50
SCT_FwdSensor::m_outerWidthN
double m_outerWidthN
Definition: SCT_FwdSensor.h:98
SCT_FwdSensor::outerWidthF
double outerWidthF() const
Definition: SCT_FwdSensor.h:74
SCT_FwdSensor::m_thicknessF
double m_thicknessF
Definition: SCT_FwdSensor.h:108
SCT_FwdSensor::thicknessF
double thicknessF() const
Definition: SCT_FwdSensor.h:77
SCT_FwdSensor::outerWidth
double outerWidth() const
Definition: SCT_FwdSensor.h:56
SCT_FwdSensor::m_outerWidthF
double m_outerWidthF
Definition: SCT_FwdSensor.h:105
SCT_FwdSensor::m_materialSensor
const GeoMaterial * m_materialSensor
Definition: SCT_FwdSensor.h:117
SCT_FwdSensor::innerWidthF
double innerWidthF() const
Definition: SCT_FwdSensor.h:75
SCT_ComponentFactory.h
SCT_FwdSensor::outerWidthN
double outerWidthN() const
Definition: SCT_FwdSensor.h:69
SCT_FwdSensor::m_thickness
double m_thickness
Definition: SCT_FwdSensor.h:91
SCT_FwdSensor::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_FwdSensor.cxx:117
SCT_FwdSensor::m_sensorRadius
double m_sensorRadius
Definition: SCT_FwdSensor.h:112
SCT_FwdSensor::m_radiusF
double m_radiusF
Definition: SCT_FwdSensor.h:109
SCT_FwdSensor::m_outerWidth
double m_outerWidth
Definition: SCT_FwdSensor.h:95
SCT_FwdSensor::~SCT_FwdSensor
~SCT_FwdSensor()
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_FwdSensor::length
double length() const
Definition: SCT_FwdSensor.h:62
SCT_FwdSensor
Definition: SCT_FwdSensor.h:31
SCT_FwdSensor::innerRadius
double innerRadius() const
Definition: SCT_FwdSensor.h:47
SCT_FwdSensor::innerWidthN
double innerWidthN() const
Definition: SCT_FwdSensor.h:70
SCT_FwdSensor::m_innerWidth
double m_innerWidth
Definition: SCT_FwdSensor.h:94
SCT_FwdSensor::m_thicknessN
double m_thicknessN
Definition: SCT_FwdSensor.h:101
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_FwdSensor::sensorOffset
double sensorOffset() const
Definition: SCT_FwdSensor.h:66
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
SCT_FwdSensor::m_innerWidthN
double m_innerWidthN
Definition: SCT_FwdSensor.h:99
SCT_FwdSensor::m_innerRadius
double m_innerRadius
Definition: SCT_FwdSensor.h:93
SCT_FwdSensor::getParameters
void getParameters()
Definition: SCT_FwdSensor.cxx:61
SCT_FwdSensor::getInactive
GeoPhysVol * getInactive()
Definition: SCT_FwdSensor.h:82
InDetDD::SiDetectorDesign
Definition: SiDetectorDesign.h:50
SCT_FwdSensor::m_materialGlass
const GeoMaterial * m_materialGlass
Definition: SCT_FwdSensor.h:118
SCT_FwdSensor::m_activeHalfLengthFar
double m_activeHalfLengthFar
Definition: SCT_FwdSensor.h:110
SCT_FwdSensor::m_sensorOffset
double m_sensorOffset
Definition: SCT_FwdSensor.h:114
SCT_FwdSensor::makeDesign
void makeDesign()
Definition: SCT_FwdSensor.cxx:169
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_FwdSensor::m_outerRadius
double m_outerRadius
Definition: SCT_FwdSensor.h:92
SCT_FwdSensor::thicknessN
double thicknessN() const
Definition: SCT_FwdSensor.h:72
SCT_FwdSensor::m_design
const InDetDD::SiDetectorDesign * m_design
Definition: SCT_FwdSensor.h:122
SCT_FwdSensor::thickness
double thickness() const
Definition: SCT_FwdSensor.h:59
SCT_FwdSensor::m_noElementWarning
std::atomic_bool m_noElementWarning
Definition: SCT_FwdSensor.h:124
SCT_FwdSensor::m_innerWidthF
double m_innerWidthF
Definition: SCT_FwdSensor.h:106