ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_OuterSide.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#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
17class GeoMaterial;
18class GeoVPhysVol;
19class GeoLogVol;
20
21class SCT_Identifier;
22class SCT_Hybrid;
23class SCT_Pigtail;
24class SCT_Sensor;
25
27
28{
29public:
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;
43 virtual GeoVPhysVol * build(SCT_Identifier id);
44
45public:
46 double thickness() const {return m_thickness;}
47 double width() const {return m_width;}
48 double length() const {return m_length;}
49
50 const GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector.get();}
51 const GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector.get();}
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
60private:
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
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
GeoIntrusivePtr< GeoTransform > m_sensorPos
double hybridOffsetX() const
SCT_OuterSide(const SCT_OuterSide &)=delete
double width() const
const SCT_Sensor * sensor() const
virtual const GeoLogVol * preBuild()
const GeoTrf::Vector3D * env2RefPointVector() const
GeoIntrusivePtr< GeoTransform > m_pigtailPos
double thickness() const
double m_hybridOffsetZ
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
std::unique_ptr< SCT_Sensor > m_sensor
double hybridOffsetZ() const
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)
double m_hybridOffsetX
virtual GeoVPhysVol * build(SCT_Identifier id)
double length() const
const GeoTrf::Vector3D * env1RefPointVector() const
std::unique_ptr< SCT_Pigtail > m_pigtail
GeoIntrusivePtr< GeoTransform > m_hybridPos
SCT_OuterSide & operator=(const SCT_OuterSide &)=delete
std::unique_ptr< SCT_Hybrid > m_hybrid
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
const SCT_Pigtail * pigtail() const
const SCT_Hybrid * hybrid() const
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)