ATLAS Offline Software
GeoPixelServices.cxx
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 // 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 <sstream>
110 #include <iomanip>
111 #include <algorithm>
112 
115  GeoModelIO::ReadGeoModel* sqliteReader,
116  std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
117  std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX,
118  InDetDD::Zone * pixZone)
119  : GeoVPixelFactory(ddmgr, mgr, sqliteReader, mapFPV, mapAX),
120  m_pixServBuilder(nullptr),
121  m_servMatBuilder(nullptr),
122  m_layerShift(0)
123 {
124 
125  // Get dimensions of barrel and endcap
126  double barrelRmin = m_gmt_mgr->PixelBarrelRMin();
127  double barrelRmax = m_gmt_mgr->PixelBarrelRMax();
128  double barrelZmin = -m_gmt_mgr->PixelBarrelHalfLength();
129  double barrelZmax = m_gmt_mgr->PixelBarrelHalfLength();
130  double endcapRmin = m_gmt_mgr->PixelEndcapRMin();
131  double endcapRmax = m_gmt_mgr->PixelEndcapRMax();
132  double endcapZmin = m_gmt_mgr->PixelEndcapZMin();
133  double endcapZmax = m_gmt_mgr->PixelEndcapZMax();
134 
135  double pixelRmin, pixelRmax, pixelZmax;
136  if (!pixZone) {
137  pixelRmin = m_gmt_mgr->PixelRMin();
138  pixelRmax = m_gmt_mgr->PixelRMax();
139  pixelZmax = m_gmt_mgr->PixelHalfLength();
140  pixZone = new InDetDD::TubeZone("Pixel",-pixelZmax,pixelZmax,pixelRmin,pixelRmax);
141  }
142  else {
144  pixelRmin = m_gmt_mgr->PixelRMin();
145  pixelRmax = m_gmt_mgr->PixelRMax();
146  pixelZmax = m_gmt_mgr->PixelHalfLength();
147  }
148  else {
149  pixelZmax = m_gmt_mgr->PixelEnvelopeZ(0);
150  pixelRmin = m_gmt_mgr->PixelEnvelopeRMin(0);
151  pixelRmax = m_gmt_mgr->PixelEnvelopeRMax(0);
152  }
153  }
154 
155  InDetDD::UnboundedZone topZone("Mother");
156  pixZone->add(new InDetDD::TubeZone("C",-endcapZmax,-endcapZmin,endcapRmin,endcapRmax, true));
157  pixZone->add(new InDetDD::TubeZone("B",barrelZmin,barrelZmax,barrelRmin,barrelRmax));
158  pixZone->add(new InDetDD::TubeZone("A",endcapZmin,endcapZmax,endcapRmin,endcapRmax));
159  topZone.add(pixZone);
160 
161  // Collect the layer shifts / IBL 2mm shift
162  m_layerShift.clear();
163  for(int ii = 0; ii < m_gmt_mgr->PixelBarrelNLayer(); ii++){
164  m_gmt_mgr->SetCurrentLD(ii);
166  }
167 
168 
169  // We process all tables.
170  bool barrelPresent = m_gmt_mgr->partPresent("Barrel");
171  bool endcapAPresent = m_gmt_mgr->partPresent("EndcapA");
172  bool endcapCPresent = m_gmt_mgr->partPresent("EndcapC");
173 
174  if (barrelPresent) initialize("barrel");
175  if (endcapAPresent || endcapCPresent) initialize("endcap");
176  initialize("simple");
177  initialize("envelope");
178 
179  // all services are added at a time
183  const std::vector<const InDetDD::ServiceVolume *> & services = m_gmt_mgr->athenaComps()->serviceBuilderTool()->getServices();
186  }
187 }
188 
190 {
191  // delete contents of m_multiParam
192  for (unsigned int i = 0; i < m_services.size(); ++i) {
193  delete m_services[i];
194  }
195  delete m_pixServBuilder;
196  delete m_servMatBuilder;
197 }
198 
199 
200 void GeoPixelServices::initialize(const std::string & a)
201 {
202  // For "simple" services use ServiceVolumeMaker to read in the table. The barrel and endcap can also be read in
203  // with ServiceVolumeMaker but there is still use of parameters specified by radiation length which is not handled by ServiceVolumeMaker
204  // so we use the old version.
205 
206  if (a!="simple") {
207  return initializeOld(a);
208  }
209 
211  std::string label;
212  if (a=="simple") {
213  schema.setSimpleSchema();
214  label = "Svc";
215  } else if (a=="barrel") { // Not used yet. initializeOld() is used instead
216  schema.setPixelSchema();
217  label = "Brl";
218  } else if (a=="endcap") { // Not used yet. initializeOld() is used instead
219  schema.setPixelSchema();
220  label = "EC";
221  } else {
222  m_gmt_mgr->msg(MSG::ERROR) << "Unrecognized service table type: " << a << endmsg;
223  return;
224  }
225 
227 
229  for (unsigned int i = 0; i < volMaker.numElements(); ++i) {
230  m_services.push_back(volMaker.make(i));
231  }
232 }
233 
234 
235 // See comment in initialize()
236 void GeoPixelServices::initializeOld(const std::string & a)
237 {
238  //
239  // Loop over the service elements:
240  //
241  int numServices = m_gmt_mgr->PixelServiceElements(a);
242  for(int ii = 0; ii < numServices; ii++) {
243 
244 
245  // Will return <0 if the element doesn't belong to current inside/outside zone
246  // This check is removed as it now checks accroding to the dimensions.
247  //if (m_gmt_mgr->PixelServiceFrameNum(a, ii) < 0) continue;
248  //
249  //
250  // Retrieve/calculate the parameters for the volume.
251  //
254  param.setRmin(m_gmt_mgr->PixelServiceRMin(a, ii));
255  param.setRmax(m_gmt_mgr->PixelServiceRMax(a, ii));
256  param.setZmin(m_gmt_mgr->PixelServiceZMin(a, ii));
257  param.setZmax(m_gmt_mgr->PixelServiceZMax(a, ii));
258  param.setZsymm(m_gmt_mgr->PixelServiceZsymm(a, ii));
259  param.setVolName(m_gmt_mgr->PixelServiceName(a, ii));
260 
261  double zShift=0.; // the famous IBL Z shift
262  int iShiftIndex = m_gmt_mgr->PixelServiceShift(a, ii);
263  // FIXME: The magic number 100 here should be explained...
264  // cppcheck-suppress negativeContainerIndex
265  if(iShiftIndex>0) zShift=m_layerShift[iShiftIndex-100];
266  param.setZShift(zShift);
267 
268  // Service envelopes
269  int envNum=m_gmt_mgr->PixelServiceEnvelopeNum(a, ii);
270  param.setEnvelopeNum(envNum);
271  int envParent=m_gmt_mgr->PixelServiceParentEnvelopeNum(a, ii);
272  param.setParentEnvelope(envParent);
273  int volId = m_gmt_mgr->PixelServiceFrameNum(a, ii);
274 
275  bool needsRotation = false;
276 
277  // For TUBE there is no need to read the rest
278  std::string shapeType = m_gmt_mgr->PixelServiceShape(a, ii);
279  if (!shapeType.empty() && shapeType != "TUBE") {
280  double rmin2 = m_gmt_mgr->PixelServiceRMin2(a, ii);
281  double rmax2 = m_gmt_mgr->PixelServiceRMax2(a, ii);
282  int repeat = m_gmt_mgr->PixelServiceRepeat(a, ii);
283  double phiLoc = m_gmt_mgr->PixelServicePhiLoc(a, ii);
284  double phiWidth = m_gmt_mgr->PixelServiceWidth(a, ii);
285 
286  // Can be in degree or Gaudi::Units::mm. Usually it is Gaudi::Units::deg expect for BOX, TRAP and ROD shape
287  // Geometry manager makes no assumptions about units. So we must interpret here.
288  if (shapeType == "BOX" || shapeType == "ROD" || shapeType == "ROD2" || shapeType == "TRAP") {
290  } else {
292  }
293 
294  if (phiWidth == 0) phiWidth = 2*Gaudi::Units::pi;
295  if (rmin2 <= 0) rmin2 = param.rmin();
296  if (rmax2 <= 0) rmax2 = param.rmax();
297  if (repeat == 0) repeat = 1;
298 
299  if (shapeType == "PGON" || shapeType == "PGON2" ||
300  shapeType == "CONE" || shapeType == "CONS" ||
301  shapeType == "PGON3" || shapeType == "PGON31" || shapeType == "PGON4") {
302  if ((rmin2 != param.rmin()) || (rmax2 != param.rmax())) {
303  needsRotation = true;
304  }
305  }
306 
307  int sides = 0;
308  int nCopies = 1;
309  if (shapeType == "PGON" || shapeType == "PGON2" ||
310  shapeType == "PGON3" || shapeType == "PGON31" || shapeType == "PGON4") {
311  sides = repeat;
312  } else {
313  nCopies = repeat;
314  }
315 
316  // Force nCopies to 1 for TUBE and CONE
317  if (shapeType.empty() || shapeType == "TUBE" || shapeType == "CONE") {
318  nCopies = 1;
319  }
320 
321  param.setShapeType(shapeType);
322  param.setRmin2(rmin2);
323  param.setRmax2(rmax2);
324  param.setPhiLoc(phiLoc);
325  param.setPhiWidth(phiWidth);
326  param.setSides(sides);
327  param.setNCopies(nCopies);
328  }
329 
330  param.setNeedsRotation(needsRotation);
331 
332  //
333  // If zin is 0... (within 10^-5) this is a volume symmetric around
334  // the origin
335  //
336  if(std::abs(param.zmin()) < 0.000001) {
337  param.setZmin(-param.zmax());
338  param.setZsymm(false);
339  }
340 
341  std::string label;
342  if(envNum>0) label="Env";
343  else if (a == "barrel") label = "Brl";
344  else if (a == "endcap") label = "EC";
345  else if (a == "simple") label = "Svc";
346  param.setLabel(label, volId);
347 
348  // Fill m_multiVolumes;
349  m_services.push_back(new InDetDD::ServiceVolume(param));
350 
351  }
352 }
353 
354 // For interface
355 GeoVPhysVol* GeoPixelServices::Build()
356 {
357  return nullptr;
358 }
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
InDetDD::ServiceVolume::setLabel
void setLabel(const std::string &name, int volId)
Definition: InDetGeoModelUtils/src/ServiceVolume.cxx:172
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:200
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:39
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:92
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:355
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:189
GeoPixelServices::initializeOld
void initializeOld(const std::string &)
Definition: GeoPixelServices.cxx:236
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:113
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