ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::CutoutCylinderVolumeBounds Class Reference

Class which implements a cutout cylinder. More...

#include <Acts/Geometry/CutoutCylinderVolumeBounds.hpp>

Inheritance diagram for Acts::CutoutCylinderVolumeBounds:
[legend]
Collaboration diagram for Acts::CutoutCylinderVolumeBounds:
[legend]

Public Types

enum  BoundValues : int {
  eMinR = 0 , eMedR = 1 , eMaxR = 2 , eHalfLengthZ = 3 ,
  eHalfLengthZcutout = 4 , eSize
}
 for streaming and access More...
Public Types inherited from Acts::VolumeBounds
enum class  BoundsType {
  eCone , eCuboid , eCutoutCylinder , eCylinder ,
  eGenericCuboid , eTrapezoid , eDiamond , eOther
}
 This is nested to the VolumeBounds, as also SurfaceBounds will have Bounds Type. More...

Public Member Functions

 CutoutCylinderVolumeBounds (const std::array< double, eSize > &values) noexcept(false)
 Constructor - from a fixed size array.
 CutoutCylinderVolumeBounds (double rmin, double rmed, double rmax, double hlZ, double hlZc) noexcept(false)
 Constructor from defining parameters.
Volume::BoundingBox boundingBox (const Transform3 *trf=nullptr, const Vector3 &envelope={0, 0, 0}, const Volume *entity=nullptr) const final
 Construct bounding box for this shape.
std::vector< AxisDirectioncanonicalAxes () const override
 Get the canonical binning direction, i.e.
double get (BoundValues bValue) const
 Access to the bound values.
bool inside (const Vector3 &gpos, double tol=0) const override
 Inside method to test whether a point is inside the shape.
std::vector< OrientedSurfaceorientedSurfaces (const Transform3 &transform=Transform3::Identity()) const override
 Oriented surfaces, i.e.
std::ostream & toStream (std::ostream &sl) const override
 Write information about this instance to an outstream.
VolumeBounds::BoundsType type () const final
 Return the bounds type - for persistency optimization.
std::vector< double > values () const final
 Return the bound values as dynamically sized vector.
Public Member Functions inherited from Acts::VolumeBounds
 VolumeBounds ()=default
virtual ~VolumeBounds ()=default
virtual double referenceBorder (AxisDirection aDir) const
 Binning borders in double.
virtual Vector3 referenceOffset (AxisDirection aDir) const
 Binning offset - overloaded for some R-binning types.

Additional Inherited Members

Static Public Attributes inherited from Acts::VolumeBounds
static const std::vector< std::string > s_boundsTypeNames
 Static member to get the name of the BoundsType.

Detailed Description

Class which implements a cutout cylinder.

This shape is basically a cylinder, with another, smaller cylinder subtracted from the center. ------------------— rmax | | | |------—| | rmed | | | | ---— ---— rmin – hlZc – ------— hlZ ----—

Todo
add sectoral cutouts

Member Enumeration Documentation

◆ BoundValues

for streaming and access

Enumerator
eMinR 
eMedR 
eMaxR 
eHalfLengthZ 
eHalfLengthZcutout 
eSize 

Constructor & Destructor Documentation

◆ CutoutCylinderVolumeBounds() [1/2]

Acts::CutoutCylinderVolumeBounds::CutoutCylinderVolumeBounds ( double rmin,
double rmed,
double rmax,
double hlZ,
double hlZc )

Constructor from defining parameters.

Parameters
rminMinimum radius at the "choke points"
rmedThe medium radius (outer radius of the cutout)
rmaxThe outer radius of the overall shape
hlZThe longer halflength of the shape
hlZcThe cutout halflength of the shape

◆ CutoutCylinderVolumeBounds() [2/2]

Acts::CutoutCylinderVolumeBounds::CutoutCylinderVolumeBounds ( const std::array< double, eSize > & values)
explicit

Constructor - from a fixed size array.

Parameters
valuesThe bound values

Member Function Documentation

◆ boundingBox()

Volume::BoundingBox Acts::CutoutCylinderVolumeBounds::boundingBox ( const Transform3 * trf = nullptr,
const Vector3 & envelope = {0, 0, 0},
const Volume * entity = nullptr ) const
finalvirtual

Construct bounding box for this shape.

Parameters
trfOptional transform
envelopeOptional envelope to add / subtract from min/max
entityEntity to associate this bounding box with
Returns
Constructed bounding box

Implements Acts::VolumeBounds.

◆ canonicalAxes()

std::vector< AxisDirection > Acts::CutoutCylinderVolumeBounds::canonicalAxes ( ) const
overridevirtual

Get the canonical binning direction, i.e.

the axis values that fully describe the shape's extent

Returns
vector of canonical binning values

Reimplemented from Acts::VolumeBounds.

◆ get()

double Acts::CutoutCylinderVolumeBounds::get ( BoundValues bValue) const

Access to the bound values.

Parameters
bValuethe class nested enum for the array access
Returns
Value of the specified bound parameter

◆ inside()

bool Acts::CutoutCylinderVolumeBounds::inside ( const Vector3 & gpos,
double tol = 0 ) const
overridevirtual

Inside method to test whether a point is inside the shape.

Parameters
gposThe point to test
tolThe tolerance to test with
Returns
Whether the point is inside or not.

Implements Acts::VolumeBounds.

◆ orientedSurfaces()

std::vector< OrientedSurface > Acts::CutoutCylinderVolumeBounds::orientedSurfaces ( const Transform3 & transform = Transform3::Identity()) const
overridevirtual

Oriented surfaces, i.e.

the decomposed boundary surfaces and the according navigation direction into the volume given the normal vector on the surface

Parameters
transformis the 3D transform to be applied to the boundary surfaces to position them in 3D space

It will throw an exception if the orientation prescription is not adequate

Returns
a vector of surfaces bounding this volume

Implements Acts::VolumeBounds.

◆ toStream()

std::ostream & Acts::CutoutCylinderVolumeBounds::toStream ( std::ostream & sl) const
overridevirtual

Write information about this instance to an outstream.

Parameters
slThe outstream
Returns
The outstream

Implements Acts::VolumeBounds.

◆ type()

VolumeBounds::BoundsType Acts::CutoutCylinderVolumeBounds::type ( ) const
finalvirtual

Return the bounds type - for persistency optimization.

Returns
is a BoundsType enum

Implements Acts::VolumeBounds.

◆ values()

std::vector< double > Acts::CutoutCylinderVolumeBounds::values ( ) const
finalvirtual

Return the bound values as dynamically sized vector.

Returns
this returns a copy of the internal values

Implements Acts::VolumeBounds.