ATLAS Offline Software
SCT_OuterSide.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_OUTERSIDE_H
6 #define SCT_GEOMODEL_SCT_OUTERSIDE_H
7 
10 #include "GeoModelKernel/GeoDefinitions.h"
11 #include "GeoModelKernel/GeoIntrusivePtr.h"
12 #include "GeoModelKernel/GeoTransform.h"
13 
14 #include <memory>
15 #include <string>
16 
17 class GeoMaterial;
18 class GeoVPhysVol;
19 class GeoLogVol;
20 
21 class SCT_Identifier;
22 class SCT_Hybrid;
23 class SCT_Pigtail;
24 class SCT_Sensor;
25 
27 
28 {
29 public:
30 
31  SCT_OuterSide(const std::string & name,
32  InDetDD::SCT_DetectorManager* detectorManager,
33  SCT_GeometryManager* geometryManager,
34  SCT_MaterialManager* materials,
35  GeoModelIO::ReadGeoModel* sqliteReader,
36  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
37  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
38 
40  //Explicitly disallow copy, assign to appease coverity
41  SCT_OuterSide(const SCT_OuterSide &) = delete;
42  SCT_OuterSide & operator=(const SCT_OuterSide &) = delete;
43  virtual GeoVPhysVol * build(SCT_Identifier id);
44 
45 public:
46  double thickness() const {return m_thickness;}
47  double width() const {return m_width;}
48  double length() const {return m_length;}
49 
52 
53  const SCT_Hybrid * hybrid() const {return m_hybrid.get();}
54  const SCT_Pigtail * pigtail() const {return m_pigtail.get();}
55  const SCT_Sensor * sensor() const {return m_sensor.get();}
56 
57  double hybridOffsetX() const {return m_hybridOffsetX;}
58  double hybridOffsetZ() const {return m_hybridOffsetZ;}
59 
60 private:
61  void getParameters();
62  virtual const GeoLogVol * preBuild();
63 
64  double m_thickness = 0.0;
65  double m_width = 0.0;
66  double m_length = 0.0;
67 
68  double m_hybridOffsetX = 0.0;
69  double m_hybridOffsetZ = 0.0;
70  double m_safety = 0.0;
71 
72  std::unique_ptr<SCT_Hybrid> m_hybrid;
73  std::unique_ptr<SCT_Pigtail> m_pigtail;
74  std::unique_ptr<SCT_Sensor> m_sensor;
75 
76  GeoIntrusivePtr<GeoTransform> m_hybridPos{};
77  GeoIntrusivePtr<GeoTransform> m_pigtailPos{};
78  GeoIntrusivePtr<GeoTransform> m_sensorPos{};
79  std::unique_ptr<GeoTrf::Vector3D> m_env1RefPointVector;
80  std::unique_ptr<GeoTrf::Vector3D> m_env2RefPointVector;
81 
82 };
83 
84 #endif // SCT_GEOMODEL_SCT_OUTERSIDE_H
SCT_Pigtail
Definition: SCT_Pigtail.h:17
SCT_OuterSide::m_thickness
double m_thickness
Definition: SCT_OuterSide.h:64
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_OuterSide::m_pigtail
std::unique_ptr< SCT_Pigtail > m_pigtail
Definition: SCT_OuterSide.h:73
SCT_OuterSide::m_hybridPos
GeoIntrusivePtr< GeoTransform > m_hybridPos
Definition: SCT_OuterSide.h:76
SCT_OuterSide::SCT_OuterSide
SCT_OuterSide(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_OuterSide.cxx:36
SCT_Hybrid
Definition: SCT_Hybrid.h:17
SCT_OuterSide::m_hybridOffsetX
double m_hybridOffsetX
Definition: SCT_OuterSide.h:68
SCT_OuterSide::pigtail
const SCT_Pigtail * pigtail() const
Definition: SCT_OuterSide.h:54
SCT_OuterSide::width
double width() const
Definition: SCT_OuterSide.h:47
SCT_OuterSide::operator=
SCT_OuterSide & operator=(const SCT_OuterSide &)=delete
SCT_OuterSide::~SCT_OuterSide
~SCT_OuterSide()
SCT_OuterSide::m_env1RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
Definition: SCT_OuterSide.h:79
SCT_ComponentFactory.h
SCT_OuterSide::m_sensorPos
GeoIntrusivePtr< GeoTransform > m_sensorPos
Definition: SCT_OuterSide.h:78
GeoPrimitives.h
SCT_OuterSide::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_OuterSide.cxx:66
SCT_OuterSide::hybridOffsetX
double hybridOffsetX() const
Definition: SCT_OuterSide.h:57
SCT_OuterSide::m_env2RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
Definition: SCT_OuterSide.h:80
SCT_OuterSide::m_pigtailPos
GeoIntrusivePtr< GeoTransform > m_pigtailPos
Definition: SCT_OuterSide.h:77
SCT_OuterSide::env2RefPointVector
const GeoTrf::Vector3D * env2RefPointVector() const
Definition: SCT_OuterSide.h:51
SCT_OuterSide::env1RefPointVector
const GeoTrf::Vector3D * env1RefPointVector() const
Definition: SCT_OuterSide.h:50
SCT_OuterSide::m_safety
double m_safety
Definition: SCT_OuterSide.h:70
SCT_Sensor
Definition: SCT_Sensor.h:18
SCT_OuterSide::m_length
double m_length
Definition: SCT_OuterSide.h:66
SCT_OuterSide::hybridOffsetZ
double hybridOffsetZ() const
Definition: SCT_OuterSide.h:58
SCT_OuterSide::length
double length() const
Definition: SCT_OuterSide.h:48
SCT_OuterSide::m_hybridOffsetZ
double m_hybridOffsetZ
Definition: SCT_OuterSide.h:69
SCT_OuterSide::SCT_OuterSide
SCT_OuterSide(const SCT_OuterSide &)=delete
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_OuterSide::hybrid
const SCT_Hybrid * hybrid() const
Definition: SCT_OuterSide.h:53
SCT_OuterSide::sensor
const SCT_Sensor * sensor() const
Definition: SCT_OuterSide.h:55
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_OuterSide::thickness
double thickness() const
Definition: SCT_OuterSide.h:46
SCT_OuterSide::m_sensor
std::unique_ptr< SCT_Sensor > m_sensor
Definition: SCT_OuterSide.h:74
SCT_OuterSide::getParameters
void getParameters()
Definition: SCT_OuterSide.cxx:54
SCT_OuterSide::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_OuterSide.cxx:171
SCT_OuterSide::m_hybrid
std::unique_ptr< SCT_Hybrid > m_hybrid
Definition: SCT_OuterSide.h:72
SCT_OuterSide::m_width
double m_width
Definition: SCT_OuterSide.h:65
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25