ATLAS Offline Software
Loading...
Searching...
No Matches
InDetServMatGeometryManager.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef InDetServMatGeometryManager_H
6#define InDetServMatGeometryManager_H
7
11#include <utility>
12
13class IGeometryDBSvc;
15
17{
18public:
20
22
25
28
29 // Access to geometry database
30 const IGeometryDBSvc * db() const {return std::as_const(*m_athenaComps).geomDB();}
31
32 // Access to material manager
34
35
36 // Access to message stream
37 MsgStream& msg (MSG::Level lvl) const { return m_athenaComps->msg(lvl); }
38
39 // Message stream verbosity level
40 bool msgLvl (MSG::Level lvl) const { return m_athenaComps->msgLvl(lvl); }
41
42
44 // General parameters
46 // Check if services are to be build
47 bool buildServices() const;
48
49 // Simple service table
51
53 // Pixel parameters
55
56 // number of layers
57 int pixelNumLayers() const;
58
59 // layer radius
60 double pixelLayerRadius(int layer) const;
61
62 // layer length
63 double pixelLayerLength(int layer) const;
64
65 // Number of staves/sectors per barrel layer
66 int pixelNumSectorsForLayer(int layer) const;
67
68 // Number of modules per stave
69 int pixelModulesPerStave(int layer) const;
70 double pixelLadderBentStaveAngle(int layer) const;
71 int pixelBentStaveNModule(int layer) const;
72 double pixelLadderModuleDeltaZ(int layer) const;
73
74 // Number of staves/sectors per endcap layer
75 int pixelEndcapNumSectorsForLayer(int layer) const;
76
77 int pixelModulesPerRing( int ring) const;
78
79 int pixelModulesPerEndcapSector( int disk) const;
80
81 // number of disks
82 int pixelNumDisks() const;
83
84 // disk Z position
85 double pixelDiskZ(int disk) const;
86
87 // disk min radius
88 double pixelDiskRMin(int disk) const;
89
90 // disk max radius
91 double pixelDiskRMax(int disk) const;
92
93
94 // Z-axis Offset for EOS services
95 double pixelDiskEOSZOffset(int disk) const ;
96
97 std::string pixelDiskServiceRoute(int disk) const;
98
99 // pixel envelpoe radius
100 double pixelEnvelopeRMax() const;
101
102 int pixelBarrelModuleType( int layer) const;
103
104 int pixelDesignType( int moduleType) const;
105
106 int pixelChipsPerModule( int moduleType) const;
107
108 int pixelChipsPerModuleForDisk( int disk) const;
109
111 // Strip detector (SCT) parameters
113
114 // number of layers
115 int sctNumLayers() const;
116
117 // layer radius
118 double sctLayerRadius(int layer) const;
119
120 // layer length
121 double sctLayerLength(int layer) const;
122
123 // layer length
124 int sctLayerType(int layer) const;
125
126 // Number of staves/sectors per barrel layer
127 int sctNumSectorsForLayer(int layer) const;
128
129 int sctModulesPerLadder(int layer) const;
130
131 // Number of staves/sectors per endcap layer
132 int sctEndcapNumSectorsForLayer(int layer) const;
133
134 // number of disks
135 int sctNumDisks() const;
136
137 // disk Z position
138 double sctDiskZ(int disk) const;
139
140 // disk Z position
141 double sctDiskRMax(int disk) const;
142
143 // Inner radius of first SCT support
144 double sctInnerSupport() const;
145
146 // Pixel support tubes dimensions: specify name from simple services table
147 double SupportTubeRMin(const std::string& name) const;
148 double SupportTubeRMax(const std::string& name) const;
149 double SupportTubeZMin(const std::string& name) const;
150 double SupportTubeZMax(const std::string& name) const;
151 int SupportTubeExists(const std::string& name) const;
152
153private:
154 // Record sets
156
169
178
180
182
184
185 // Access to athena components
187
188 // Material Manager
190
191 // index of named support tube in m_InDetSimpleServices table, -1 if not found. Could be cached for speed.
192 int SupportTubeIndex(const std::string& name) const;
193
194};
195
196#endif //InDetServMatGeometryManager_H
Definition of the abstract IRDBAccessSvc interface.
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Define macros for attributes used to control the static checker.
Interface class to access geometry database with possibility to override parameters from a text file.
Class to hold various Athena components.
InDetMaterialManager.
int SupportTubeExists(const std::string &name) const
int SupportTubeIndex(const std::string &name) const
double SupportTubeZMin(const std::string &name) const
double pixelLadderModuleDeltaZ(int layer) const
InDetServMatGeometryManager & operator=(const InDetServMatGeometryManager &)=delete
Delete assignment.
const IGeometryDBSvc * db() const
MsgStream & msg(MSG::Level lvl) const
int pixelChipsPerModule(int moduleType) const
double SupportTubeRMax(const std::string &name) const
double SupportTubeZMax(const std::string &name) const
InDetServMatGeometryManager(InDetDD::AthenaComps *athenaComps)
std::string pixelDiskServiceRoute(int disk) const
InDetServMatGeometryManager(const InDetServMatGeometryManager &)=delete
Delete copy c'tor.
double SupportTubeRMin(const std::string &name) const
IRDBRecordset_ptr simpleServiceTable() const
double pixelLadderBentStaveAngle(int layer) const