ATLAS Offline Software
SCT_Layer.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 // 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 
17 class GeoMaterial;
18 class GeoVPhysVol;
19 class GeoLogVol;
20 
21 class SCT_Bracket;
22 class SCT_Clamp;
23 class SCT_CoolingEnd;
24 class SCT_Flange;
25 class SCT_Harness;
26 class SCT_Module;
27 class SCT_Ski;
28 class SCT_SkiAux;
29 class SCT_SkiPowerTape;
30 class SCT_SupportCyl;
31 class SCT_FSIEndJewel;
32 class SCT_FSIScorpion;
33 class SCT_FSIFibreMask;
34 class SCT_Identifier;
35 
37 {
38 public:
39  SCT_Layer(const std::string & name,
40  int iLayer,
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 
57 public:
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 
70 private:
71  void getParameters();
72  virtual const GeoLogVol * preBuild();
73 
74  void activeEnvelopeExtent(double & rmin, double & rmax);
75  double calcSkiPhiOffset();
76 
77  // Layer number
78  int m_iLayer;
79 
80  int m_skisPerLayer = 0;
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 
94  double m_outerRadiusOfSupport = 0.0;
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
SCT_Layer::m_includeFSI
bool m_includeFSI
Definition: SCT_Layer.h:102
SCT_Layer::m_outerRadius
double m_outerRadius
Definition: SCT_Layer.h:87
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
SCT_Identifier
Definition: SCT_Identifier.h:12
SCT_Layer::m_stereoSign
int m_stereoSign
Definition: SCT_Layer.h:82
SCT_Layer::m_ski
std::unique_ptr< SCT_Ski > m_ski
Definition: SCT_Layer.h:111
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_FSIScorpion
Definition: SCT_FSIScorpion.h:15
SCT_Bracket
Definition: SCT_Bracket.h:18
SCT_Flange
Definition: SCT_Flange.h:15
SCT_Clamp
Definition: SCT_Clamp.h:15
SCT_Layer::m_coolingEnd
std::unique_ptr< SCT_CoolingEnd > m_coolingEnd
Definition: SCT_Layer.h:113
SCT_Layer::build
virtual GeoVPhysVol * build(SCT_Identifier id)
Definition: SCT_Layer.cxx:255
SCT_Layer::tilt
double tilt() const
Definition: SCT_Layer.h:59
SCT_Layer
Definition: SCT_Layer.h:37
SCT_Layer::m_bracket
std::unique_ptr< SCT_Bracket > m_bracket
Definition: SCT_Layer.h:114
SCT_Layer::m_zEndJewel
double m_zEndJewel
Definition: SCT_Layer.h:105
SCT_FSIEndJewel
Definition: SCT_FSIEndJewel.h:15
SCT_CoolingEnd
Definition: SCT_CoolingEnd.h:15
SCT_Module
Definition: SCT_Module.h:25
SCT_Layer::m_skiPhiStart
double m_skiPhiStart
Definition: SCT_Layer.h:96
SCT_Layer::m_nRepeatScorpion
int m_nRepeatScorpion
Definition: SCT_Layer.h:106
SCT_Layer::m_outerRadiusOfSupport
double m_outerRadiusOfSupport
Definition: SCT_Layer.h:94
SCT_Layer::m_safety
double m_safety
Definition: SCT_Layer.h:84
SCT_Layer::m_innerRadiusActive
double m_innerRadiusActive
Definition: SCT_Layer.h:91
SCT_ComponentFactory.h
python.PyAthena.module
module
Definition: PyAthena.py:131
SCT_Layer::m_bracketPhiOffset
double m_bracketPhiOffset
Definition: SCT_Layer.h:99
SCT_Layer::m_clamp
std::unique_ptr< SCT_Clamp > m_clamp
Definition: SCT_Layer.h:112
SCT_Layer::m_skiPowerTape
std::unique_ptr< SCT_SkiPowerTape > m_skiPowerTape
Definition: SCT_Layer.h:116
SCT_Layer::SCT_Layer
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
SCT_Layer::SCT_Layer
SCT_Layer(const SCT_Layer &)=delete
SCT_Layer::m_fibreMask
std::unique_ptr< SCT_FSIFibreMask > m_fibreMask
Definition: SCT_Layer.h:122
SCT_Layer::skiPhiStart
double skiPhiStart() const
Definition: SCT_Layer.h:67
SCT_Layer::m_phiScorpion
double m_phiScorpion
Definition: SCT_Layer.h:107
SCT_Layer::m_endJewel
std::unique_ptr< SCT_FSIEndJewel > m_endJewel
Definition: SCT_Layer.h:120
SCT_Layer::m_nRepeatEndJewel
int m_nRepeatEndJewel
Definition: SCT_Layer.h:103
SCT_Layer::m_skiAuxPhiStart
double m_skiAuxPhiStart
Definition: SCT_Layer.h:97
SCT_Layer::length
double length() const
Definition: SCT_Layer.h:65
SCT_Layer::m_supportCyl
std::unique_ptr< SCT_SupportCyl > m_supportCyl
Definition: SCT_Layer.h:119
SCT_SkiPowerTape
Definition: SCT_SkiPowerTape.h:15
SCT_Layer::m_module
SCT_Module * m_module
Definition: SCT_Layer.h:110
SCT_Harness
Definition: SCT_Harness.h:15
SCT_Layer::m_radius
double m_radius
Definition: SCT_Layer.h:83
SCT_Layer::m_skiAux
std::unique_ptr< SCT_SkiAux > m_skiAux
Definition: SCT_Layer.h:117
SCT_Layer::operator=
SCT_Layer & operator=(const SCT_Layer &)=delete
SCT_Layer::skisPerLayer
int skisPerLayer() const
Definition: SCT_Layer.h:58
SCT_Ski
Definition: SCT_Ski.h:30
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
SCT_Layer::m_outerRadiusActive
double m_outerRadiusActive
Definition: SCT_Layer.h:92
SCT_Layer::innerRadius
double innerRadius() const
Definition: SCT_Layer.h:63
SCT_Layer::m_tilt
double m_tilt
Definition: SCT_Layer.h:81
SCT_Layer::outerRadius
double outerRadius() const
Definition: SCT_Layer.h:64
SCT_SkiAux
Definition: SCT_SkiAux.h:19
SCT_Layer::m_phiEndJewel
double m_phiEndJewel
Definition: SCT_Layer.h:104
SCT_UniqueComponentFactory
Definition: SCT_ComponentFactory.h:76
SCT_Layer::m_scorpion
std::unique_ptr< SCT_FSIScorpion > m_scorpion
Definition: SCT_Layer.h:121
SCT_Layer::stereoSign
int stereoSign() const
Definition: SCT_Layer.h:60
SCT_SupportCyl
Definition: SCT_SupportCyl.h:15
SCT_Layer::m_innerRadius
double m_innerRadius
Definition: SCT_Layer.h:86
SCT_Layer::m_cylinderLength
double m_cylinderLength
Definition: SCT_Layer.h:88
SCT_Layer::m_phiRefModule
double m_phiRefModule
Definition: SCT_Layer.h:100
SCT_Layer::calcSkiPhiOffset
double calcSkiPhiOffset()
Definition: SCT_Layer.cxx:442
SCT_Layer::~SCT_Layer
virtual ~SCT_Layer()
Definition: SCT_Layer.cxx:69
SCT_Layer::m_iLayer
int m_iLayer
Definition: SCT_Layer.h:78
SCT_Layer::m_harness
std::unique_ptr< SCT_Harness > m_harness
Definition: SCT_Layer.h:115
SCT_Layer::m_zScorpion
double m_zScorpion
Definition: SCT_Layer.h:108
SCT_Layer::radius
double radius() const
Definition: SCT_Layer.h:61
SCT_Layer::getParameters
void getParameters()
Definition: SCT_Layer.cxx:74
SCT_Layer::m_flange
std::unique_ptr< SCT_Flange > m_flange
Definition: SCT_Layer.h:118
SCT_FSIFibreMask
Definition: SCT_FSIFibreMask.h:15
SCT_Layer::activeEnvelopeExtent
void activeEnvelopeExtent(double &rmin, double &rmax)
Definition: SCT_Layer.cxx:398
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25
SCT_Layer::m_skisPerLayer
int m_skisPerLayer
Definition: SCT_Layer.h:80
SCT_Layer::m_activeLength
double m_activeLength
Definition: SCT_Layer.h:89
SCT_Layer::preBuild
virtual const GeoLogVol * preBuild()
Definition: SCT_Layer.cxx:110