ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_InnerSide.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//
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
22class GeoMaterial;
23class GeoVPhysVol;
24class GeoLogVol;
25class GeoTransform;
26class SCT_Identifier;
27class SCT_Hybrid;
28class SCT_Sensor;
29
31
32{
33public:
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;
46
48 virtual GeoVPhysVol * build(SCT_Identifier id);
49
50public:
51 double thickness() const {return m_thickness;}
52 double width() const {return m_width;}
53 double length() const {return m_length;}
54
55 const GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector.get();}
56 const GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector.get();}
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
68private:
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
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
SCT_InnerSide & operator=(const SCT_InnerSide &)=delete
const GeoTrf::Vector3D * env1RefPointVector() const
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)
double length() const
const SCT_Sensor * sensor() const
SCT_InnerSide(const SCT_InnerSide &)=delete
GeoIntrusivePtr< GeoTransform > m_sensorPos
double hybridOffsetX() const
std::unique_ptr< SCT_Sensor > m_sensor
GeoIntrusivePtr< GeoTransform > m_hybridPos
double thickness() const
double hybridOffsetZ() const
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
virtual const GeoLogVol * preBuild()
std::unique_ptr< SCT_Hybrid > m_hybrid
virtual GeoVPhysVol * build(SCT_Identifier id)
const GeoTrf::Vector3D * env2RefPointVector() const
const SCT_Hybrid * hybrid() const
double width() const
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
double m_hybridOffsetZ
double m_hybridOffsetX
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)