ATLAS Offline Software
Loading...
Searching...
No Matches
GeoPixelLadder Class Reference

#include <GeoPixelLadder.h>

Inheritance diagram for GeoPixelLadder:
Collaboration diagram for GeoPixelLadder:

Public Member Functions

 GeoPixelLadder (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, GeoPixelSiCrystal &theSensor, GeoPixelStaveSupport *staveSupport)
 GeoPixelLadder (const GeoPixelLadder &)=delete
GeoPixelLadderoperator= (const GeoPixelLadder &)=delete
virtual ~GeoPixelLadder ()=default
virtual GeoVPhysVol * Build () override
double thickness () const
double thicknessP () const
double thicknessN () const
double width () const

Protected Attributes

PixelGeometryManagerm_gmt_mgr
InDetMaterialManagerm_mat_mgr
InDetDD::PixelDetectorManagerm_DDmgr
GeoModelIO::ReadGeoModel * m_sqliteReader
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
const double m_epsilon

Private Member Functions

double calcThickness ()
double calcWidth ()

Private Attributes

GeoIntrusivePtr< const GeoLogVol > m_theLadder {}
GeoPixelSiCrystalm_theSensor
GeoPixelStaveSupportm_staveSupport
double m_thickness
double m_thicknessP
double m_thicknessN
double m_width

Detailed Description

Definition at line 16 of file GeoPixelLadder.h.

Constructor & Destructor Documentation

◆ GeoPixelLadder() [1/2]

GeoPixelLadder::GeoPixelLadder ( 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,
GeoPixelSiCrystal & theSensor,
GeoPixelStaveSupport * staveSupport )

Definition at line 30 of file GeoPixelLadder.cxx.

37 : GeoVPixelFactory (ddmgr, mgr, sqliteReader, std::move(mapFPV), std::move(mapAX))
38 , m_theLadder(nullptr)
39 , m_theSensor(theSensor)
40 , m_staveSupport(staveSupport)
41{
42 //
43 // Define the log volume in the constructor, so I do it only once.
44 //
45
46 //
47 // Length of the ladder is in the db
48 //
49 double length = m_gmt_mgr->PixelLadderLength();
50 double safety = 0.01*Gaudi::Units::mm;
51
53 m_thicknessP = 0.5 * m_gmt_mgr->PixelLadderThickness();
55
56 // If thickness from database is 0. Then we need to calculate the thickness
57 if (m_thicknessP <= 0) {
58 m_thicknessP = 0.5* calcThickness() + safety;
60 }
61
62 // Increase if stave is present and supplies thickness.
63 if (m_staveSupport) {
64 m_thicknessP = std::max(m_thicknessP, m_staveSupport->thicknessP()+safety);
65 m_thicknessN = std::max(m_thicknessN, m_staveSupport->thicknessN()+safety);
66 }
67
68 const GeoShape * ladderShape = nullptr;
69
70 // If upper and lower thicknesses are within 100 um. Make them the same.
71 if (std::abs(m_thicknessP - m_thicknessN) < 0.1*Gaudi::Units::mm) {
74 double halfThickness = m_thicknessP;
75 if(!m_sqliteReader) {
76 ladderShape = new GeoBox(halfThickness, m_width/2., length/2.);
77 }
78 }
79 else if (m_gmt_mgr->PixelBentStaveNModule() != 0) {
80 // Calculate thickness from bent stave part
81 double angle = m_gmt_mgr->PixelLadderBentStaveAngle() * Gaudi::Units::pi / 180.0;
82 double BentStaveThickness = double(m_gmt_mgr->PixelBentStaveNModule()) * m_gmt_mgr->PixelLadderModuleDeltaZ() * sin(angle);
83
84 // Extend +ve or -ve ladder thickness according to stave angle
85 if (angle < 0) m_thicknessP += BentStaveThickness;
86 if (angle > 0) m_thicknessN += BentStaveThickness;
87
88 if(!m_sqliteReader) {
89 // Create stave and apply shift to the ladder.
90 GeoBox * box = new GeoBox((m_thicknessP+m_thicknessN)/2., m_width/2., length/2.);
91
92 // Shift ladder outwards if stave bends away from beam pipe
93 double shift = 0.5*BentStaveThickness;
94 if (angle > 0) shift *= -1.0;
95 const GeoShape & shiftedBox = (*box) << GeoTrf::TranslateX3D(shift);
96 ladderShape = &shiftedBox;
97 }
98 }
99 else if (!(m_gmt_mgr->PixelStaveLayout()>3&& m_gmt_mgr->PixelStaveLayout()<7)) {
100 double halfThickness = 0.5*(m_thicknessP+m_thicknessN);
101 double shift = 0.5*(m_thicknessP-m_thicknessN);
102 if(!m_sqliteReader) {
103 GeoBox * box = new GeoBox(halfThickness, m_width/2., length/2.);
104 const GeoShape & shiftedBox = (*box) << GeoTrf::TranslateX3D(shift);
105 ladderShape = &shiftedBox;
106 }
107 }
108 else if(m_staveSupport) {
109 if(!m_sqliteReader) {
110 GeoSimplePolygonBrep* staveSupportShape=m_staveSupport->computeStaveEnvelopShape(safety);
111 const GeoShape & staveShape = (*staveSupportShape);
112 ladderShape = &staveShape;
113 }
114 }
115 else {
116 m_gmt_mgr->msg(MSG::ERROR)<<"No ladder shape could be defined "<<endmsg;
117 }
118
119 if(!m_sqliteReader) {
120 if(not ladderShape) {
121 m_gmt_mgr->msg(MSG::ERROR)<<"No ladder shape could be defined in "<<__FILE__<<endmsg;
122 std::abort();
123 }
124 else {
125 const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air");
126 m_theLadder = new GeoLogVol("Ladder",ladderShape,air);
127 }
128 }
130}
#define endmsg
double length(const pvec &v)
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
GeoPixelSiCrystal & m_theSensor
GeoPixelStaveSupport * m_staveSupport
GeoIntrusivePtr< const GeoLogVol > m_theLadder
GeoModelIO::ReadGeoModel * m_sqliteReader
PixelGeometryManager * m_gmt_mgr
InDetMaterialManager * m_mat_mgr
GeoVPixelFactory(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)

◆ GeoPixelLadder() [2/2]

GeoPixelLadder::GeoPixelLadder ( const GeoPixelLadder & )
delete

◆ ~GeoPixelLadder()

virtual GeoPixelLadder::~GeoPixelLadder ( )
virtualdefault

Member Function Documentation

◆ Build()

GeoVPhysVol * GeoPixelLadder::Build ( )
overridevirtual

100 % planar modules

75/25 planar/3D

50/50 planar/3D

Implements GeoVPixelFactory.

Definition at line 161 of file GeoPixelLadder.cxx.

161 {
162
163
164 // Create the ladder physVolume
165 GeoPhysVol* ladderPhys = m_sqliteReader==nullptr ? new GeoPhysVol(m_theLadder) : nullptr;
166 //
167 // Place the Modules
168 //
170
171 bool isBLayer=(m_gmt_mgr->GetLD() == 0);
172 bool isModule3D=true;
173 if (m_gmt_mgr->PixelStaveLayout()<5) isModule3D=false;
174 GeoPixelSiCrystal theSensor3D(m_DDmgr, m_gmt_mgr, m_sqliteReader, m_mapFPV, m_mapAX, isBLayer,isModule3D);
175 GeoPixelModule pm3D(m_DDmgr, m_gmt_mgr, m_sqliteReader, m_mapFPV, m_mapAX, theSensor3D);
176 // double pm3DLength=pm3D.Length();
177
178 // Pixel module parameters
179 int staveLayout = m_gmt_mgr->PixelStaveLayout();
180 int nbPixelModule=m_gmt_mgr->PixelNModule();
181 int nbPixelPlanarModule=0;
182 int nbPixel3DModule=0;
183 bool bDetailedStaveLayout=false;
184 double pixelModuleGap=m_gmt_mgr->IBLStaveModuleGap();
185 double zNegStavePos= 0.0;
186 double planarLength=0.0;
187 double v3DHalfLength=0.0;
188 double v3DLength=0.0;
189
190 bool bVerbose= (m_gmt_mgr->msgLvl(MSG::DEBUG));
191
192 // Radial shift of Si3D module in case its thickness is greater that SiPl module's one
193 double Si3DRadialShift=0.;
194 double Si3DLateralShift=0.;
195 if(isModule3D)
196 {
197 double SiPlThick = pm.ThicknessP();
198 double Si3DThick = pm3D.ThicknessP();
199 if(Si3DThick>SiPlThick) Si3DRadialShift=-(Si3DThick-SiPlThick);
200 // m_gmt_mgr->msg(MSG::INFO)<<"Si3D/SiPl radial shift : "<<Si3DRadialShift<<" Pl/3D : "<<SiPlThick<<" "<<Si3DThick<<endmsg;
201
202 double MechanicalStaveOffset = m_gmt_mgr->IBLStaveMechanicalStaveOffset();
203 double MechanicalStaveOffset3D = m_gmt_mgr->IBLStaveMechanicalStaveOffset(true);
204 Si3DLateralShift= -(MechanicalStaveOffset3D-MechanicalStaveOffset);
205 }
206
207 // Module 3D geometry (IBL planar and 3D modules)
208 if(m_gmt_mgr->ibl() && m_gmt_mgr->GetLD()==0)
209 {
210 if(staveLayout==4)
211 {
212 nbPixelModule=m_gmt_mgr->IBLStaveModuleNumber_AllPlanar();
213 bDetailedStaveLayout=true;
214 nbPixelPlanarModule=nbPixelModule;
215
216 }
217 else if(staveLayout==5||staveLayout==6) // 75/25 or 50/50
218 {
219 bDetailedStaveLayout=true;
220 nbPixelModule=m_staveSupport->PixelNModule();
221 nbPixelPlanarModule=m_staveSupport->PixelNPlanarModule();
222 nbPixel3DModule=m_staveSupport->PixelN3DModule();
223
224 if(staveLayout==5)
225 {
226 planarLength=nbPixelPlanarModule*pm.Length()+(nbPixelPlanarModule-1)*pixelModuleGap;
227 v3DHalfLength=(nbPixel3DModule/2)*pm3D.Length()+(nbPixel3DModule/2)*pixelModuleGap;
228 zNegStavePos=-planarLength*0.5-v3DHalfLength;
229 }
230 else
231 {
232 planarLength=nbPixelPlanarModule*pm.Length()+(nbPixelPlanarModule-1)*pixelModuleGap;
233 v3DLength=(nbPixel3DModule)*pm3D.Length()+(nbPixel3DModule-1)*pixelModuleGap+pixelModuleGap*0.5;
234 zNegStavePos=-v3DLength;
235 }
236
237 // m_gmt_mgr->msg(MSG::INFO)<<"GeoPixelLadder : "<<nbPixelModule<<" "<<nbPixelPlanarModule<<" + "<<nbPixel3DModule<<" planar and 3D Lengths : "<<planarLength<<" "<<v3DLength<<endmsg;
238 }
239 }
240
241 for(int ii = 0; ii < nbPixelModule; ii++) {
242
243 int etaModule = m_gmt_mgr->PixelModuleEtaFromIndex(ii);
244 m_gmt_mgr->SetEta(etaModule);
245
246//
247// For standard ATLAS stave shift down the central module, as its flag is -1.
248// PixelModuleStaggerDistance is zero for standard ATLAS geometry.
249// Not sure why PixelModuleDrDistance is defined as twice the shift.
250//
251
252 double xpos = m_gmt_mgr->PixelModuleStaggerDistance() * m_gmt_mgr->PixelModuleStaggerSign(etaModule)
253 + m_gmt_mgr->PixelModuleDrDistance()*m_gmt_mgr->PixelModuleShiftFlag(etaModule)/2.;
254//
255// Get the z position from the db
256//
257 double zpos = m_gmt_mgr->PixelModuleZPosition(etaModule);
258 bool b3DModule=false;
259 double xposShift=0.;
260 double yposShift=0.;
261
262 // detailed stave model : parameters are taken from PixelIBLStave table instead of PixelStave
263 if(m_gmt_mgr->ibl() && bDetailedStaveLayout && m_gmt_mgr->GetLD()==0)
264 {
265 int moduleIndex = m_gmt_mgr->PixelModuleIndexFromEta(etaModule);
266
267 if(m_gmt_mgr->PixelStaveLayout()==4)
268 zpos=(pm.Length()+m_gmt_mgr->IBLStaveModuleGap()) * (moduleIndex - 0.5*(m_gmt_mgr->IBLStaveModuleNumber_AllPlanar()-1));
269 else if(m_gmt_mgr->PixelStaveLayout()==5)
270 {
271
272 if(bVerbose)m_gmt_mgr->msg(MSG::DEBUG)<<"Eta : cmpt/index "<<ii<<" "<<moduleIndex<<endmsg;
273
274 if(ii<nbPixel3DModule/2) // zneg 3D pixel area
275 {
276 b3DModule=true;
277 zpos=(pm3D.Length()+m_gmt_mgr->IBLStaveModuleGap()) * moduleIndex;
278 zpos+=pm3D.Length()*0.5;
279 xposShift=Si3DRadialShift;
280 yposShift=Si3DLateralShift;
281 if(bVerbose)m_gmt_mgr->msg(MSG::DEBUG)<<"left 3D module "<<pm3D.Length()<<" "<<zpos<<endmsg;
282 }
283 else if(ii>nbPixelPlanarModule+nbPixel3DModule/2-1) // zpos 3D pixel area
284 {
285 if(bVerbose)m_gmt_mgr->msg(MSG::DEBUG)<<"right 3D module "<<pm3D.Length()<<" "<<zpos<<endmsg;
286 b3DModule=true;
287 zpos=v3DHalfLength+planarLength+m_gmt_mgr->IBLStaveModuleGap();
288 zpos+=(pm3D.Length()+m_gmt_mgr->IBLStaveModuleGap()) * (moduleIndex - nbPixel3DModule/2 - nbPixelPlanarModule);
289 zpos+=pm3D.Length()*0.5;
290 xposShift=Si3DRadialShift;
291 yposShift=Si3DLateralShift;
292 }
293 else // planar pixel area
294 {
295 zpos=v3DHalfLength+(pm.Length()+m_gmt_mgr->IBLStaveModuleGap()) * (moduleIndex - nbPixel3DModule/2);
296 zpos+=pm.Length()*0.5;
297 if(bVerbose)m_gmt_mgr->msg(MSG::DEBUG)<<"planar module "<<pm.Length()<<" "<<zpos<<endmsg;
298 xposShift=0.;
299 }
300
301 // Shift vs half stave length
302 zpos=zNegStavePos+zpos;
303
304 }
305 else if(m_gmt_mgr->PixelStaveLayout()==6)
306 {
307
308 if(ii<nbPixel3DModule) // zneg 3D pixel area
309 {
310 if(bVerbose)m_gmt_mgr->msg(MSG::DEBUG)<<"left 3D module "<<pm3D.Length()<<" "<<moduleIndex<<endmsg;
311 b3DModule=true;
312 zpos=(pm3D.Length()+pixelModuleGap) * moduleIndex;
313 zpos=zNegStavePos+zpos+pm3D.Length()*0.5;
314 xposShift=Si3DRadialShift;
315 yposShift=Si3DLateralShift;
316 }
317 else // zpos 3D pixel area
318 {
319 if(bVerbose)m_gmt_mgr->msg(MSG::DEBUG)<<"right plannar module "<<pm.Length()<<" "<<moduleIndex<<endmsg;
320 zpos=(pm.Length()+m_gmt_mgr->IBLStaveModuleGap()) * (moduleIndex - nbPixel3DModule);
321 zpos+=pm.Length()*0.5+pixelModuleGap*0.5;
322 }
323 }
324 }
325
326
327 GeoTrf::Translation3D modulepos(xpos+xposShift,yposShift,zpos);
328//
329// Rotate if module is inclined.
330//
331 GeoTrf::RotateY3D rm(m_gmt_mgr->PixelModuleAngle()*m_gmt_mgr->PixelModuleAngleSign(etaModule) );
332//
333// Place the Module
334//
335 GeoVPhysVol* modulephys{nullptr}; // = pm.Build() ;
336
337 if(!b3DModule)
338 modulephys = pm.Build();
339 else
340 modulephys = pm3D.Build();
341
342 if(m_sqliteReader) {
343 std::string key="ModuleBrl_"+std::to_string(m_gmt_mgr->GetLD())+"_"+std::to_string(m_gmt_mgr->Phi())+"_"+std::to_string(m_gmt_mgr->Eta());
344 Identifier id;
345 if(!b3DModule) id = m_theSensor.getID();
346 else id = theSensor3D.getID();
347 m_DDmgr->addAlignableTransform(0,id,(*m_mapAX)[key],(*m_mapFPV)[key]);
348 }
349 else {
350 std::ostringstream nameTag;
351 nameTag << "ModuleBrl" << m_gmt_mgr->Eta();
352 GeoNameTag * tag = new GeoNameTag(nameTag.str());
353 GeoAlignableTransform* xform;
354
355 xform = new GeoAlignableTransform(GeoTrf::Transform3D(modulepos*rm));
356 ladderPhys->add(tag);
357 ladderPhys->add(new GeoIdentifierTag(m_gmt_mgr->Eta() ) );
358 ladderPhys->add(xform);
359 ladderPhys->add(modulephys );
360
361 // Now store the xform by identifier:
362 Identifier id;
363 if(!b3DModule) id = m_theSensor.getID();
364 else id = theSensor3D.getID();
365 m_DDmgr->addAlignableTransform(0,id,xform,modulephys);
366 }
367 }
368 //Add the TMT or other stave support
370 ladderPhys->add(new GeoTransform(m_staveSupport->transform()));
371 ladderPhys->add(m_staveSupport->getPhysVol());
372 }
373
374
375 if (!m_sqliteReader && m_gmt_mgr->PixelBentStaveNModule() != 0)
376 {
377 double thickness = m_gmt_mgr->PixelLadderSupportThickness();
378 double width = m_gmt_mgr->PixelLadderSupportWidth();
379 double length = m_gmt_mgr->PixelLadderSupportLength();
380 double xOffset = m_gmt_mgr->PixelLadderServicesX();
381 // double yOffset = m_gmt_mgr->PixelLadderServicesY();
382 // int staveIndex = m_gmt_mgr->PixelStaveIndex(m_gmt_mgr->GetLD());
383
384 // Bent stave half length = 0.5 * nModules * ModuleSize
385 double bentStaveHalfLength = 0.5 * double(m_gmt_mgr->PixelBentStaveNModule()) * m_gmt_mgr->PixelLadderModuleDeltaZ();
386
387 // Create bent stave
388 GeoBox * shapeSupBent = new GeoBox(0.5*thickness, 0.5*width, bentStaveHalfLength);
389
390 // std::string matName = m_gmt_mgr->getMaterialName("StaveSupportOuter", m_gmt_mgr->GetLD(), staveIndex);
391 // std::string matName = m_gmt_mgr->getMaterialName("StaveSupport", m_gmt_mgr->GetLD(), staveIndex);
392 // const GeoMaterial* materialSup = m_mat_mgr->getMaterialForVolume(matName,shapeSupBent->volume());
393 const GeoMaterial* materialSup = m_mat_mgr->getMaterial("pix::StaveSupportBase");
394
395 double ang = m_gmt_mgr->PixelLadderBentStaveAngle() * Gaudi::Units::pi / 180.0;
396 double xst = xOffset - (bentStaveHalfLength * sin(ang));
397
398 // Construct bent stave at negative z
399 GeoLogVol* logVolBentNeg = new GeoLogVol("StaveSupportBentNeg2",shapeSupBent,materialSup);
400 GeoPhysVol* physVolBentNeg = new GeoPhysVol(logVolBentNeg);
401 GeoTrf::RotateY3D rmNeg(ang);
402 double zstneg = -length/2.0 - (bentStaveHalfLength * cos(ang));
403 GeoTrf::Translation3D stavePosNeg(xst,0.,zstneg);
404 ladderPhys->add(new GeoTransform(GeoTrf::Transform3D(stavePosNeg*rmNeg)));
405 ladderPhys->add(physVolBentNeg);
406
407 // COnstruct bent stave at positive z
408 GeoLogVol* logVolBentPos = new GeoLogVol("StaveSupportBentPos2",shapeSupBent,materialSup);
409 GeoPhysVol* physVolBentPos = new GeoPhysVol(logVolBentPos);
410 GeoTrf::RotateY3D rmPos(-ang);
411 double zstpos = length/2.0 + (bentStaveHalfLength * cos(ang));
412 GeoTrf::Translation3D stavePosPos(xst,0.,zstpos);
413 ladderPhys->add(new GeoTransform(GeoTrf::Transform3D(stavePosPos*rmPos)));
414 ladderPhys->add(physVolBentPos);
415 }
416
417
418 return ladderPhys;
419}
double thickness() const
double width() const
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
InDetDD::PixelDetectorManager * m_DDmgr

◆ calcThickness()

double GeoPixelLadder::calcThickness ( )
private

Definition at line 422 of file GeoPixelLadder.cxx.

422 {
423 //
424 // The module thickness is copied from the module. Should improve this
425 // to avoid duplication of code
426 //
427
428 const double safety = 0.01*Gaudi::Units::mm;
429 double clearance = m_gmt_mgr->PixelLadderThicknessClearance();
430 clearance = std::max(clearance, safety);
431
432 double thickn = 0.5 * m_gmt_mgr->PixelBoardThickness() + m_gmt_mgr->PixelHybridThickness() + clearance;
433 double thickp = 0.5 * m_gmt_mgr->PixelBoardThickness() + m_gmt_mgr->PixelChipThickness() + m_gmt_mgr->PixelChipGap() + clearance;
434 double thick = std::max(thickn, thickp);
435
436 double length = std::max(m_gmt_mgr->PixelBoardLength(), std::max(m_gmt_mgr->PixelHybridLength(), m_gmt_mgr->PixelChipLength()));
437 double tiltThick = 0.5*length * sin(std::abs(m_gmt_mgr->PixelModuleAngle())) + thick * cos(m_gmt_mgr->PixelModuleAngle());
438
439 // take into account stagger and tilt
440 //PixelModuleDrDistance can be -ve
441 double thick1 = std::max(thick + 0.5*m_gmt_mgr->PixelModuleDrDistance(), thick - 0.5*m_gmt_mgr->PixelModuleDrDistance());
442 double thick2 = tiltThick + m_gmt_mgr->PixelModuleStaggerDistance();
443
444 thick = std::max(thick1,thick2);
445
446 return 2*thick;
447}

◆ calcWidth()

double GeoPixelLadder::calcWidth ( )
private

Definition at line 450 of file GeoPixelLadder.cxx.

450 {
451 //
452 // The width is the maximum among the component widths
453 //
454 const double clearanceRphi = m_gmt_mgr->PixelLadderWidthClearance(); // From Grant : no clash with big pigtail part
455 double width = max( max(
456 m_gmt_mgr->PixelBoardWidth(),
457 m_gmt_mgr->PixelHybridWidth()),
458 m_gmt_mgr->PixelChipWidth());
459 //width += 5.8; // New DC3 ! to allow module movement
460 width += 2*clearanceRphi; // New DC3 ! to allow module movement
461 return width;
462}
#define max(a, b)
Definition cfImp.cxx:41

◆ operator=()

GeoPixelLadder & GeoPixelLadder::operator= ( const GeoPixelLadder & )
delete

◆ thickness()

double GeoPixelLadder::thickness ( ) const
inline

Definition at line 29 of file GeoPixelLadder.h.

29{return m_thickness;}

◆ thicknessN()

double GeoPixelLadder::thicknessN ( ) const
inline

Definition at line 31 of file GeoPixelLadder.h.

31{return m_thicknessN;}

◆ thicknessP()

double GeoPixelLadder::thicknessP ( ) const
inline

Definition at line 30 of file GeoPixelLadder.h.

30{return m_thicknessP;}

◆ width()

double GeoPixelLadder::width ( ) const
inline

Definition at line 32 of file GeoPixelLadder.h.

32{return m_width;}

Member Data Documentation

◆ m_DDmgr

InDetDD::PixelDetectorManager* GeoVPixelFactory::m_DDmgr
protectedinherited

Definition at line 45 of file GeoVPixelFactory.h.

◆ m_epsilon

const double GeoVPixelFactory::m_epsilon
protectedinherited

Definition at line 49 of file GeoVPixelFactory.h.

◆ m_gmt_mgr

PixelGeometryManager* GeoVPixelFactory::m_gmt_mgr
protectedinherited

Definition at line 43 of file GeoVPixelFactory.h.

◆ m_mapAX

std::shared_ptr<std::map<std::string, GeoAlignableTransform*> > GeoVPixelFactory::m_mapAX
protectedinherited

Definition at line 48 of file GeoVPixelFactory.h.

◆ m_mapFPV

std::shared_ptr<std::map<std::string, GeoFullPhysVol*> > GeoVPixelFactory::m_mapFPV
protectedinherited

Definition at line 47 of file GeoVPixelFactory.h.

◆ m_mat_mgr

InDetMaterialManager* GeoVPixelFactory::m_mat_mgr
protectedinherited

Definition at line 44 of file GeoVPixelFactory.h.

◆ m_sqliteReader

GeoModelIO::ReadGeoModel* GeoVPixelFactory::m_sqliteReader
protectedinherited

Definition at line 46 of file GeoVPixelFactory.h.

◆ m_staveSupport

GeoPixelStaveSupport* GeoPixelLadder::m_staveSupport
private

Definition at line 41 of file GeoPixelLadder.h.

◆ m_theLadder

GeoIntrusivePtr<const GeoLogVol> GeoPixelLadder::m_theLadder {}
private

Definition at line 39 of file GeoPixelLadder.h.

39{};

◆ m_theSensor

GeoPixelSiCrystal& GeoPixelLadder::m_theSensor
private

Definition at line 40 of file GeoPixelLadder.h.

◆ m_thickness

double GeoPixelLadder::m_thickness
private

Definition at line 42 of file GeoPixelLadder.h.

◆ m_thicknessN

double GeoPixelLadder::m_thicknessN
private

Definition at line 44 of file GeoPixelLadder.h.

◆ m_thicknessP

double GeoPixelLadder::m_thicknessP
private

Definition at line 43 of file GeoPixelLadder.h.

◆ m_width

double GeoPixelLadder::m_width
private

Definition at line 45 of file GeoPixelLadder.h.


The documentation for this class was generated from the following files: