Processing math: 100%
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Trk::BevelledCylinderVolumeBounds Class Referencefinal

#include <BevelledCylinderVolumeBounds.h>

Inheritance diagram for Trk::BevelledCylinderVolumeBounds:
Collaboration diagram for Trk::BevelledCylinderVolumeBounds:

Public Member Functions

 BevelledCylinderVolumeBounds ()
 Default Constructor. More...
 
 BevelledCylinderVolumeBounds (double rinner, double router, double halfPhiSector, double halez, int type)
 Constructor - cylinder segment bevelled in R. More...
 
 BevelledCylinderVolumeBounds (const BevelledCylinderVolumeBounds &cylbo)
 Copy Constructor. More...
 
virtual ~BevelledCylinderVolumeBounds ()
 Destructor. More...
 
BevelledCylinderVolumeBoundsoperator= (const BevelledCylinderVolumeBounds &cylbo)
 Assignment operator. More...
 
BevelledCylinderVolumeBoundsclone () const override
 Virtual constructor. More...
 
bool inside (const Amg::Vector3D &, double tol=0.) const override
 This method checks if position in the 3D volume frame is inside the cylinder. More...
 
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces (const Amg::Transform3D &transform) override
 Method to decompose the Bounds into boundarySurfaces. More...
 
ObjectAccessor boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override
 Provide accessor for BoundarySurfaces. More...
 
double innerRadius () const
 This method returns the inner radius. More...
 
double outerRadius () const
 This method returns the outer radius. More...
 
double mediumRadius () const
 This method returns the medium radius. More...
 
double deltaRadius () const
 This method returns the delta radius. More...
 
double halfPhiSector () const
 This method returns the halfPhiSector angle. More...
 
double halflengthZ () const
 This method returns the halflengthZ. More...
 
double thetaMinus () const
 This method returns the thetaMinus. More...
 
double thetaPlus () const
 This method returns the thetaPlus. More...
 
int type () const
 This method returns the type. More...
 
MsgStream & dump (MsgStream &sl) const override
 Output Method for MsgStream. More...
 
std::ostream & dump (std::ostream &sl) const override
 Output Method for std::ostream. More...
 

Private Member Functions

std::shared_ptr< CylinderBoundsinnerBevelledCylinderBounds () const
 This method returns the associated BevelledCylinderBounds of the inner BevelledCylinderSurfaces. More...
 
std::shared_ptr< CylinderBoundsouterBevelledCylinderBounds () const
 This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces. More...
 
std::shared_ptr< RectangleBoundsinnerBevelledPlaneBounds () const
 This method returns the associated plane surface bounds of the inner bevelled surface. More...
 
std::shared_ptr< RectangleBoundsouterBevelledPlaneBounds () const
 This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces. More...
 
std::shared_ptr< EllipseBoundsbottomEllipseBounds () const
 This method returns the associated EllipseBounds for the bottom/top EllipseSurface. More...
 
std::shared_ptr< EllipseBoundstopEllipseBounds () const
 This method returns the associated EllipseBounds for the bottom/top EllipseSurface. More...
 
std::shared_ptr< CylinderBoundsinnerCylinderBounds () const
 This method returns the associated CylinderBounds of the inner CylinderSurfaces. More...
 
std::shared_ptr< CylinderBoundsouterCylinderBounds () const
 This method returns the associated CylinderBounds of the outer CylinderSurfaces. More...
 
std::shared_ptr< DiscBoundsdiscBounds () const
 This method returns the associated DiscBounds for the bottom/top DiscSurface. More...
 
VolumesubtractedVolume () const
 This method returns the bevelled area volume. More...
 
std::shared_ptr< TrapezoidBoundssectorTrdBounds () const
 This method returns the associated PlaneBounds limiting a sectoral BevelledCylinderVolume. More...
 
std::shared_ptr< RectangleBoundssectorPlaneBounds () const
 
void createBoundarySurfaceAccessors ()
 Private method to construct the accessors. More...
 

Private Attributes

double m_innerRadius
 
double m_outerRadius
 
double m_halfPhiSector
 
double m_halfZ
 
double m_thetaMinus
 
double m_thetaPlus
 
int m_type
 
BevelledCylinderVolumeBoundaryAccessors m_boundaryAccessors
 Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () with TrkMagFieldUtils. More...
 
CxxUtils::CachedUniquePtr< Trk::Volumem_subtractedVolume
 

Static Private Attributes

static const double s_numericalStable
 numerical stability More...
 

Detailed Description

Bounds for a cylindrical Volume, the decomposeToSurfaces method creates a vector of up to 6 surfaces:

case A) 3 Surfaces (full cylindrical tube): BoundarySurfaceFace [index]:

case B) 4 Surfaces (tube with inner and outer radius): BoundarySurfaceFace [index]:

case C) 6 Surfaces (sectoral tube with inner and outer radius): BoundarySurfaceFace [index]:

case D) 6 Surfaces (sectoral bevelled tube with inner and/or outer radius replaced by plane surface): BoundarySurfaceFace [index]:

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 100 of file BevelledCylinderVolumeBounds.h.

Constructor & Destructor Documentation

◆ BevelledCylinderVolumeBounds() [1/3]

Trk::BevelledCylinderVolumeBounds::BevelledCylinderVolumeBounds ( )

Default Constructor.

Definition at line 34 of file BevelledCylinderVolumeBounds.cxx.

35  : VolumeBounds()
36  , m_innerRadius(0.)
37  , m_outerRadius(0.)
38  , m_halfPhiSector(0.)
39  , m_halfZ(0.)
40  , m_thetaMinus(0.)
41  , m_thetaPlus(0.)
42  , m_type(-1)
44  , m_subtractedVolume(nullptr)
45 {}

◆ BevelledCylinderVolumeBounds() [2/3]

Trk::BevelledCylinderVolumeBounds::BevelledCylinderVolumeBounds ( double  rinner,
double  router,
double  halfPhiSector,
double  halez,
int  type 
)

Constructor - cylinder segment bevelled in R.

Definition at line 47 of file BevelledCylinderVolumeBounds.cxx.

53  : VolumeBounds()
54  , m_innerRadius(std::abs(rinner))
55  , m_outerRadius(std::abs(router))
56  , m_halfPhiSector(haphi)
57  , m_halfZ(std::abs(halez))
58  , m_thetaMinus(0.)
59  , m_thetaPlus(0.)
60  , m_type(type)
62  , m_subtractedVolume(nullptr)
63 {}

◆ BevelledCylinderVolumeBounds() [3/3]

Trk::BevelledCylinderVolumeBounds::BevelledCylinderVolumeBounds ( const BevelledCylinderVolumeBounds cylbo)

Copy Constructor.

Definition at line 65 of file BevelledCylinderVolumeBounds.cxx.

67  : VolumeBounds()
68  , m_innerRadius(cylbo.m_innerRadius)
69  , m_outerRadius(cylbo.m_outerRadius)
70  , m_halfPhiSector(cylbo.m_halfPhiSector)
71  , m_halfZ(cylbo.m_halfZ)
72  , m_thetaMinus(cylbo.m_thetaMinus)
73  , m_thetaPlus(cylbo.m_thetaPlus)
74  , m_type(cylbo.m_type)
76  , m_subtractedVolume(nullptr)
77 {}

◆ ~BevelledCylinderVolumeBounds()

Trk::BevelledCylinderVolumeBounds::~BevelledCylinderVolumeBounds ( )
virtualdefault

Destructor.

Member Function Documentation

◆ bottomEllipseBounds()

std::shared_ptr< Trk::EllipseBounds > Trk::BevelledCylinderVolumeBounds::bottomEllipseBounds ( ) const
private

This method returns the associated EllipseBounds for the bottom/top EllipseSurface.

Definition at line 457 of file BevelledCylinderVolumeBounds.cxx.

458 {
459  return std::make_shared<Trk::EllipseBounds>(
465 }

◆ boundarySurfaceAccessor()

Trk::ObjectAccessor Trk::BevelledCylinderVolumeBounds::boundarySurfaceAccessor ( const Amg::Vector3D gp,
const Amg::Vector3D dir,
bool  forceInside = false 
) const
overridevirtual

Provide accessor for BoundarySurfaces.

Implements Trk::VolumeBounds.

Definition at line 249 of file BevelledCylinderVolumeBounds.cxx.

253 {
254  // the tube case - most likely
255  if (m_innerRadius != 0. && std::abs(m_halfPhiSector - M_PI) < s_numericalStable) {
256  // prepare the data
257  double posZ = gp.z();
258  double posR = gp.perp();
259  // difference Vector
260  Amg::Vector3D diff(gp + dir);
261  // differences
262  double deltaZ = diff.z() - posZ;
263  double deltaR = diff.perp() - posR;
264 
265  // the isOnSurface cases + switchers (that change with the cases)
266  bool isOnFace = false;
267  bool intersectionIndicator = (deltaR > 0.);
268  bool choiceIndicator = false;
269 
270  // on surface or look-a-likes
271  // on zMin or slightly outside
272  if (
273  std::abs(posZ + m_halfZ) < s_numericalStable ||
274  (posZ < (-m_halfZ) && deltaZ > 0.)) {
275  isOnFace = true;
276  } else if (
277  std::abs(posZ - m_halfZ) < s_numericalStable ||
278  (posZ > m_halfZ && deltaZ < 0.)) {
279  // on zMax or slighly outside
280  isOnFace = true;
281  } else if (
282  std::abs(posR - m_innerRadius) < s_numericalStable ||
283  (posR < m_innerRadius && deltaR > 0.)) {
284  // on innerRadius or slightly outside
285  isOnFace = true;
286  choiceIndicator =
287  (deltaZ > 0.); // the side choice indicator <========== WRONG ==========
288  } else if (
289  std::abs(posR - m_outerRadius) < s_numericalStable ||
290  (posR > m_outerRadius && deltaR < 0.)) {
291  // on outRadius or slightly outside
292  isOnFace = true;
293  choiceIndicator =
294  (deltaZ > 0.); // the side choice indicator <========== WRONG ==========
295  }
296 
297  // the onSurface case
298  // =================================================================================
299  if (isOnFace) {
300  if (intersectionIndicator) {
301  // intersect the Rmax
302  Trk::BevelledBoundaryIntersector intersectRmax(
303  posR, posZ, deltaZ / deltaR, m_outerRadius);
304  double zOfIntersect = intersectRmax.yOfX;
305  // now check if the intersect is inside m_halfZ
306  if (std::abs(zOfIntersect) <= m_halfZ)
307  return {(choiceIndicator || zOfIntersect > 0.)
312  // if the intersect is outside
313  return {(choiceIndicator || zOfIntersect > 0.)
318  }
319  // intersect the Rmin
320  Trk::BevelledBoundaryIntersector intersectRmin(
321  posR, posZ, deltaZ / deltaR, m_innerRadius);
322  double zOfIntersect = intersectRmin.yOfX;
323  // now check if the intersect is inside m_halfZ
324  if (std::abs(zOfIntersect) <= m_halfZ)
325  return {(choiceIndicator || zOfIntersect > 0.)
330  // if the intersect is outside
331  return {(choiceIndicator || zOfIntersect > 0.)
336  }
337  // =================================================================================================
338 
339  // ======================= the inside/outside part remains
340  // =========================================
341  // (a) outside cases
342  if (posR < m_innerRadius && deltaR < 0.)
345  if (posR > m_outerRadius && deltaR > 0.)
348  if (posZ < -m_halfZ && deltaZ < 0.)
351  if (posZ > m_halfZ && deltaZ > 0.)
354  // (b) inside cases
355  // the increase R case
356  if (deltaR > 0.) {
357  // solve the linear equation for the outer Radius
358  Trk::BevelledBoundaryIntersector intersectRmax(
359  posR, posZ, deltaZ / deltaR, m_outerRadius);
360  double zOfIntersect = intersectRmax.yOfX;
361 
362  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect > 0.)
365  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect < 0.)
368  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect < 0.)
371  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect > 0.)
374 
375  } else {
376  // solve the linear equation for the inner Radius
377  Trk::BevelledBoundaryIntersector intersectRmin(
378  posR, posZ, deltaZ / deltaR, m_innerRadius);
379  double zOfIntersect = intersectRmin.yOfX;
380 
381  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect > 0.)
384  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect < 0.)
387  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect > 0.)
392  }
393  }
394  // the cylinder case
395  if (m_innerRadius == 0. && std::abs(m_halfPhiSector - M_PI) < 10e-3) {
396 
397  double posZ = gp.z();
398  double posR = gp.perp();
399  // difference Vector
400  Amg::Vector3D diff(gp + dir);
401  // differences
402  double deltaZ = diff.z() - posZ;
403  double deltaR = diff.perp() - posR;
404 
405  // solve the linear equation for the cylinder Radius
407  posR, posZ, deltaZ / deltaR, m_outerRadius);
408  // the intersection point
409  double zOfIntersect = intersectR.yOfX;
410 
411  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect > 0.)
414  if (std::abs(zOfIntersect) <= m_halfZ && zOfIntersect < 0.)
417  if (std::abs(zOfIntersect) > m_halfZ && zOfIntersect > 0.)
422  }
423  // the sectoral cylinder case
424  if (m_innerRadius != 0. && std::abs(m_halfPhiSector - M_PI) > 10e-3)
427  // it remains the sectoral tube case
430 }

◆ clone()

BevelledCylinderVolumeBounds * Trk::BevelledCylinderVolumeBounds::clone ( ) const
inlineoverridevirtual

Virtual constructor.

Implements Trk::VolumeBounds.

Definition at line 217 of file BevelledCylinderVolumeBounds.h.

218  { return new BevelledCylinderVolumeBounds(*this); }

◆ createBoundarySurfaceAccessors()

void Trk::BevelledCylinderVolumeBounds::createBoundarySurfaceAccessors ( )
private

Private method to construct the accessors.

◆ decomposeToSurfaces()

std::vector< std::unique_ptr< Trk::Surface > > Trk::BevelledCylinderVolumeBounds::decomposeToSurfaces ( const Amg::Transform3D transform)
overridevirtual

Method to decompose the Bounds into boundarySurfaces.

Implements Trk::VolumeBounds.

Definition at line 99 of file BevelledCylinderVolumeBounds.cxx.

101 {
102  auto retsf = std::vector<std::unique_ptr<Trk::Surface>>();
103  // memory optimisation (reserve a save number of 20)
104  retsf.reserve(6);
105 
106  Amg::RotationMatrix3D discRot(transform.rotation());
107  Amg::Vector3D cylCenter(transform.translation());
108 
109  // Lazy init m_m_subtractedVolume
110  if (m_type > -1 && !m_subtractedVolume) {
111  m_subtractedVolume.set(std::unique_ptr<Trk::Volume>(subtractedVolume()));
112  }
113 
114  // bottom Ellipse/Disc (negative z)
115  if (m_type < 0)
116  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
118  (discRot *
119  Amg::AngleAxis3D(-m_thetaMinus + M_PI, Amg::Vector3D(0., 1., 0.))) *
121  cylCenter - (halflengthZ() - m_outerRadius * tan(m_thetaMinus)) *
122  discRot.col(2))),
124  else {
125  if (m_subtractedVolume) {
126  auto subtrVol = std::make_unique<Trk::Volume>(*m_subtractedVolume);
127  Trk::DiscSurface bottomDisc(
129  transform * Amg::AngleAxis3D(M_PI, Amg::Vector3D(1., 0., 0.)) *
131  discBounds());
132  retsf.push_back(std::make_unique<Trk::SubtractedDiscSurface>(
133  bottomDisc, std::make_shared<Trk::VolumeExcluder>(std::move(subtrVol)), false));
134  } else
135  retsf.push_back(std::make_unique<Trk::DiscSurface>(
137  transform * Amg::AngleAxis3D(M_PI, Amg::Vector3D(1., 0., 0.)) *
139  discBounds()));
140  }
141 
142  // top Ellipse/Disc (positive z)
143  if (m_type < 0)
144  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
146  discRot * Amg::AngleAxis3D(m_thetaPlus, Amg::Vector3D(0., 1., 0.)) *
148  cylCenter +
149  (halflengthZ() - m_outerRadius * tan(m_thetaPlus)) * discRot.col(2))),
150  topEllipseBounds()));
151  else {
152  if (m_subtractedVolume) {
153  auto subtrVol = std::make_unique<Trk::Volume>(*m_subtractedVolume);
154  Trk::DiscSurface topDisc(
157  discBounds());
158  retsf.push_back(std::make_unique<Trk::SubtractedDiscSurface>(
159  topDisc, std::make_shared<Trk::VolumeExcluder>(std::move(subtrVol)), false));
160  } else
161  retsf.push_back(std::make_unique<Trk::DiscSurface>(
164  discBounds()));
165  }
166 
167  // outer BevelledCylinder/Plane
168  if (m_type < 0)
169  retsf.push_back(std::make_unique<Trk::CylinderSurface>(
171  else if (m_type < 2)
172  retsf.push_back(std::make_unique<Trk::CylinderSurface>(
174  else
175  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
177  transform *
178  Amg::Translation3D(Amg::Vector3D(this->outerRadius(), 0., 0.)) *
179  Amg::AngleAxis3D(-90 * Gaudi::Units::deg, Amg::Vector3D(0., 0., 1.)) *
180  Amg::AngleAxis3D(-90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
182 
183  // inner BevelledCylinder/Plane
184  if (innerRadius() > s_numericalStable) {
185  if (m_type < 1)
186  retsf.push_back(std::make_unique<Trk::CylinderSurface>(
188  else if (m_type == 2)
189  retsf.push_back(std::make_unique<Trk::CylinderSurface>(
191  else
192  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
194  transform *
195  Amg::Translation3D(Amg::Vector3D(this->innerRadius(), 0., 0.)) *
196  Amg::AngleAxis3D(+90 * Gaudi::Units::deg, Amg::Vector3D(0., 0., 1.)) *
198  -90. * Gaudi::Units::deg, Amg::Vector3D(1., 0., 0.))),
200  }
201 
202  if (std::abs(halfPhiSector() - M_PI) > s_numericalStable) {
203  if (m_type < 0) {
204  // sectorPlane 1 (negative phi)
205  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
207  transform *
208  Amg::AngleAxis3D(-halfPhiSector(), Amg::Vector3D(0., 0., 1.)) *
210  Amg::AngleAxis3D(M_PI / 2, Amg::Vector3D(1., 0., 0.))),
211  sectorTrdBounds()));
212  // sectorPlane 2 (positive phi)
213  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
215  transform *
218  Amg::AngleAxis3D(-M_PI / 2, Amg::Vector3D(1., 0., 0.))),
219  sectorTrdBounds()));
220  } else {
221  // sectorPlane 1 (negative phi)
222  double ri = innerRadius();
223  double ro = outerRadius();
224  if (m_type == 1 || m_type == 3)
225  ri *= 1. / cos(halfPhiSector());
226  if (m_type > 1)
227  ro *= 1. / cos(halfPhiSector());
228  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
230  transform *
231  Amg::AngleAxis3D(-halfPhiSector(), Amg::Vector3D(0., 0., 1.)) *
232  Amg::Translation3D(Amg::Vector3D(0.5 * (ri + ro), 0., 0.)) *
233  Amg::AngleAxis3D(M_PI / 2, Amg::Vector3D(1., 0., 0.))),
234  sectorPlaneBounds()));
235  // sectorPlane 2 (positive phi)
236  retsf.push_back(std::make_unique<Trk::PlaneSurface>(
238  transform *
240  Amg::Translation3D(Amg::Vector3D(0.5 * (ri + ro), 0., 0.)) *
241  Amg::AngleAxis3D(-M_PI / 2, Amg::Vector3D(1., 0., 0.))),
242  sectorPlaneBounds()));
243  }
244  }
245  return retsf;
246 }

◆ deltaRadius()

double Trk::BevelledCylinderVolumeBounds::deltaRadius ( ) const
inline

This method returns the delta radius.

Definition at line 240 of file BevelledCylinderVolumeBounds.h.

240 { return (m_outerRadius-m_innerRadius); }

◆ discBounds()

std::shared_ptr< Trk::DiscBounds > Trk::BevelledCylinderVolumeBounds::discBounds ( ) const
private

This method returns the associated DiscBounds for the bottom/top DiscSurface.

Definition at line 491 of file BevelledCylinderVolumeBounds.cxx.

492 {
493  // adjust radius to make sure all surface covered
494  double outerRadius =
496  return std::make_shared<Trk::DiscBounds>(m_innerRadius, outerRadius, m_halfPhiSector);
497 }

◆ dump() [1/2]

MsgStream & Trk::BevelledCylinderVolumeBounds::dump ( MsgStream &  sl) const
overridevirtual

Output Method for MsgStream.

Implements Trk::VolumeBounds.

Definition at line 553 of file BevelledCylinderVolumeBounds.cxx.

554 {
555  std::stringstream sl_temp;
556  sl_temp << std::setiosflags(std::ios::fixed);
557  sl_temp << std::setprecision(7);
558  sl_temp << "Trk::BevelledCylinderVolumeBounds: (innerR, outerR, "
559  "halfPhiSector, halflengthInZ, thetaMinus, thetaPlus) = ";
560  sl_temp << "(" << m_innerRadius << ", " << m_outerRadius << ", "
561  << m_halfPhiSector << ", " << m_halfZ << ", " << m_thetaMinus << ", "
562  << m_thetaPlus << ")";
563  sl << sl_temp.str();
564  return sl;
565 }

◆ dump() [2/2]

std::ostream & Trk::BevelledCylinderVolumeBounds::dump ( std::ostream &  sl) const
overridevirtual

Output Method for std::ostream.

Implements Trk::VolumeBounds.

Definition at line 568 of file BevelledCylinderVolumeBounds.cxx.

569 {
570  std::stringstream sl_temp;
571  sl_temp << std::setiosflags(std::ios::fixed);
572  sl_temp << std::setprecision(7);
573  sl_temp << "Trk::BevelledCylinderVolumeBounds: (innerR, outerR, "
574  "halfPhiSector, halflengthInZ, thetaMinus, thetaPlus) = ";
575  sl_temp << "(" << m_innerRadius << ", " << m_outerRadius << ", "
576  << m_halfPhiSector << ", " << m_halfZ << m_thetaMinus << ", "
577  << m_thetaPlus << ")";
578  sl << sl_temp.str();
579  return sl;
580 }

◆ halflengthZ()

double Trk::BevelledCylinderVolumeBounds::halflengthZ ( ) const
inline

This method returns the halflengthZ.

Definition at line 242 of file BevelledCylinderVolumeBounds.h.

242 { return m_halfZ; }

◆ halfPhiSector()

double Trk::BevelledCylinderVolumeBounds::halfPhiSector ( ) const
inline

This method returns the halfPhiSector angle.

Definition at line 241 of file BevelledCylinderVolumeBounds.h.

241 { return m_halfPhiSector; }

◆ innerBevelledCylinderBounds()

std::shared_ptr< Trk::CylinderBounds > Trk::BevelledCylinderVolumeBounds::innerBevelledCylinderBounds ( ) const
private

This method returns the associated BevelledCylinderBounds of the inner BevelledCylinderSurfaces.

Definition at line 433 of file BevelledCylinderVolumeBounds.cxx.

434 {
435  return std::make_shared<Trk::CylinderBounds>(m_innerRadius, m_halfPhiSector, m_halfZ);
436 }

◆ innerBevelledPlaneBounds()

std::shared_ptr< Trk::RectangleBounds > Trk::BevelledCylinderVolumeBounds::innerBevelledPlaneBounds ( ) const
private

This method returns the associated plane surface bounds of the inner bevelled surface.

Definition at line 451 of file BevelledCylinderVolumeBounds.cxx.

452 {
453  return std::make_shared<Trk::RectangleBounds>(m_innerRadius * tan(m_halfPhiSector), m_halfZ);
454 }

◆ innerCylinderBounds()

std::shared_ptr< Trk::CylinderBounds > Trk::BevelledCylinderVolumeBounds::innerCylinderBounds ( ) const
private

This method returns the associated CylinderBounds of the inner CylinderSurfaces.

Definition at line 479 of file BevelledCylinderVolumeBounds.cxx.

480 {
481  return std::make_shared<Trk::CylinderBounds>(m_innerRadius, m_halfPhiSector, m_halfZ);
482 }

◆ innerRadius()

double Trk::BevelledCylinderVolumeBounds::innerRadius ( ) const
inline

This method returns the inner radius.

Definition at line 237 of file BevelledCylinderVolumeBounds.h.

237 { return m_innerRadius; }

◆ inside()

bool Trk::BevelledCylinderVolumeBounds::inside ( const Amg::Vector3D pos,
double  tol = 0. 
) const
inlineoverridevirtual

This method checks if position in the 3D volume frame is inside the cylinder.

Implements Trk::VolumeBounds.

Definition at line 220 of file BevelledCylinderVolumeBounds.h.

221  {
222  double ros = pos.perp();
223  bool insidePhi = fabs(pos.phi()) <= m_halfPhiSector + tol;
224  double cphi = cos(pos.phi());
225  bool insideR = insidePhi;
226  if (m_type < 1) insideR = insidePhi ? ((ros >= m_innerRadius - tol ) && (ros <= m_outerRadius + tol)) : false;
227  else if (m_type == 1 ) insideR = insidePhi ? ((ros>= m_innerRadius/cphi-tol)&&(ros<=m_outerRadius+tol)):false;
228  else if (m_type == 2 ) insideR = insidePhi ? ((ros>= m_innerRadius-tol)&&(ros<=m_outerRadius/cphi+tol)):false;
229  else if (m_type == 3 ) insideR = insidePhi ? ((ros>= m_innerRadius/cphi-tol)&&(ros<=m_outerRadius/cphi+tol)):false;
230 // bool insideZ = insideR ? (fabs(pos.z()) <= m_halfZ + tol ) : false ;
231  bool insideZ = insideR ? ((pos.z()<=m_halfZ-(pos.x()+m_outerRadius)*tan(m_thetaPlus) + tol)
232  && ( pos.z()>=-m_halfZ+(pos.x()+m_outerRadius)*tan(m_thetaMinus) - tol)) : false ;
233 
234  return insideZ;
235  }

◆ mediumRadius()

double Trk::BevelledCylinderVolumeBounds::mediumRadius ( ) const
inline

This method returns the medium radius.

Definition at line 239 of file BevelledCylinderVolumeBounds.h.

239 { return 0.5*(m_innerRadius+m_outerRadius); }

◆ operator=()

Trk::BevelledCylinderVolumeBounds & Trk::BevelledCylinderVolumeBounds::operator= ( const BevelledCylinderVolumeBounds cylbo)

Assignment operator.

Definition at line 82 of file BevelledCylinderVolumeBounds.cxx.

84 {
85  if (this != &cylbo) {
86  m_innerRadius = cylbo.m_innerRadius;
87  m_outerRadius = cylbo.m_outerRadius;
88  m_halfPhiSector = cylbo.m_halfPhiSector;
89  m_halfZ = cylbo.m_halfZ;
90  m_thetaMinus = cylbo.m_thetaMinus;
91  m_thetaPlus = cylbo.m_thetaPlus;
92  m_type = cylbo.m_type;
93  m_subtractedVolume.store(nullptr);
94  }
95  return *this;
96 }

◆ outerBevelledCylinderBounds()

std::shared_ptr< Trk::CylinderBounds > Trk::BevelledCylinderVolumeBounds::outerBevelledCylinderBounds ( ) const
private

This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.

Definition at line 439 of file BevelledCylinderVolumeBounds.cxx.

440 {
441  return std::make_shared<Trk::CylinderBounds>(m_outerRadius, m_halfPhiSector, m_halfZ);
442 }

◆ outerBevelledPlaneBounds()

std::shared_ptr< Trk::RectangleBounds > Trk::BevelledCylinderVolumeBounds::outerBevelledPlaneBounds ( ) const
private

This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.

Definition at line 445 of file BevelledCylinderVolumeBounds.cxx.

446 {
447  return std::make_shared<Trk::RectangleBounds>(m_outerRadius * tan(m_halfPhiSector), m_halfZ);
448 }

◆ outerCylinderBounds()

std::shared_ptr< Trk::CylinderBounds > Trk::BevelledCylinderVolumeBounds::outerCylinderBounds ( ) const
private

This method returns the associated CylinderBounds of the outer CylinderSurfaces.

Definition at line 485 of file BevelledCylinderVolumeBounds.cxx.

486 {
487  return std::make_shared<Trk::CylinderBounds>(m_outerRadius, m_halfPhiSector, m_halfZ);
488 }

◆ outerRadius()

double Trk::BevelledCylinderVolumeBounds::outerRadius ( ) const
inline

This method returns the outer radius.

Definition at line 238 of file BevelledCylinderVolumeBounds.h.

238 { return m_outerRadius; }

◆ sectorPlaneBounds()

std::shared_ptr< Trk::RectangleBounds > Trk::BevelledCylinderVolumeBounds::sectorPlaneBounds ( ) const
private

Definition at line 508 of file BevelledCylinderVolumeBounds.cxx.

509 {
510  double ri = innerRadius();
511  double ro = outerRadius();
512  if (m_type == 1 || m_type == 3)
513  ri *= 1. / cos(halfPhiSector());
514  if (m_type > 1)
515  ro *= 1. / cos(halfPhiSector());
516  return std::make_shared<Trk::RectangleBounds>(0.5 * (ro - ri), m_halfZ);
517 }

◆ sectorTrdBounds()

std::shared_ptr< Trk::TrapezoidBounds > Trk::BevelledCylinderVolumeBounds::sectorTrdBounds ( ) const
private

This method returns the associated PlaneBounds limiting a sectoral BevelledCylinderVolume.

Definition at line 500 of file BevelledCylinderVolumeBounds.cxx.

501 {
502  return std::make_shared<Trk::TrapezoidBounds>(
504  m_thetaPlus);
505 }

◆ subtractedVolume()

Trk::Volume * Trk::BevelledCylinderVolumeBounds::subtractedVolume ( ) const
private

This method returns the bevelled area volume.

Definition at line 520 of file BevelledCylinderVolumeBounds.cxx.

521 {
522  if (m_type < 1)
523  return nullptr;
524 
525  double tp = tan(m_halfPhiSector);
526  std::unique_ptr<Trk::Volume> volIn;
527  std::unique_ptr<Trk::Volume> volOut;
528  if (m_type == 1 || m_type == 3) { // cut inner cylinder
529  volIn = std::make_unique<Trk::Volume>(
530  nullptr,
531  std::make_shared<Trk::CuboidVolumeBounds>(m_innerRadius, m_innerRadius * tp + 0.1, m_halfZ + 0.1));
532  }
533  if (m_type > 1) {
534  double hz = m_outerRadius * (1. / cos(m_halfPhiSector) - 1.);
535  volOut = std::make_unique<Trk::Volume>(
536  std::make_unique<Amg::Transform3D>(Amg::Translation3D(Amg::Vector3D(m_outerRadius + hz, 0., 0.))),
537  std::make_shared<Trk::CuboidVolumeBounds>(hz, m_outerRadius * tp + 0.1, m_halfZ + 0.1));
538  }
539 
540  if (!volIn){
541  return volOut.release();
542  }
543  else if (!volOut){
544  return volIn.release();
545  }
546  return new Trk::Volume(
547  nullptr, std::make_shared<Trk::CombinedVolumeBounds>(std::move(volIn), std::move(volOut), false));
548 }

◆ thetaMinus()

double Trk::BevelledCylinderVolumeBounds::thetaMinus ( ) const
inline

This method returns the thetaMinus.

Definition at line 243 of file BevelledCylinderVolumeBounds.h.

243 { return m_thetaMinus; }

◆ thetaPlus()

double Trk::BevelledCylinderVolumeBounds::thetaPlus ( ) const
inline

This method returns the thetaPlus.

Definition at line 244 of file BevelledCylinderVolumeBounds.h.

244 { return m_thetaPlus; }

◆ topEllipseBounds()

std::shared_ptr< Trk::EllipseBounds > Trk::BevelledCylinderVolumeBounds::topEllipseBounds ( ) const
private

This method returns the associated EllipseBounds for the bottom/top EllipseSurface.

Definition at line 468 of file BevelledCylinderVolumeBounds.cxx.

469 {
470  return std::make_shared<Trk::EllipseBounds>(
476 }

◆ type()

int Trk::BevelledCylinderVolumeBounds::type ( ) const
inline

This method returns the type.

Definition at line 245 of file BevelledCylinderVolumeBounds.h.

245 { return m_type; }

Member Data Documentation

◆ m_boundaryAccessors

BevelledCylinderVolumeBoundaryAccessors Trk::BevelledCylinderVolumeBounds::m_boundaryAccessors
private

Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () with TrkMagFieldUtils.

Definition at line 209 of file BevelledCylinderVolumeBounds.h.

◆ m_halfPhiSector

double Trk::BevelledCylinderVolumeBounds::m_halfPhiSector
private

Definition at line 197 of file BevelledCylinderVolumeBounds.h.

◆ m_halfZ

double Trk::BevelledCylinderVolumeBounds::m_halfZ
private

Definition at line 198 of file BevelledCylinderVolumeBounds.h.

◆ m_innerRadius

double Trk::BevelledCylinderVolumeBounds::m_innerRadius
private

Definition at line 195 of file BevelledCylinderVolumeBounds.h.

◆ m_outerRadius

double Trk::BevelledCylinderVolumeBounds::m_outerRadius
private

Definition at line 196 of file BevelledCylinderVolumeBounds.h.

◆ m_subtractedVolume

CxxUtils::CachedUniquePtr<Trk::Volume> Trk::BevelledCylinderVolumeBounds::m_subtractedVolume
private

Definition at line 214 of file BevelledCylinderVolumeBounds.h.

◆ m_thetaMinus

double Trk::BevelledCylinderVolumeBounds::m_thetaMinus
private

Definition at line 199 of file BevelledCylinderVolumeBounds.h.

◆ m_thetaPlus

double Trk::BevelledCylinderVolumeBounds::m_thetaPlus
private

Definition at line 200 of file BevelledCylinderVolumeBounds.h.

◆ m_type

int Trk::BevelledCylinderVolumeBounds::m_type
private

Definition at line 201 of file BevelledCylinderVolumeBounds.h.

◆ s_numericalStable

const double Trk::BevelledCylinderVolumeBounds::s_numericalStable
staticprivate
Initial value:

numerical stability

Definition at line 212 of file BevelledCylinderVolumeBounds.h.


The documentation for this class was generated from the following files:
Trk::BevelledCylinderVolumeBounds::discBounds
std::shared_ptr< DiscBounds > discBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
Definition: BevelledCylinderVolumeBounds.cxx:491
Trk::BevelledCylinderVolumeBoundaryAccessors::sectoralBevelledTubeAccessor
const SixObjectsAccessor & sectoralBevelledTubeAccessor(SectoralBevelledTubeAccessorType stat) const
Return the accessor for the sectoral tube case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:106
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::BevelledCylinderVolumeBounds::mediumRadius
double mediumRadius() const
This method returns the medium radius.
Definition: BevelledCylinderVolumeBounds.h:239
Trk::BevelledCylinderVolumeBounds::outerRadius
double outerRadius() const
This method returns the outer radius.
Definition: BevelledCylinderVolumeBounds.h:238
Trk::BevelledCylinderVolumeBoundaryAccessors::bevelledcylinderAccessor
const ThreeObjectsAccessor & bevelledcylinderAccessor(BevelledCylinderAccessorType cat) const
Return the accessor for the cylindrical case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:97
Trk::BevelledTubeRincreaseZincrease
@ BevelledTubeRincreaseZincrease
Accessor type [ 2,1,0,3 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:29
Trk::BevelledCylinderVolumeBoundaryAccessors::sectoralBevelledCylinderAccessor
const FiveObjectsAccessor & sectoralBevelledCylinderAccessor(SectoralBevelledCylinderAccessorType scat) const
Return the accessor for the sectoral cylinciracl case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:103
Trk::BevelledCylinderVolumeBounds::m_thetaMinus
double m_thetaMinus
Definition: BevelledCylinderVolumeBounds.h:199
Trk::BevelledCylinderVolumeBounds::type
int type() const
This method returns the type.
Definition: BevelledCylinderVolumeBounds.h:245
Trk::BevelledTubeRdecreaseZincrease
@ BevelledTubeRdecreaseZincrease
Accessor type [ 3,1,0,2 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:33
Trk::BevelledCylinderPositiveFace
@ BevelledCylinderPositiveFace
Pos.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:21
Trk::BevelledCylinderNegativeFace
@ BevelledCylinderNegativeFace
Neg.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:22
Trk::BevelledCylinderVolumeBounds::s_numericalStable
static const double s_numericalStable
numerical stability
Definition: BevelledCylinderVolumeBounds.h:212
Trk::BevelledCylinderVolumeBounds::m_type
int m_type
Definition: BevelledCylinderVolumeBounds.h:201
Trk::BevelledCylinderVolumeBounds::m_outerRadius
double m_outerRadius
Definition: BevelledCylinderVolumeBounds.h:196
M_PI
#define M_PI
Definition: ActiveFraction.h:11
deg
#define deg
Definition: SbPolyhedron.cxx:17
Trk::BevelledCylinderVolumeBounds::BevelledCylinderVolumeBounds
BevelledCylinderVolumeBounds()
Default Constructor.
Definition: BevelledCylinderVolumeBounds.cxx:34
mc.diff
diff
Definition: mc.SFGenPy8_MuMu_DD.py:14
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Trk::BevelledTubeZincreaseRincrease
@ BevelledTubeZincreaseRincrease
Accessor type [ 1,2,0,3 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:31
Trk::BevelledTubeOutsideRminRdecrease
@ BevelledTubeOutsideRminRdecrease
Accessor type [ 3,1,0,2] - inverse case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:37
Trk::BevelledCylinderVolumeBounds::sectorPlaneBounds
std::shared_ptr< RectangleBounds > sectorPlaneBounds() const
Definition: BevelledCylinderVolumeBounds.cxx:508
Trk::BevelledTubeOutsideRmaxRincrease
@ BevelledTubeOutsideRmaxRincrease
Accessor type [ 2,1,0,3 ] - inverse case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:38
Trk::DiscSurface
Definition: DiscSurface.h:54
Trk::BevelledTubeOutsideZminZdecrease
@ BevelledTubeOutsideZminZdecrease
Accessor type [ 0,3,2,1 ] - inverse case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:39
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
Trk::BevelledCylinderVolumeBounds::m_innerRadius
double m_innerRadius
Definition: BevelledCylinderVolumeBounds.h:195
Trk::BevelledCylinderVolumeBounds::outerBevelledCylinderBounds
std::shared_ptr< CylinderBounds > outerBevelledCylinderBounds() const
This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.
Definition: BevelledCylinderVolumeBounds.cxx:439
Trk::BevelledCylinderVolumeBounds::outerCylinderBounds
std::shared_ptr< CylinderBounds > outerCylinderBounds() const
This method returns the associated CylinderBounds of the outer CylinderSurfaces.
Definition: BevelledCylinderVolumeBounds.cxx:485
python.SystemOfUnits.millimeter
float millimeter
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration # This software is distribute...
Definition: SystemOfUnits.py:61
Trk::BevelledCylinderVolumeBounds::bottomEllipseBounds
std::shared_ptr< EllipseBounds > bottomEllipseBounds() const
This method returns the associated EllipseBounds for the bottom/top EllipseSurface.
Definition: BevelledCylinderVolumeBounds.cxx:457
Trk::BevelledTubeZdecreaseRincrease
@ BevelledTubeZdecreaseRincrease
Accessor type [ 0,2,1,3 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:32
Trk::BevelledCylinderVolumeBounds::m_halfZ
double m_halfZ
Definition: BevelledCylinderVolumeBounds.h:198
Trk::StandardSectoralBevelledCylinder
@ StandardSectoralBevelledCylinder
Definition: BevelledCylinderVolumeBoundaryAccessors.h:48
Trk::BevelledCylinderVolumeBounds::m_thetaPlus
double m_thetaPlus
Definition: BevelledCylinderVolumeBounds.h:200
Trk::BevelledTubeRdecreaseZdecrease
@ BevelledTubeRdecreaseZdecrease
Accessor type [ 3,0,1,2 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:34
beamspotman.posZ
posZ
Definition: beamspotman.py:1624
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
Trk::BevelledTubeRincreaseZdecrease
@ BevelledTubeRincreaseZdecrease
Accessor type [ 2,0,1,3 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:30
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
Trk::BevelledTubeZdecreaseRdecrease
@ BevelledTubeZdecreaseRdecrease
Accessor type [ 0,3,1,2 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:36
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
Trk::BevelledTubeZincreaseRdecrease
@ BevelledTubeZincreaseRdecrease
Accessor type [ 1,3,0,2 ].
Definition: BevelledCylinderVolumeBoundaryAccessors.h:35
Trk::BevelledCylinderVolumeBoundaryAccessors::bevelledtubeAccessor
const FourObjectsAccessor & bevelledtubeAccessor(BevelledTubeAccessorType tat) const
Return the accessor for the tube case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:100
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::BevelledCylinderVolumeBounds::topEllipseBounds
std::shared_ptr< EllipseBounds > topEllipseBounds() const
This method returns the associated EllipseBounds for the bottom/top EllipseSurface.
Definition: BevelledCylinderVolumeBounds.cxx:468
Trk::BevelledCylinderZincrease
@ BevelledCylinderZincrease
Cylinder hit, then pos.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:19
Trk::BevelledCylinderVolumeBounds::innerBevelledPlaneBounds
std::shared_ptr< RectangleBounds > innerBevelledPlaneBounds() const
This method returns the associated plane surface bounds of the inner bevelled surface.
Definition: BevelledCylinderVolumeBounds.cxx:451
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::BevelledCylinderVolumeBounds::innerRadius
double innerRadius() const
This method returns the inner radius.
Definition: BevelledCylinderVolumeBounds.h:237
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::BevelledCylinderVolumeBounds::m_subtractedVolume
CxxUtils::CachedUniquePtr< Trk::Volume > m_subtractedVolume
Definition: BevelledCylinderVolumeBounds.h:214
Trk::BevelledCylinderVolumeBounds::sectorTrdBounds
std::shared_ptr< TrapezoidBounds > sectorTrdBounds() const
This method returns the associated PlaneBounds limiting a sectoral BevelledCylinderVolume.
Definition: BevelledCylinderVolumeBounds.cxx:500
Trk::BevelledBoundaryIntersector
Definition: BevelledCylinderVolumeBounds.h:27
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::BevelledCylinderVolumeBounds::innerCylinderBounds
std::shared_ptr< CylinderBounds > innerCylinderBounds() const
This method returns the associated CylinderBounds of the inner CylinderSurfaces.
Definition: BevelledCylinderVolumeBounds.cxx:479
Trk::BevelledCylinderVolumeBounds::innerBevelledCylinderBounds
std::shared_ptr< CylinderBounds > innerBevelledCylinderBounds() const
This method returns the associated BevelledCylinderBounds of the inner BevelledCylinderSurfaces.
Definition: BevelledCylinderVolumeBounds.cxx:433
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Trk::BevelledTubeOutsideZmaxZincrease
@ BevelledTubeOutsideZmaxZincrease
Accessor type [ 1,3,2,0 ] - inverse case.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:40
Trk::BevelledCylinderVolumeBounds::subtractedVolume
Volume * subtractedVolume() const
This method returns the bevelled area volume.
Definition: BevelledCylinderVolumeBounds.cxx:520
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
fitman.hz
def hz
Definition: fitman.py:516
makeComparison.deltaZ
int deltaZ
Definition: makeComparison.py:46
Trk::BevelledCylinderVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflengthZ.
Definition: BevelledCylinderVolumeBounds.h:242
Trk::BevelledCylinderZdecrease
@ BevelledCylinderZdecrease
Cylinder hit, the neg.
Definition: BevelledCylinderVolumeBoundaryAccessors.h:20
Trk::BevelledCylinderVolumeBounds::halfPhiSector
double halfPhiSector() const
This method returns the halfPhiSector angle.
Definition: BevelledCylinderVolumeBounds.h:241
Trk::Volume
Definition: Volume.h:36
Trk::BevelledCylinderVolumeBounds::outerBevelledPlaneBounds
std::shared_ptr< RectangleBounds > outerBevelledPlaneBounds() const
This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.
Definition: BevelledCylinderVolumeBounds.cxx:445
makeComparison.deltaR
float deltaR
Definition: makeComparison.py:36
Trk::BevelledCylinderVolumeBounds::m_boundaryAccessors
BevelledCylinderVolumeBoundaryAccessors m_boundaryAccessors
Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () w...
Definition: BevelledCylinderVolumeBounds.h:209
Trk::StandardSectoralBevelledTube
@ StandardSectoralBevelledTube
Definition: BevelledCylinderVolumeBoundaryAccessors.h:55
Trk::VolumeBounds::VolumeBounds
VolumeBounds()
Default Constructor.
Definition: VolumeBounds.h:48
Trk::BevelledCylinderVolumeBounds::m_halfPhiSector
double m_halfPhiSector
Definition: BevelledCylinderVolumeBounds.h:197