ATLAS Offline Software
ServiceVolumeMaker.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #include <utility>
6 
7 
8 
12 
14 
17 #include "GaudiKernel/SystemOfUnits.h"
18 
19 namespace InDetDD {
22  }
23 
24  void
26  m_rmin = "RIN";
27  m_rmax = "ROUT";
28  m_rmin2 = "RIN2";
29  m_rmax2 = "ROUT2";
30  m_zmin = "ZIN";
31  m_zmax = "ZOUT";
32  m_zsymm = "ZSYMM";
33  m_materialName = "MATERIALNAME";
34  m_repeat = "REPEAT";
35  m_phiStart = "PHI";
36  m_phiDelta = "WIDTH";
37  m_width = "WIDTH";
38  m_shapeType = "SHAPE";
39  m_volName = "VOLNAME";
40  m_radialDiv = "";
41  m_phiStep = "";
42  m_volId = "FRAMENUM";
43  m_shiftFlag = "SHIFT";
44  }
45 
46  void
48  m_rmin = "RMIN";
49  m_rmax = "RMAX";
50  m_rmin2 = "RMIN2";
51  m_rmax2 = "RMAX2";
52  m_zmin = "ZMIN";
53  m_zmax = "ZMAX";
54  m_zsymm = "ZSYMM";
55  m_materialName = "MATERIAL";
56  m_repeat = "NREPEAT";
57  m_phiStart = "PHISTART";
58  m_phiDelta = "PHIDELTA";
59  m_width = "";
60  m_shapeType = "";
61  m_volName = "NAME";
62  m_radialDiv = "RADIAL";
63  m_phiStep = "PHISTEP";
64  m_volId = "";
65  m_shiftFlag = "SHIFT";
66  }
67 
68  void
70  m_rmin = "RMIN";
71  m_rmax = "RMAX";
72  m_rmin2 = "";
73  m_rmax2 = "";
74  m_zmin = "ZMIN";
75  m_zmax = "ZMAX";
76  m_zsymm = "ZSYMM";
77  m_materialName = "MATERIAL";
78  m_repeat = "";
79  m_phiStart = "";
80  m_phiDelta = "";
81  m_width = "";
82  m_shapeType = "";
83  m_volName = "NAME";
84  m_radialDiv = "";
85  m_phiStep = "";
86  m_volId = "";
87  m_shiftFlag = "SHIFT";
88  }
89 
91  InDetDD::AthenaComps* athenaComps)
92  : m_table(std::move(table)),
93  m_schema(schema),
94  m_athenaComps(athenaComps)
95  {}
96 
97  const IGeometryDBSvc*
99  return std::as_const(*m_athenaComps).geomDB();
100  }
101 
102  double
105  }
106 
107  double
110  }
111 
112  double
115  }
116 
117  double
120  }
121 
122  double
125  }
126 
127  double
130  }
131 
132  double
135  }
136 
137  double
139  if (m_schema.has_width()) {
141  }
142  return 0;
143  }
144 
145  double
148  }
149 
150  double
152  if (m_schema.has_phiStep()) {
154  }
155  return 0;
156  }
157 
158  bool
160  return db()->getInt(m_table, m_schema.zsymm(), index);
161  }
162 
163  int
165  return db()->getInt(m_table, m_schema.repeat(), index);
166  }
167 
168  int
170  if (m_schema.has_radial()) {
171  return db()->getInt(m_table, m_schema.radialDiv(), index);
172  } else {
173  return 0;
174  }
175  }
176 
177  std::string
179  if (m_schema.has_shapeType()) {
180  if (db()->testField(m_table, m_schema.shapeType(), index)) {
181  return db()->getString(m_table, m_schema.shapeType(), index);
182  } else {
183  return "TUBE";
184  }
185  }
186  return "UNKNOWN";
187  }
188 
189  std::string
191  if (db()->testField(m_table, m_schema.volName(), index)) {
192  return db()->getString(m_table, m_schema.volName(), index);
193  }
194  return "";
195  }
196 
197  std::string
200  }
201 
202  unsigned int
204  return db()->getTableSize(m_table);
205  }
206 
207  int
209  if (m_schema.has_volId()) {
210  return db()->getInt(m_table, m_schema.volId(), index);
211  }
212  return 0;
213  }
214 
215  int
217  if (m_schema.has_shiftFlag()) {
218  if (db()->testField(m_table, m_schema.shiftFlag(), index)) return db()->getInt(m_table,
220  }
221  return 0;
222  }
223 
224  std::vector<double>
226  std::vector<double> layerShift;
227 
229  const IGeoDbTagSvc* geoDbTag = m_athenaComps->geoDbTagSvc();
230 
231  DecodeVersionKey versionKey(geoDbTag, "Pixel");
232  const std::string& detectorKey = versionKey.tag();
233  const std::string& detectorNode = versionKey.node();
234 
235  IRDBRecordset_ptr PixelBarrelGeneral = rdbSvc->getRecordsetPtr("PixelBarrelGeneral", detectorKey, detectorNode);
236  IRDBRecordset_ptr PixelLayer = rdbSvc->getRecordsetPtr("PixelLayer", detectorKey, detectorNode);
237 
238  int numLayers = db()->getInt(PixelBarrelGeneral, "NLAYER");
239  layerShift.reserve(numLayers);
240  for (int iLayer = 0; iLayer < numLayers; iLayer++) {
241  double shift = 0;
242  if (db()->testField(PixelLayer, "GBLSHIFT", iLayer)) shift = db()->getDouble(PixelLayer, "GBLSHIFT", iLayer);
243  layerShift.push_back(shift);
244  }
245 
246  return layerShift;
247  }
248 
251  InDetDD::AthenaComps* athenaComps)
252  : m_label(label) {
253  m_mgr = new ServiceVolumeMakerMgr(std::move(table), schema, athenaComps);
255  // std::cout<<"LAYER SHIFT "<<m_layerShift[0]<<" "<<m_layerShift[1]<<" "<<m_layerShift[2]<<"
256  // "<<m_layerShift[3]<<std::endl;
257  }
258 
260  for (unsigned int i = 0; i < m_services.size(); i++) {
261  delete m_services[i];
262  }
263  delete m_mgr;
264  }
265 
266  const std::vector<const ServiceVolume*>&
268  for (unsigned int ii = 0; ii < numElements(); ++ii) {
269  m_services.push_back(make(ii));
270  }
271  return m_services;
272  }
273 
274  unsigned int
276  return m_mgr->numElements();
277  }
278 
281  //
282  // Retrieve/calculate the parameters for the volume.
283  //
284  ServiceVolume* param = new ServiceVolume;
285 
286  param->setMaterial(m_mgr->materialName(ii));
287  param->setRmin(m_mgr->rmin(ii));
288  param->setRmax(m_mgr->rmax(ii));
289  param->setZmin(m_mgr->zmin(ii));
290  param->setZmax(m_mgr->zmax(ii));
291  param->setZsymm(m_mgr->zsymm(ii));
292  param->setVolName(m_mgr->volName(ii));
293 
294  double zShift = 0.; // the famous IBL Z shift
295  if (m_mgr->shiftFlag(ii) > 0) zShift = m_layerShift[m_mgr->shiftFlag(ii) - 100];
296  param->setZShift(zShift);
297 
298  int volId = m_mgr->volId(ii);
299  if (volId == 0) volId = ii + 1;
300 
301  bool needsRotation = false;
302 
303  // For TUBE there is no need to read the rest
304  std::string shapeType = m_mgr->shapeType(ii);
305  if (!m_mgr->schema().simple() && !shapeType.empty() && shapeType != "TUBE") {
306  double rmin2 = m_mgr->rmin2(ii);
307  double rmax2 = m_mgr->rmax2(ii);
308 
309  if (rmin2 <= 0) rmin2 = param->rmin();
310  if (rmax2 <= 0) rmax2 = param->rmax();
311 
312  int radialDiv = m_mgr->radialDiv(ii);
313 
314  double phiDelta = m_mgr->phiDelta(ii);
315 
316  bool fullPhiSector = false;
317  if (phiDelta == 0 || phiDelta >= 359.9 * Gaudi::Units::degree) {
318  phiDelta = 360 * Gaudi::Units::degree;
319  fullPhiSector = true;
320  }
321  //else {
322  //phiDelta -= 2*phiepsilon;
323  //phiStart += phiepsilon;
324  // }
325 
326  if (shapeType == "UNKNOWN") {
327  if (radialDiv > 0) {
328  shapeType = "RADIAL";
329  } else if (param->rmin() == rmin2 && param->rmax() == rmax2) {
330  if (fullPhiSector) {
331  shapeType = "TUBE";
332  } else {
333  shapeType = "TUBS";
334  }
335  } else {
336  shapeType = "CONS";
337  }
338  }
339 
340 
341  int repeat = m_mgr->repeat(ii);
342  if (repeat == 0) repeat = 1;
343 
344  double phiStart = m_mgr->phiStart(ii);
345  double phiWidth = phiDelta;
346 
347  if (shapeType == "CONS" || shapeType == "TUBS") {
348  const double phiepsilon = 0.001 * Gaudi::Units::degree;
349  phiWidth -= 2 * phiepsilon;
350  phiStart += phiepsilon;
351  }
352 
353  // Can be in degree or mm. Usually it is deg expect for BOX, TRAP and ROD shape
354  // Geometry manager makes no assumptions about units. So we must interpret here.
355  if (shapeType == "BOX" || shapeType == "ROD" || shapeType == "ROD2" || shapeType == "TRAP") {
356  phiWidth = m_mgr->width(ii); // in mm
357  }
358 
359  if (shapeType == "PGON" || shapeType == "PGON2" ||
360  shapeType == "CONE" || shapeType == "CONS" ||
361  shapeType == "PGON3" || shapeType == "PGON4") {
362  if ((rmin2 != param->rmin()) || (rmax2 != param->rmax())) {
363  needsRotation = true;
364  }
365  }
366 
367  int sides = 0;
368  int nCopies = 1;
369  if (shapeType == "PGON" || shapeType == "PGON2" ||
370  shapeType == "PGON3" || shapeType == "PGON4") {
371  sides = repeat;
372  } else {
373  nCopies = repeat;
374  }
375 
376  // Force nCopies to 1 for TUBE and CONE
377  if (shapeType.empty() || shapeType == "TUBE" || shapeType == "CONE") {
378  nCopies = 1;
379  }
380 
381  param->setShapeType(shapeType);
382  param->setRmin2(rmin2);
383  param->setRmax2(rmax2);
384  param->setPhiLoc(phiStart);
385  param->setPhiWidth(phiWidth);
386  param->setSides(sides);
387  param->setNCopies(nCopies);
388  //param->setRadialDiv(radialDiv);
389  //param->setPhiStep(phiStep);
390  }
391 
392  param->setNeedsRotation(needsRotation);
393 
394 
395  //
396  // If zin is 0... (within 10^-5) this is a volume symmetric around
397  // the origin
398  //
399  if (std::abs(param->zmin()) < 0.000001) {
400  param->setZmin(-param->zmax());
401  param->setZsymm(false);
402  }
403 
404  param->setLabel(m_label, volId);
405 
406  return param;
407  }
408 } // end namespace
InDetDD::ServiceVolume::zmax
double zmax() const
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:67
InDetDD::ServiceVolume::setRmin2
void setRmin2(double rmin2)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:31
InDetDD::ServiceVolumeMakerMgr
Definition: ServiceVolumeMaker.h:99
InDetDD::ServiceVolumeMakerMgr::m_schema
ServiceVolumeSchema m_schema
Definition: ServiceVolumeMaker.h:132
InDetDD::ServiceVolumeSchema::rmax2
const std::string & rmax2() const
Definition: ServiceVolumeMaker.h:31
InDetDD::ServiceVolumeSchema::phiStep
const std::string & phiStep() const
Definition: ServiceVolumeMaker.h:43
IGeometryDBSvc.h
InDetDD::ServiceVolume::setZmax
void setZmax(double zmax)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:34
InDetDD::ServiceVolumeMakerMgr::shapeType
std::string shapeType(int index) const
Definition: ServiceVolumeMaker.cxx:178
IRDBAccessSvc::getRecordsetPtr
virtual IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
InDetDD::ServiceVolumeMakerMgr::m_table
IRDBRecordset_ptr m_table
Definition: ServiceVolumeMaker.h:130
InDetDD::ServiceVolumeSchema::has_shapeType
bool has_shapeType() const
Definition: ServiceVolumeMaker.h:71
InDetDD::ServiceVolumeSchema::m_zmax
std::string m_zmax
Definition: ServiceVolumeMaker.h:82
InDetDD::ServiceVolumeMakerMgr::zsymm
bool zsymm(int index) const
Definition: ServiceVolumeMaker.cxx:159
InDetDD::ServiceVolumeMaker::ServiceVolumeMaker
ServiceVolumeMaker(const std::string &label, IRDBRecordset_ptr table, const ServiceVolumeSchema &schema, InDetDD::AthenaComps *)
Definition: ServiceVolumeMaker.cxx:249
InDetDD::ServiceVolumeSchema::m_rmax2
std::string m_rmax2
Definition: ServiceVolumeMaker.h:80
InDetDD::ServiceVolume::setZShift
void setZShift(double shift)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:60
InDetDD::ServiceVolumeMakerMgr::width
double width(int index) const
Definition: ServiceVolumeMaker.cxx:138
RPDUtils::sides
constexpr std::initializer_list< unsigned int > sides
Definition: RPDUtils.h:17
InDetDD::ServiceVolume::setLabel
void setLabel(const std::string &name, int volId)
Definition: InDetGeoModelUtils/src/ServiceVolume.cxx:171
InDetDD::ServiceVolume::setMaterial
void setMaterial(const std::string &mat)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:37
InDetDD::ServiceVolumeMaker::m_services
std::vector< const ServiceVolume * > m_services
Definition: ServiceVolumeMaker.h:152
InDetDD::ServiceVolume::rmax
double rmax() const
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:63
index
Definition: index.py:1
PlotCalibFromCool.label
label
Definition: PlotCalibFromCool.py:78
InDetDD::ServiceVolumeMaker::m_label
std::string m_label
Definition: ServiceVolumeMaker.h:150
InDetDD::ServiceVolumeMaker::makeAll
const std::vector< const ServiceVolume * > & makeAll()
Definition: ServiceVolumeMaker.cxx:267
InDetDD::ServiceVolume::setPhiWidth
void setPhiWidth(double phiWidth)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:42
InDetDD::ServiceVolumeMakerMgr::repeat
int repeat(int index) const
Definition: ServiceVolumeMaker.cxx:164
InDetDD::ServiceVolumeSchema::setDefaultSchema
void setDefaultSchema()
Definition: ServiceVolumeMaker.cxx:47
InDetDD::AthenaComps
Class to hold various Athena components.
Definition: InDetDDAthenaComps.h:21
InDetDD::ServiceVolume::setZsymm
void setZsymm(bool zsymm)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:36
InDetDD::ServiceVolume::setPhiLoc
void setPhiLoc(double phiLoc)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:41
deg
#define deg
Definition: SbPolyhedron.cxx:17
InDetDD::ServiceVolumeMaker::numElements
unsigned int numElements() const
Definition: ServiceVolumeMaker.cxx:275
InDetDD::ServiceVolumeSchema::m_shapeType
std::string m_shapeType
Definition: ServiceVolumeMaker.h:84
DecodeVersionKey::node
const std::string & node() const
Return the version node.
Definition: DecodeVersionKey.cxx:97
InDetDD::ServiceVolume::setSides
void setSides(int sides)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:44
IGeometryDBSvc::getTableSize
virtual unsigned int getTableSize(IRDBRecordset_ptr recordSet) const =0
ServiceVolumeMaker.h
InDetDD::ServiceVolumeMakerMgr::volId
int volId(int index) const
Definition: ServiceVolumeMaker.cxx:208
InDetDD::ServiceVolumeSchema::m_rmin
std::string m_rmin
Definition: ServiceVolumeMaker.h:77
InDetDD::ServiceVolumeSchema::zsymm
const std::string & zsymm() const
Definition: ServiceVolumeMaker.h:34
InDetDD::ServiceVolumeSchema::has_phiStep
bool has_phiStep() const
Definition: ServiceVolumeMaker.h:74
InDetDD::ServiceVolumeMakerMgr::zmin
double zmin(int index) const
Definition: ServiceVolumeMaker.cxx:123
InDetDD::ServiceVolumeMaker::m_layerShift
std::vector< double > m_layerShift
Definition: ServiceVolumeMaker.h:153
InDetDD::ServiceVolumeSchema::setPixelSchema
void setPixelSchema()
Definition: ServiceVolumeMaker.cxx:25
CheckTagAssociation.schema
schema
Definition: CheckTagAssociation.py:22
InDetDD::ServiceVolumeSchema::rmin2
const std::string & rmin2() const
Definition: ServiceVolumeMaker.h:30
InDetDD::ServiceVolumeSchema::zmax
const std::string & zmax() const
Definition: ServiceVolumeMaker.h:33
InDetDD::ServiceVolumeMaker::make
ServiceVolume * make(int index)
Definition: ServiceVolumeMaker.cxx:280
InDetDD::ServiceVolumeMakerMgr::phiStart
double phiStart(int index) const
Definition: ServiceVolumeMaker.cxx:146
InDetDD::ServiceVolumeMakerMgr::rmax2
double rmax2(int index) const
Definition: ServiceVolumeMaker.cxx:118
InDetDD::ServiceVolumeMakerMgr::ServiceVolumeMakerMgr
ServiceVolumeMakerMgr(IRDBRecordset_ptr table, const ServiceVolumeSchema &schema, InDetDD::AthenaComps *athenaComps)
Definition: ServiceVolumeMaker.cxx:90
InDetDD::ServiceVolumeSchema::m_rmin2
std::string m_rmin2
Definition: ServiceVolumeMaker.h:79
InDetDD::ServiceVolumeSchema::m_rmax
std::string m_rmax
Definition: ServiceVolumeMaker.h:78
lumiFormat.i
int i
Definition: lumiFormat.py:85
InDetDD::ServiceVolumeSchema::has_radial
bool has_radial() const
Definition: ServiceVolumeMaker.h:73
InDetDD::ServiceVolumeMakerMgr::zmax
double zmax(int index) const
Definition: ServiceVolumeMaker.cxx:128
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:42
InDetDD::ServiceVolumeSchema::has_shiftFlag
bool has_shiftFlag() const
Definition: ServiceVolumeMaker.h:70
InDetDD::ServiceVolumeSchema::simple
bool simple() const
Definition: ServiceVolumeMaker.h:68
InDetDD::ServiceVolume::setRmin
void setRmin(double rmin)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:29
InDetDD::ServiceVolumeSchema::m_materialName
std::string m_materialName
Definition: ServiceVolumeMaker.h:85
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
InDetDD::ServiceVolumeSchema::m_radialDiv
std::string m_radialDiv
Definition: ServiceVolumeMaker.h:93
InDetDD::ServiceVolumeMakerMgr::m_athenaComps
InDetDD::AthenaComps * m_athenaComps
Definition: ServiceVolumeMaker.h:133
DecodeVersionKey::tag
const std::string & tag() const
Return version tag.
Definition: DecodeVersionKey.cxx:91
IGeometryDBSvc
Definition: IGeometryDBSvc.h:21
InDetDD::ServiceVolumeSchema::has_width
bool has_width() const
Definition: ServiceVolumeMaker.h:72
InDetDDAthenaComps.h
InDetDD::ServiceVolumeSchema::m_repeat
std::string m_repeat
Definition: ServiceVolumeMaker.h:89
InDetDD::ServiceVolumeSchema::width
const std::string & width() const
Definition: ServiceVolumeMaker.h:39
IGeoDbTagSvc
Definition: IGeoDbTagSvc.h:26
InDetDD::ServiceVolumeMakerMgr::materialName
std::string materialName(int index) const
Definition: ServiceVolumeMaker.cxx:198
InDetDD::ServiceVolumeSchema::m_volId
std::string m_volId
Definition: ServiceVolumeMaker.h:94
InDetDD::ServiceVolume::setRmax2
void setRmax2(double rmax2)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:32
InDetDD::AthenaComps::geoDbTagSvc
const IGeoDbTagSvc * geoDbTagSvc() const
Definition: InDetDDAthenaComps.h:58
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
InDetDD::ServiceVolume::setZmin
void setZmin(double zmin)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:33
IGeometryDBSvc::getDouble
virtual double getDouble(IRDBRecordset_ptr recordSet, const std::string &name, int index=0) const =0
The following methods will first look in the text file if provided and then look in the database.
InDetDD::ServiceVolumeMakerMgr::volName
std::string volName(int index) const
Definition: ServiceVolumeMaker.cxx:190
InDetDD::ServiceVolumeSchema::setSimpleSchema
void setSimpleSchema()
Definition: ServiceVolumeMaker.cxx:69
InDetDD::ServiceVolume::setNeedsRotation
void setNeedsRotation(bool flag)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:43
InDetDD::ServiceVolumeSchema::m_zsymm
std::string m_zsymm
Definition: ServiceVolumeMaker.h:83
InDetDD::ServiceVolumeSchema::has_volId
bool has_volId() const
Definition: ServiceVolumeMaker.h:69
python.ext.table_printer.table
list table
Definition: table_printer.py:81
InDetDD::ServiceVolumeSchema::volId
const std::string & volId() const
Definition: ServiceVolumeMaker.h:45
InDetDD::ServiceVolumeMakerMgr::shiftFlag
int shiftFlag(int index) const
Definition: ServiceVolumeMaker.cxx:216
HI::TowerBins::numLayers
constexpr unsigned int numLayers()
Definition: HIEventDefs.h:23
InDetDD::ServiceVolumeMakerMgr::readLayerShift
std::vector< double > readLayerShift()
Definition: ServiceVolumeMaker.cxx:225
InDetDD::ServiceVolumeMakerMgr::numElements
unsigned int numElements() const
Definition: ServiceVolumeMaker.cxx:203
InDetDD::ServiceVolumeMakerMgr::db
const IGeometryDBSvc * db() const
Definition: ServiceVolumeMaker.cxx:98
InDetDD::ServiceVolumeMaker::~ServiceVolumeMaker
~ServiceVolumeMaker()
Definition: ServiceVolumeMaker.cxx:259
DecodeVersionKey.h
InDetDD::ServiceVolumeMakerMgr::rmin2
double rmin2(int index) const
Definition: ServiceVolumeMaker.cxx:113
InDetDD::ServiceVolume::setRmax
void setRmax(double rmax)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:30
InDetDD::ServiceVolume::rmin
double rmin() const
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:62
InDetDD::ServiceVolumeSchema::m_shiftFlag
std::string m_shiftFlag
Definition: ServiceVolumeMaker.h:95
InDetDD::ServiceVolumeSchema::repeat
const std::string & repeat() const
Definition: ServiceVolumeMaker.h:40
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
InDetDD::ServiceVolumeSchema::zmin
const std::string & zmin() const
Definition: ServiceVolumeMaker.h:32
InDetDD::ServiceVolumeSchema::m_volName
std::string m_volName
Definition: ServiceVolumeMaker.h:86
InDetDD::ServiceVolumeSchema::rmax
const std::string & rmax() const
Definition: ServiceVolumeMaker.h:29
InDetDD::ServiceVolumeSchema::shapeType
const std::string & shapeType() const
Definition: ServiceVolumeMaker.h:35
InDetDD::ServiceVolumeSchema::ServiceVolumeSchema
ServiceVolumeSchema()
Definition: ServiceVolumeMaker.cxx:20
InDetDD::ServiceVolumeSchema::materialName
const std::string & materialName() const
Definition: ServiceVolumeMaker.h:36
InDetDD::ServiceVolumeMakerMgr::phiStep
double phiStep(int index) const
Definition: ServiceVolumeMaker.cxx:151
InDetDD::ServiceVolumeSchema::volName
const std::string & volName() const
Definition: ServiceVolumeMaker.h:37
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::ServiceVolumeSchema::rmin
const std::string & rmin() const
Definition: ServiceVolumeMaker.h:28
InDetDD::ServiceVolume::setVolName
void setVolName(const std::string &name)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:39
InDetDD::ServiceVolume::setShapeType
void setShapeType(const std::string &shapeType)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:40
InDetDD::ServiceVolumeSchema::m_phiDelta
std::string m_phiDelta
Definition: ServiceVolumeMaker.h:91
IGeometryDBSvc::getInt
virtual int getInt(IRDBRecordset_ptr recordSet, const std::string &name, int index=0) const =0
xAOD::phiWidth
phiWidth
Definition: RingSetConf_v1.cxx:612
InDetDD::ServiceVolume::setNCopies
void setNCopies(int num)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:45
InDetDD::ServiceVolumeMakerMgr::rmax
double rmax(int index) const
Definition: ServiceVolumeMaker.cxx:108
InDetDD::ServiceVolumeSchema::m_phiStep
std::string m_phiStep
Definition: ServiceVolumeMaker.h:92
InDetDD::ServiceVolumeMakerMgr::phiDelta
double phiDelta(int index) const
Definition: ServiceVolumeMaker.cxx:133
InDetDD::ServiceVolumeSchema::shiftFlag
const std::string & shiftFlag() const
Definition: ServiceVolumeMaker.h:46
ServiceVolume.h
InDetDD::ServiceVolumeSchema
Definition: ServiceVolumeMaker.h:20
InDetDD::ServiceVolume
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:24
InDetDD::ServiceVolumeMakerMgr::schema
const ServiceVolumeSchema & schema() const
Definition: ServiceVolumeMaker.h:127
IGeometryDBSvc::getString
virtual std::string getString(IRDBRecordset_ptr recordSet, const std::string &name, int index=0) const =0
InDetDD::ServiceVolumeSchema::m_zmin
std::string m_zmin
Definition: ServiceVolumeMaker.h:81
InDetDD::ServiceVolumeSchema::radialDiv
const std::string & radialDiv() const
Definition: ServiceVolumeMaker.h:44
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
InDetDD::ServiceVolumeSchema::m_width
std::string m_width
Definition: ServiceVolumeMaker.h:88
InDetDD::AthenaComps::rdbAccessSvc
IRDBAccessSvc * rdbAccessSvc()
Definition: InDetDDAthenaComps.h:74
InDetDD::ServiceVolumeMakerMgr::radialDiv
int radialDiv(int index) const
Definition: ServiceVolumeMaker.cxx:169
InDetDD::ServiceVolumeMaker::m_mgr
ServiceVolumeMakerMgr * m_mgr
Definition: ServiceVolumeMaker.h:151
python.SystemOfUnits.degree
tuple degree
Definition: SystemOfUnits.py:106
InDetDD::ServiceVolumeMakerMgr::rmin
double rmin(int index) const
Definition: ServiceVolumeMaker.cxx:103
InDetDD::ServiceVolumeSchema::phiDelta
const std::string & phiDelta() const
Definition: ServiceVolumeMaker.h:42
InDetDD::ServiceVolume::zmin
double zmin() const
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:66
InDetDD::ServiceVolumeSchema::phiStart
const std::string & phiStart() const
Definition: ServiceVolumeMaker.h:41
InDetDD::ServiceVolumeSchema::m_phiStart
std::string m_phiStart
Definition: ServiceVolumeMaker.h:90