ATLAS Offline Software
SCT_InnerSide.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 //
6 // 13rd Mar 2005 D.Naito
7 // 28th Mar 2005 S.Mima
8 // Wed 15th Jun 2005 D.Naito modified.
9 //
10 #ifndef SCT_GEOMODEL_SCT_INNERSIDE_H
11 #define SCT_GEOMODEL_SCT_INNERSIDE_H
12 
15 #include "GeoModelKernel/GeoDefinitions.h"
16 #include "GeoModelKernel/GeoIntrusivePtr.h"
17 #include "GeoModelKernel/GeoTransform.h"
18 
19 #include <memory>
20 #include <string>
21 
22 class GeoMaterial;
23 class GeoVPhysVol;
24 class GeoLogVol;
25 class GeoTransform;
26 class SCT_Identifier;
27 class SCT_Hybrid;
28 class SCT_Sensor;
29 
31 
32 {
33 public:
34 
35  SCT_InnerSide(const std::string & name,
36  InDetDD::SCT_DetectorManager* detectorManager,
37  SCT_GeometryManager* geometryManager,
38  SCT_MaterialManager* materials,
39  GeoModelIO::ReadGeoModel* sqliteReader,
40  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
41  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
42 
43  //explicitly disallow copy, assign, to appease coverity
44  SCT_InnerSide(const SCT_InnerSide &) = delete;
45  SCT_InnerSide & operator=(const SCT_InnerSide &) = delete;
46 
48  virtual GeoVPhysVol * build(SCT_Identifier id);
49 
50 public:
51  double thickness() const {return m_thickness;}
52  double width() const {return m_width;}
53  double length() const {return m_length;}
54 
57  // *** End of modified lines. ------------------ (00)*********************************
58 
59 
60  const SCT_Hybrid * hybrid() const {return m_hybrid.get();}
61  const SCT_Sensor * sensor() const {return m_sensor.get();}
62 
63  double hybridOffsetX() const {return m_hybridOffsetX;}
64  //double hybridOffsetY() const {return m_hybridOffsetY;} // 16:30 Wed 15th Jun 2005 D.Naito removed.
65  double hybridOffsetZ() const {return m_hybridOffsetZ;}
66 
67 
68 private:
69  void getParameters();
70  virtual const GeoLogVol * preBuild();
71 
72  double m_thickness = 0.0;
73  double m_width = 0.0;
74  double m_length = 0.0;
75 
76  double m_hybridOffsetX = 0.0;
77  double m_hybridOffsetZ = 0.0;
78  double m_safety = 0.0;
79 
80  std::unique_ptr<SCT_Hybrid> m_hybrid;
81  std::unique_ptr<SCT_Sensor> m_sensor;
82 
83  GeoIntrusivePtr<GeoTransform> m_hybridPos{nullptr};
84  GeoIntrusivePtr<GeoTransform> m_sensorPos{nullptr};
85 
86  std::unique_ptr<GeoTrf::Vector3D> m_env1RefPointVector;
87  std::unique_ptr<GeoTrf::Vector3D> m_env2RefPointVector;
88 
89 };
90 
91 #endif // SCT_GEOMODEL_SCT_INNERSIDE_H
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_Hybrid
Definition: SCT_Hybrid.h:17
SCT_InnerSide::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_InnerSide.cxx:164
SCT_InnerSide::env1RefPointVector
const GeoTrf::Vector3D * env1RefPointVector() const
Definition: SCT_InnerSide.h:55
SCT_InnerSide::~SCT_InnerSide
~SCT_InnerSide()
SCT_InnerSide::m_thickness
double m_thickness
Definition: SCT_InnerSide.h:72
SCT_InnerSide::m_env1RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
Definition: SCT_InnerSide.h:86
SCT_InnerSide::m_hybridPos
GeoIntrusivePtr< GeoTransform > m_hybridPos
Definition: SCT_InnerSide.h:83
SCT_InnerSide::sensor
const SCT_Sensor * sensor() const
Definition: SCT_InnerSide.h:61
SCT_ComponentFactory.h
SCT_InnerSide::env2RefPointVector
const GeoTrf::Vector3D * env2RefPointVector() const
Definition: SCT_InnerSide.h:56
GeoPrimitives.h
SCT_InnerSide::operator=
SCT_InnerSide & operator=(const SCT_InnerSide &)=delete
SCT_InnerSide::m_safety
double m_safety
Definition: SCT_InnerSide.h:78
SCT_InnerSide::hybridOffsetZ
double hybridOffsetZ() const
Definition: SCT_InnerSide.h:65
SCT_InnerSide::m_hybridOffsetZ
double m_hybridOffsetZ
Definition: SCT_InnerSide.h:77
SCT_InnerSide
Definition: SCT_InnerSide.h:32
SCT_InnerSide::getParameters
void getParameters()
Definition: SCT_InnerSide.cxx:58
SCT_InnerSide::m_env2RefPointVector
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
Definition: SCT_InnerSide.h:87
SCT_Sensor
Definition: SCT_Sensor.h:18
SCT_InnerSide::m_hybridOffsetX
double m_hybridOffsetX
Definition: SCT_InnerSide.h:76
SCT_InnerSide::m_sensorPos
GeoIntrusivePtr< GeoTransform > m_sensorPos
Definition: SCT_InnerSide.h:84
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_InnerSide::thickness
double thickness() const
Definition: SCT_InnerSide.h:51
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
SCT_InnerSide::m_width
double m_width
Definition: SCT_InnerSide.h:73
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_InnerSide::hybrid
const SCT_Hybrid * hybrid() const
Definition: SCT_InnerSide.h:60
SCT_InnerSide::m_sensor
std::unique_ptr< SCT_Sensor > m_sensor
Definition: SCT_InnerSide.h:81
SCT_InnerSide::hybridOffsetX
double hybridOffsetX() const
Definition: SCT_InnerSide.h:63
SCT_InnerSide::m_length
double m_length
Definition: SCT_InnerSide.h:74
SCT_InnerSide::SCT_InnerSide
SCT_InnerSide(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_InnerSide.cxx:41
SCT_InnerSide::width
double width() const
Definition: SCT_InnerSide.h:52
SCT_InnerSide::length
double length() const
Definition: SCT_InnerSide.h:53
SCT_InnerSide::SCT_InnerSide
SCT_InnerSide(const SCT_InnerSide &)=delete
SCT_InnerSide::m_hybrid
std::unique_ptr< SCT_Hybrid > m_hybrid
Definition: SCT_InnerSide.h:80
SCT_InnerSide::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_InnerSide.cxx:70
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25