ATLAS Offline Software
GeoPixelServices.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //
6 // This class builds the Services as Cylinders
7 //
8 // The services are grouped in 4 groups (as in G3)
9 // I keep this grouping as it natural in the database.
10 // They are Barrel-Inside tracking volume
11 // Barrel-Outside tracking volume
12 // Endcap-Inside tracking volume
13 // Edncap-Outside tracking volume
14 //
15 // The elements for each group are defined in initialize,
16 // with Barrel/endcap coming from the geometry manager and inside outside,
17 // from the mother volume name.
18 // This class builds the n-th service element, with n defined in SetCylinder
19 //
20 //
21 //
22 // The information on which layer to build is retrieved by the Geometry Manager
23 //
24 // Contained by: passed by argument
25 //
26 // Contains: nothing
27 //
28 // The services support several different shapes. The meaning of the parameters
29 // depends on the particular shape:
30 //
31 //
32 // TUBE or empty
33 // Ignored: RIN2,ROUT2,PHI,WIDTH,REPEAT
34 // TUBS
35 // Ignored: RIN2,ROUT2
36 // PHI: phi start location of tube sector
37 // WIDTH (Gaudi::Units::deg): phi width of sector
38 // REPEAT: Repeat the tube sector this many times in phi with equal distance between them.
39 // CONS, CONE
40 // WIDTH,REPEAT ignored if CONE
41 // RIN2,ROUT2: rmin, rmx at zmax. Same as RIN, ROUT if <=0.
42 // PHI, WIDTH, REPEAT same as TUBS
43 // PGON
44 // Ignored: WIDTH
45 // RIN,ROUT,RIN2,ROUT2 defined at corner of polygon.
46 // PHI: phi start location of a corner
47 // REPEAT: Sides of polygon
48 // PGON2
49 // Ignored: WIDTH
50 // RIN,ROUT,RIN2,ROUT2 defined at side of polygon.
51 // PHI: phi start location of center of side.
52 // REPEAT: Sides of polygon
53 // PGON3 (pgon at outer edge, circular inner edge)
54 // Ignored: WIDTH
55 // RIN,RIN2 radius of inner edge (tube or cone)
56 // ROUT,ROUT2 defined at corner of polygon.
57 // PHI: phi start location of a corner
58 // REPEAT: Sides of polygon
59 // PGON31 (pgon at inner edge, circular outer edge)
60 // Ignored: WIDTH
61 // RIN,RIN2 radius of inner edge (tube or cone)
62 // ROUT,ROUT2 defined at corner of polygon.
63 // PHI: phi start location of a corner
64 // REPEAT: Sides of polygon
65 // PGON2 (pgon at outer edge, circular inner edge)
66 // Ignored: WIDTH
67 // RIN,RIN2 radius of inner edge (tube or cone)
68 // ROUTROUT2 defined at side of polygon.
69 // PHI: phi start location of center of side.
70 // REPEAT: Sides of polygon
71 // ROD
72 // Ignored: ROUT, RIN2, ROUT2
73 // RIN: Radial position of center of tube
74 // PHI: phi position of center
75 // WIDTH (Gaudi::Units::mm): diameter
76 // REPEAT: Repeat this many times in phi with equal distance between them.
77 // ROD2
78 // Ignored: ROUT, RIN2, ROUT2
79 // RIN: Radial position of center of tube
80 // PHI: phi position of center
81 // WIDTH (Gaudi::Units::mm): diameter
82 // REPEAT: Repeat this many times in phi with equal distance between them.
83 // BOX
84 // Ignored: RIN2, ROUT2
85 // ROUT-RIN = thickness of box (radially)
86 // (RIN+ROUT)/2 = radial poistion of center of box
87 // PHI: phi position of center
88 // WIDTH (Gaudi::Units::mm) = width of box
89 // REPEAT: Repeat this many times in phi with equal distance between them.
90 // TRAP
91 // Ignored: RIN2, ROUT2
92 // ROUT-RIN = thickness of trapezoid (radially)
93 // (RIN+ROUT)/2 = radial poistion of center of trapzoid
94 // PHI: phi position of center
95 // WIDTH (Gaudi::Units::mm) = width of trapezoid at center
96 // REPEAT: Repeat this many times in phi with equal distance between them.
97 //
98 // **IMPORTANT NOTE** WIDTH can be in degrees or Gaudi::Units::mm. See DBPixelGeoManager
99 
100 
101 #include "GeoPixelServices.h"
107 #include "GaudiKernel/PhysicalConstants.h"
108 
109 #include <algorithm>
110 #include <iomanip>
111 #include <sstream>
112 #include <utility>
113 
116  GeoModelIO::ReadGeoModel* sqliteReader,
117  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
118  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX,
119  InDetDD::Zone * pixZone)
120  : GeoVPixelFactory(ddmgr, mgr, sqliteReader, std::move(mapFPV), std::move(mapAX)),
121  m_pixServBuilder(nullptr),
122  m_servMatBuilder(nullptr),
123  m_layerShift(0)
124 {
125 
126  // Get dimensions of barrel and endcap
127  double barrelRmin = m_gmt_mgr->PixelBarrelRMin();
128  double barrelRmax = m_gmt_mgr->PixelBarrelRMax();
129  double barrelZmin = -m_gmt_mgr->PixelBarrelHalfLength();
130  double barrelZmax = m_gmt_mgr->PixelBarrelHalfLength();
131  double endcapRmin = m_gmt_mgr->PixelEndcapRMin();
132  double endcapRmax = m_gmt_mgr->PixelEndcapRMax();
133  double endcapZmin = m_gmt_mgr->PixelEndcapZMin();
134  double endcapZmax = m_gmt_mgr->PixelEndcapZMax();
135 
136  double pixelRmin, pixelRmax, pixelZmax;
137  if (!pixZone) {
138  pixelRmin = m_gmt_mgr->PixelRMin();
139  pixelRmax = m_gmt_mgr->PixelRMax();
140  pixelZmax = m_gmt_mgr->PixelHalfLength();
141  pixZone = new InDetDD::TubeZone("Pixel",-pixelZmax,pixelZmax,pixelRmin,pixelRmax);
142  }
143  else {
145  pixelRmin = m_gmt_mgr->PixelRMin();
146  pixelRmax = m_gmt_mgr->PixelRMax();
147  pixelZmax = m_gmt_mgr->PixelHalfLength();
148  }
149  else {
150  pixelZmax = m_gmt_mgr->PixelEnvelopeZ(0);
151  pixelRmin = m_gmt_mgr->PixelEnvelopeRMin(0);
152  pixelRmax = m_gmt_mgr->PixelEnvelopeRMax(0);
153  }
154  }
155 
156  InDetDD::UnboundedZone topZone("Mother");
157  pixZone->add(new InDetDD::TubeZone("C",-endcapZmax,-endcapZmin,endcapRmin,endcapRmax, true));
158  pixZone->add(new InDetDD::TubeZone("B",barrelZmin,barrelZmax,barrelRmin,barrelRmax));
159  pixZone->add(new InDetDD::TubeZone("A",endcapZmin,endcapZmax,endcapRmin,endcapRmax));
160  topZone.add(pixZone);
161 
162  // Collect the layer shifts / IBL 2mm shift
163  m_layerShift.clear();
164  for(int ii = 0; ii < m_gmt_mgr->PixelBarrelNLayer(); ii++){
165  m_gmt_mgr->SetCurrentLD(ii);
167  }
168 
169 
170  // We process all tables.
171  bool barrelPresent = m_gmt_mgr->partPresent("Barrel");
172  bool endcapAPresent = m_gmt_mgr->partPresent("EndcapA");
173  bool endcapCPresent = m_gmt_mgr->partPresent("EndcapC");
174 
175  if (barrelPresent) initialize("barrel");
176  if (endcapAPresent || endcapCPresent) initialize("endcap");
177  initialize("simple");
178  initialize("envelope");
179 
180  // all services are added at a time
184  const std::vector<const InDetDD::ServiceVolume *> & services = m_gmt_mgr->athenaComps()->serviceBuilderTool()->getServices();
187  }
188 }
189 
191 {
192  // delete contents of m_multiParam
193  for (unsigned int i = 0; i < m_services.size(); ++i) {
194  delete m_services[i];
195  }
196  delete m_pixServBuilder;
197  delete m_servMatBuilder;
198 }
199 
200 
201 void GeoPixelServices::initialize(const std::string & a)
202 {
203  // For "simple" services use ServiceVolumeMaker to read in the table. The barrel and endcap can also be read in
204  // with ServiceVolumeMaker but there is still use of parameters specified by radiation length which is not handled by ServiceVolumeMaker
205  // so we use the old version.
206 
207  if (a!="simple") {
208  return initializeOld(a);
209  }
210 
212  std::string label;
213  if (a=="simple") {
214  schema.setSimpleSchema();
215  label = "Svc";
216  } else if (a=="barrel") { // Not used yet. initializeOld() is used instead
217  schema.setPixelSchema();
218  label = "Brl";
219  } else if (a=="endcap") { // Not used yet. initializeOld() is used instead
220  schema.setPixelSchema();
221  label = "EC";
222  } else {
223  m_gmt_mgr->msg(MSG::ERROR) << "Unrecognized service table type: " << a << endmsg;
224  return;
225  }
226 
228 
230  for (unsigned int i = 0; i < volMaker.numElements(); ++i) {
231  m_services.push_back(volMaker.make(i));
232  }
233 }
234 
235 
236 // See comment in initialize()
237 void GeoPixelServices::initializeOld(const std::string & a)
238 {
239  //
240  // Loop over the service elements:
241  //
242  int numServices = m_gmt_mgr->PixelServiceElements(a);
243  for(int ii = 0; ii < numServices; ii++) {
244 
245 
246  // Will return <0 if the element doesn't belong to current inside/outside zone
247  // This check is removed as it now checks accroding to the dimensions.
248  //if (m_gmt_mgr->PixelServiceFrameNum(a, ii) < 0) continue;
249  //
250  //
251  // Retrieve/calculate the parameters for the volume.
252  //
255  param.setRmin(m_gmt_mgr->PixelServiceRMin(a, ii));
256  param.setRmax(m_gmt_mgr->PixelServiceRMax(a, ii));
257  param.setZmin(m_gmt_mgr->PixelServiceZMin(a, ii));
258  param.setZmax(m_gmt_mgr->PixelServiceZMax(a, ii));
259  param.setZsymm(m_gmt_mgr->PixelServiceZsymm(a, ii));
260  param.setVolName(m_gmt_mgr->PixelServiceName(a, ii));
261 
262  double zShift=0.; // the famous IBL Z shift
263  int iShiftIndex = m_gmt_mgr->PixelServiceShift(a, ii);
264  // FIXME: The magic number 100 here should be explained...
265  // cppcheck-suppress negativeContainerIndex
266  if(iShiftIndex>0) zShift=m_layerShift[iShiftIndex-100];
267  param.setZShift(zShift);
268 
269  // Service envelopes
270  int envNum=m_gmt_mgr->PixelServiceEnvelopeNum(a, ii);
271  param.setEnvelopeNum(envNum);
272  int envParent=m_gmt_mgr->PixelServiceParentEnvelopeNum(a, ii);
273  param.setParentEnvelope(envParent);
274  int volId = m_gmt_mgr->PixelServiceFrameNum(a, ii);
275 
276  bool needsRotation = false;
277 
278  // For TUBE there is no need to read the rest
279  std::string shapeType = m_gmt_mgr->PixelServiceShape(a, ii);
280  if (!shapeType.empty() && shapeType != "TUBE") {
281  double rmin2 = m_gmt_mgr->PixelServiceRMin2(a, ii);
282  double rmax2 = m_gmt_mgr->PixelServiceRMax2(a, ii);
283  int repeat = m_gmt_mgr->PixelServiceRepeat(a, ii);
284  double phiLoc = m_gmt_mgr->PixelServicePhiLoc(a, ii);
285  double phiWidth = m_gmt_mgr->PixelServiceWidth(a, ii);
286 
287  // Can be in degree or Gaudi::Units::mm. Usually it is Gaudi::Units::deg expect for BOX, TRAP and ROD shape
288  // Geometry manager makes no assumptions about units. So we must interpret here.
289  if (shapeType == "BOX" || shapeType == "ROD" || shapeType == "ROD2" || shapeType == "TRAP") {
291  } else {
293  }
294 
295  if (phiWidth == 0) phiWidth = 2*Gaudi::Units::pi;
296  if (rmin2 <= 0) rmin2 = param.rmin();
297  if (rmax2 <= 0) rmax2 = param.rmax();
298  if (repeat == 0) repeat = 1;
299 
300  if (shapeType == "PGON" || shapeType == "PGON2" ||
301  shapeType == "CONE" || shapeType == "CONS" ||
302  shapeType == "PGON3" || shapeType == "PGON31" || shapeType == "PGON4") {
303  if ((rmin2 != param.rmin()) || (rmax2 != param.rmax())) {
304  needsRotation = true;
305  }
306  }
307 
308  int sides = 0;
309  int nCopies = 1;
310  if (shapeType == "PGON" || shapeType == "PGON2" ||
311  shapeType == "PGON3" || shapeType == "PGON31" || shapeType == "PGON4") {
312  sides = repeat;
313  } else {
314  nCopies = repeat;
315  }
316 
317  // Force nCopies to 1 for TUBE and CONE
318  if (shapeType.empty() || shapeType == "TUBE" || shapeType == "CONE") {
319  nCopies = 1;
320  }
321 
322  param.setShapeType(shapeType);
323  param.setRmin2(rmin2);
324  param.setRmax2(rmax2);
325  param.setPhiLoc(phiLoc);
326  param.setPhiWidth(phiWidth);
327  param.setSides(sides);
328  param.setNCopies(nCopies);
329  }
330 
331  param.setNeedsRotation(needsRotation);
332 
333  //
334  // If zin is 0... (within 10^-5) this is a volume symmetric around
335  // the origin
336  //
337  if(std::abs(param.zmin()) < 0.000001) {
338  param.setZmin(-param.zmax());
339  param.setZsymm(false);
340  }
341 
342  std::string label;
343  if(envNum>0) label="Env";
344  else if (a == "barrel") label = "Brl";
345  else if (a == "endcap") label = "EC";
346  else if (a == "simple") label = "Svc";
347  param.setLabel(label, volId);
348 
349  // Fill m_multiVolumes;
350  m_services.push_back(new InDetDD::ServiceVolume(param));
351 
352  }
353 }
354 
355 // For interface
356 GeoVPhysVol* GeoPixelServices::Build()
357 {
358  return nullptr;
359 }
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
PixelGeometryManager::PixelServiceZMin
virtual double PixelServiceZMin(const std::string &, int)=0
InDetDD::ServiceVolume::setEnvelopeNum
void setEnvelopeNum(int num)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:58
PixelGeometryManager::PixelEnvelopeRMax
virtual double PixelEnvelopeRMax(int i)=0
PixelGeometryManager::PixelServiceShift
virtual int PixelServiceShift(const std::string &type, int index)=0
PixelGeometryManager::PixelLayerGlobalShift
virtual double PixelLayerGlobalShift()=0
PixelGeometryManager::PixelServiceZMax
virtual double PixelServiceZMax(const std::string &, int)=0
InDetDD::UnboundedZone
Definition: VolumeSplitterUtils.h:90
PixelGeometryManager::PixelServiceEnvelopeNum
virtual int PixelServiceEnvelopeNum(const std::string &type, int index)=0
PixelGeometryManager::PixelServiceShape
virtual std::string PixelServiceShape(const std::string &a, int _n)=0
PixelGeoModelAthenaComps::serviceBuilderTool
IInDetServMatBuilderTool * serviceBuilderTool()
Definition: PixelGeoModelAthenaComps.cxx:47
InDetDD::ServiceVolume::setZmax
void setZmax(double zmax)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:34
PixelGeometryManager::PixelEndcapZMax
virtual double PixelEndcapZMax()=0
PixelGeometryManager
Definition: PixelGeometryManager.h:28
PixelGeometryManager::PixelBarrelRMin
virtual double PixelBarrelRMin()=0
PixelGeometryManager::msg
MsgStream & msg(MSG::Level lvl) const
Definition: PixelGeometryManager.h:611
PixelGeometryManager::getPixelServiceRecordset
virtual IRDBRecordset_ptr getPixelServiceRecordset(const std::string &type)=0
InDetDD::ServiceVolume::setZShift
void setZShift(double shift)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:60
PixelGeometryManager::PixelSimpleEnvelope
virtual bool PixelSimpleEnvelope()=0
PixelGeometryManager::PixelServiceWidth
virtual double PixelServiceWidth(const std::string &a, int _n)=0
PixelGeometryManager::PixelServiceRMin
virtual double PixelServiceRMin(const std::string &, int)=0
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
PixelGeometryManager::PixelEndcapRMin
virtual double PixelEndcapRMin()=0
InDetDD::ServiceVolume::setMaterial
void setMaterial(const std::string &mat)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:37
InDetDD::ServiceVolume::rmax
double rmax() const
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:63
InDetDD::Zone::add
void add(const Zone *)
Definition: VolumeSplitterUtils.cxx:124
PlotCalibFromCool.label
label
Definition: PlotCalibFromCool.py:78
InDetDD::Zone
Definition: VolumeSplitterUtils.h:71
InDetDD::ServiceVolume::setPhiWidth
void setPhiWidth(double phiWidth)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:42
InDetDD::VolumeBuilder::setMaterialManager
void setMaterialManager(InDetMaterialManager *matManager)
Definition: InnerDetector/InDetDetDescr/InDetGeoModelUtils/InDetGeoModelUtils/VolumeBuilder.h:34
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
GeoPixelServices::initialize
void initialize(const std::string &)
Definition: GeoPixelServices.cxx:201
InDetDD::ServiceVolumeMaker::numElements
unsigned int numElements() const
Definition: ServiceVolumeMaker.cxx:275
PixelGeometryManager::PixelServiceParentEnvelopeNum
virtual int PixelServiceParentEnvelopeNum(const std::string &type, int index)=0
PixelGeometryManager::PixelServiceFrameNum
virtual int PixelServiceFrameNum(const std::string &, int)=0
PixelGeometryManager::PixelBarrelRMax
virtual double PixelBarrelRMax()=0
InDetDD::ServiceVolume::setSides
void setSides(int sides)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:44
python.PyAthenaComps.services
services
Definition: PyAthenaComps.py:37
InDetDD::VolumeBuilder
Definition: InnerDetector/InDetDetDescr/InDetGeoModelUtils/InDetGeoModelUtils/VolumeBuilder.h:26
ServiceVolumeMaker.h
GeoPixelServices.h
pi
#define pi
Definition: TileMuonFitter.cxx:65
GeoVPixelFactory::m_gmt_mgr
PixelGeometryManager * m_gmt_mgr
Definition: GeoVPixelFactory.h:43
PixelGeometryManager::PixelHalfLength
virtual double PixelHalfLength()=0
PixelGeometryManager::PixelServiceRMax2
virtual double PixelServiceRMax2(const std::string &, int)=0
PixelGeometryManager::PixelServiceMaterial
virtual std::string PixelServiceMaterial(const std::string &, int)=0
CheckTagAssociation.schema
schema
Definition: CheckTagAssociation.py:22
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
PixelGeometryManager::athenaComps
PixelGeoModelAthenaComps * athenaComps()
Definition: PixelGeometryManager.h:616
InDetDD::ServiceVolumeMaker::make
ServiceVolume * make(int index)
Definition: ServiceVolumeMaker.cxx:280
IInDetServMatBuilderTool.h
PixelGeometryManager::PixelRMax
virtual double PixelRMax()=0
lumiFormat.i
int i
Definition: lumiFormat.py:85
GeoPixelServices::m_servMatBuilder
InDetDD::VolumeBuilder * m_servMatBuilder
Definition: GeoPixelServices.h:38
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
InDetDD::ServiceVolume::setRmin
void setRmin(double rmin)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:29
GeoPixelServices::m_layerShift
std::vector< double > m_layerShift
Definition: GeoPixelServices.h:39
InDetDD::ServiceVolume::setParentEnvelope
void setParentEnvelope(int num)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:59
PixelGeometryManager::PixelEnvelopeZ
virtual double PixelEnvelopeZ(int i)=0
PixelGeometryManager::PixelBarrelHalfLength
virtual double PixelBarrelHalfLength()=0
InDetDD::ServiceVolume::setRmax2
void setRmax2(double rmax2)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:32
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
GeoPixelServices::Build
virtual GeoVPhysVol * Build() override
Definition: GeoPixelServices.cxx:356
PixelGeometryManager::PixelServicePhiLoc
virtual double PixelServicePhiLoc(const std::string &a, int _n)=0
InDetDD::ServiceVolume::setNeedsRotation
void setNeedsRotation(bool flag)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:43
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
InDetDD::ServiceVolumeMaker
Definition: ServiceVolumeMaker.h:136
GeoPixelServices::~GeoPixelServices
~GeoPixelServices()
Definition: GeoPixelServices.cxx:190
GeoPixelServices::initializeOld
void initializeOld(const std::string &)
Definition: GeoPixelServices.cxx:237
python.ext.table_printer.table
list table
Definition: table_printer.py:81
PixelGeometryManager::PixelEndcapRMax
virtual double PixelEndcapRMax()=0
PixelGeometryManager::PixelServiceName
virtual std::string PixelServiceName(const std::string &, int)=0
PixelGeometryManager::SetCurrentLD
virtual void SetCurrentLD(int i)=0
PixelGeometryManager::PixelBarrelNLayer
virtual int PixelBarrelNLayer()=0
GeoVPixelFactory::m_mat_mgr
InDetMaterialManager * m_mat_mgr
Definition: GeoVPixelFactory.h:44
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
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
IInDetServMatBuilderTool::getServices
virtual const std::vector< const InDetDD::ServiceVolume * > & getServices() const =0
VolumeSplitterUtils.h
PixelGeometryManager::PixelEndcapZMin
virtual double PixelEndcapZMin()=0
PixelGeometryManager::PixelServiceElements
virtual int PixelServiceElements(const std::string &)=0
PixelGeometryManager::PixelServiceRMax
virtual double PixelServiceRMax(const std::string &, int)=0
a
TList * a
Definition: liststreamerinfos.cxx:10
GeoPixelServices::m_services
std::vector< const InDetDD::ServiceVolume * > m_services
Definition: GeoPixelServices.h:36
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
VolumeBuilder.h
xAOD::phiWidth
phiWidth
Definition: RingSetConf_v1.cxx:612
InDetDD::ServiceVolume::setNCopies
void setNCopies(int num)
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:45
GeoVPixelFactory
This is the base class for all the pieces of the Pixel detector.
Definition: GeoVPixelFactory.h:31
ServiceVolume.h
InDetDD::ServiceVolumeSchema
Definition: ServiceVolumeMaker.h:20
InDetDD::ServiceVolume
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:24
GeoPixelServices::GeoPixelServices
GeoPixelServices(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX, InDetDD::Zone *envelopeZone=0)
Definition: GeoPixelServices.cxx:114
PixelGeometryManager::PixelRMin
virtual double PixelRMin()=0
PixelGeometryManager::PixelServiceRepeat
virtual int PixelServiceRepeat(const std::string &a, int _n)=0
PixelGeometryManager::PixelEnvelopeRMin
virtual double PixelEnvelopeRMin(int i)=0
python.SystemOfUnits.degree
tuple degree
Definition: SystemOfUnits.py:106
PixelGeometryManager::PixelServiceZsymm
virtual bool PixelServiceZsymm(const std::string &, int)=0
GeoPixelServices::m_pixServBuilder
InDetDD::VolumeBuilder * m_pixServBuilder
Definition: GeoPixelServices.h:37
PixelGeometryManager::partPresent
virtual bool partPresent(const std::string &partName) const =0
InDetDD::TubeZone
Definition: VolumeSplitterUtils.h:99
InDetDD::ServiceVolume::zmin
double zmin() const
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:66
PixelGeometryManager::PixelServiceRMin2
virtual double PixelServiceRMin2(const std::string &, int)=0