ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_Layer.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// CPW 17/8/06
7// Version using new model of services from A. Tricoli
8//
9#ifndef SCT_GEOMODEL_SCT_LAYER_H
10#define SCT_GEOMODEL_SCT_LAYER_H
11
13
14#include <memory>
15#include <string>
16
17class GeoMaterial;
18class GeoVPhysVol;
19class GeoLogVol;
20
21class SCT_Bracket;
22class SCT_Clamp;
23class SCT_CoolingEnd;
24class SCT_Flange;
25class SCT_Harness;
26class SCT_Module;
27class SCT_Ski;
28class SCT_SkiAux;
30class SCT_SupportCyl;
31class SCT_FSIEndJewel;
32class SCT_FSIScorpion;
34class SCT_Identifier;
35
37{
38public:
39 SCT_Layer(const std::string & name,
40 int iLayer,
41 SCT_Module * module,
42 InDetDD::SCT_DetectorManager* detectorManager,
43 SCT_GeometryManager* geometryManager,
44 SCT_MaterialManager* materials,
45 GeoModelIO::ReadGeoModel* sqliteReader,
46 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
47 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
48
49 virtual ~SCT_Layer();
50 //Explicitly disallow copy, assign to appease coverity
51 SCT_Layer(const SCT_Layer &) = delete;
52 SCT_Layer & operator=(const SCT_Layer &) = delete;
53
54 virtual GeoVPhysVol * build(SCT_Identifier id);
55
56
57public:
58 int skisPerLayer() const {return m_skisPerLayer;}
59 double tilt() const {return m_tilt;}
60 int stereoSign() const {return m_stereoSign;}
61 double radius() const {return m_radius;}
62
63 double innerRadius() const {return m_innerRadius;}
64 double outerRadius() const {return m_outerRadius;}
65 double length() const {return m_cylinderLength;}
66
67 double skiPhiStart() const {return m_skiPhiStart;}
68
69
70private:
71 void getParameters();
72 virtual const GeoLogVol * preBuild();
73
74 void activeEnvelopeExtent(double & rmin, double & rmax);
75 double calcSkiPhiOffset();
76
77 // Layer number
79
81 double m_tilt = 0.0;
82 int m_stereoSign = 0;
83 double m_radius = 0.0;
84 double m_safety = 0.0;
85
86 double m_innerRadius = 0.0;
87 double m_outerRadius = 0.0;
88 double m_cylinderLength = 0.0;
89 double m_activeLength = 0.0;
90
91 double m_innerRadiusActive = 0.0;
92 double m_outerRadiusActive = 0.0;
93
95
96 double m_skiPhiStart = 0.0;
97 double m_skiAuxPhiStart = 0.0;
98
99 double m_bracketPhiOffset = 0.0;
100 double m_phiRefModule = 0.0;
101
102 bool m_includeFSI = false;
104 double m_phiEndJewel = 0.0;
105 double m_zEndJewel = 0.0;
107 double m_phiScorpion = 0.0;
108 double m_zScorpion = 0.0;
109
111 std::unique_ptr<SCT_Ski> m_ski;
112 std::unique_ptr<SCT_Clamp> m_clamp;
113 std::unique_ptr<SCT_CoolingEnd> m_coolingEnd;
114 std::unique_ptr<SCT_Bracket> m_bracket;
115 std::unique_ptr<SCT_Harness> m_harness;
116 std::unique_ptr<SCT_SkiPowerTape> m_skiPowerTape;
117 std::unique_ptr<SCT_SkiAux> m_skiAux;
118 std::unique_ptr<SCT_Flange> m_flange;
119 std::unique_ptr<SCT_SupportCyl> m_supportCyl;
120 std::unique_ptr<SCT_FSIEndJewel> m_endJewel;
121 std::unique_ptr<SCT_FSIScorpion> m_scorpion;
122 std::unique_ptr<SCT_FSIFibreMask> m_fibreMask;
123
124};
125
126#endif // SCT_GEOMODEL_SCT_LAYER_H
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
double calcSkiPhiOffset()
double m_bracketPhiOffset
Definition SCT_Layer.h:99
std::unique_ptr< SCT_Ski > m_ski
Definition SCT_Layer.h:111
double m_skiPhiStart
Definition SCT_Layer.h:96
double length() const
Definition SCT_Layer.h:65
virtual ~SCT_Layer()
Definition SCT_Layer.cxx:69
virtual GeoVPhysVol * build(SCT_Identifier id)
std::unique_ptr< SCT_FSIFibreMask > m_fibreMask
Definition SCT_Layer.h:122
int stereoSign() const
Definition SCT_Layer.h:60
double m_outerRadiusActive
Definition SCT_Layer.h:92
int m_skisPerLayer
Definition SCT_Layer.h:80
std::unique_ptr< SCT_Flange > m_flange
Definition SCT_Layer.h:118
double m_innerRadiusActive
Definition SCT_Layer.h:91
int m_iLayer
Definition SCT_Layer.h:78
double outerRadius() const
Definition SCT_Layer.h:64
double m_safety
Definition SCT_Layer.h:84
std::unique_ptr< SCT_SkiAux > m_skiAux
Definition SCT_Layer.h:117
SCT_Layer & operator=(const SCT_Layer &)=delete
double m_cylinderLength
Definition SCT_Layer.h:88
void activeEnvelopeExtent(double &rmin, double &rmax)
double skiPhiStart() const
Definition SCT_Layer.h:67
std::unique_ptr< SCT_Clamp > m_clamp
Definition SCT_Layer.h:112
double m_outerRadiusOfSupport
Definition SCT_Layer.h:94
double m_phiEndJewel
Definition SCT_Layer.h:104
void getParameters()
Definition SCT_Layer.cxx:74
double innerRadius() const
Definition SCT_Layer.h:63
bool m_includeFSI
Definition SCT_Layer.h:102
double m_tilt
Definition SCT_Layer.h:81
std::unique_ptr< SCT_CoolingEnd > m_coolingEnd
Definition SCT_Layer.h:113
double m_phiScorpion
Definition SCT_Layer.h:107
int m_stereoSign
Definition SCT_Layer.h:82
SCT_Layer(const std::string &name, int iLayer, SCT_Module *module, 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_Layer.cxx:52
int m_nRepeatScorpion
Definition SCT_Layer.h:106
double radius() const
Definition SCT_Layer.h:61
int m_nRepeatEndJewel
Definition SCT_Layer.h:103
double m_phiRefModule
Definition SCT_Layer.h:100
double m_outerRadius
Definition SCT_Layer.h:87
std::unique_ptr< SCT_Harness > m_harness
Definition SCT_Layer.h:115
SCT_Module * m_module
Definition SCT_Layer.h:110
double m_radius
Definition SCT_Layer.h:83
SCT_Layer(const SCT_Layer &)=delete
double tilt() const
Definition SCT_Layer.h:59
std::unique_ptr< SCT_SupportCyl > m_supportCyl
Definition SCT_Layer.h:119
double m_zEndJewel
Definition SCT_Layer.h:105
int skisPerLayer() const
Definition SCT_Layer.h:58
double m_zScorpion
Definition SCT_Layer.h:108
std::unique_ptr< SCT_Bracket > m_bracket
Definition SCT_Layer.h:114
std::unique_ptr< SCT_FSIEndJewel > m_endJewel
Definition SCT_Layer.h:120
double m_skiAuxPhiStart
Definition SCT_Layer.h:97
virtual const GeoLogVol * preBuild()
double m_activeLength
Definition SCT_Layer.h:89
std::unique_ptr< SCT_SkiPowerTape > m_skiPowerTape
Definition SCT_Layer.h:116
std::unique_ptr< SCT_FSIScorpion > m_scorpion
Definition SCT_Layer.h:121
double m_innerRadius
Definition SCT_Layer.h:86
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)