ATLAS Offline Software
SCT_Sensor.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_SENSOR_H
6 #define SCT_GEOMODEL_SCT_SENSOR_H
7 
9 
10 #include <atomic>
11 #include <string>
12 
13 class GeoMaterial;
14 class GeoVPhysVol;
15 namespace InDetDD{class SiDetectorDesign;}
16 
18 {
19 public:
20  SCT_Sensor(const std::string & name,
21  InDetDD::SCT_DetectorManager* detectorManager,
22  SCT_GeometryManager* geometryManager,
23  SCT_MaterialManager* materials,
24  GeoModelIO::ReadGeoModel* sqliteReader,
25  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
26  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
27 
28 public:
29  const GeoMaterial * material() const {return m_material;}
30  double thickness() const {return m_thickness;}
31  double width() const {return m_width;}
32  double length() const {return m_length;}
33 
34  virtual GeoVPhysVol * build(SCT_Identifier id);
35 
36 private:
37  void getParameters();
38  virtual const GeoLogVol * preBuild();
39  void makeDesign();
40 
41  const GeoMaterial * m_material = nullptr;
42  double m_thickness = 0.0;
43  double m_width = 0.0;
44  double m_length = 0.0;
45 
47 
48  mutable std::atomic_bool m_noElementWarning;
49 };
50 
51 #endif // SCT_GEOMODEL_SCT_SENSOR_H
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_Sensor::length
double length() const
Definition: SCT_Sensor.h:32
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_Sensor::m_length
double m_length
Definition: SCT_Sensor.h:44
SCT_Sensor::m_width
double m_width
Definition: SCT_Sensor.h:43
SCT_Sensor::SCT_Sensor
SCT_Sensor(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_Sensor.cxx:28
SCT_Sensor::m_material
const GeoMaterial * m_material
Definition: SCT_Sensor.h:41
SCT_ComponentFactory.h
SCT_Sensor::m_noElementWarning
std::atomic_bool m_noElementWarning
Definition: SCT_Sensor.h:48
SCT_Sensor
Definition: SCT_Sensor.h:18
SCT_Sensor::makeDesign
void makeDesign()
Definition: SCT_Sensor.cxx:80
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_Sensor::width
double width() const
Definition: SCT_Sensor.h:31
SCT_Sensor::getParameters
void getParameters()
Definition: SCT_Sensor.cxx:45
SCT_Sensor::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Sensor.cxx:145
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_Sensor::material
const GeoMaterial * material() const
Definition: SCT_Sensor.h:29
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
SCT_Sensor::thickness
double thickness() const
Definition: SCT_Sensor.h:30
SCT_Sensor::m_design
const InDetDD::SiDetectorDesign * m_design
Definition: SCT_Sensor.h:46
SCT_Sensor::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_Sensor.cxx:62
InDetDD::SiDetectorDesign
Definition: SiDetectorDesign.h:50
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_Sensor::m_thickness
double m_thickness
Definition: SCT_Sensor.h:42