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

Volume bound class for describing conical volumes either with cylindrical inlay or outer boundary, it also allows for a sectoral description. More...

#include <Acts/Geometry/ConeVolumeBounds.hpp>

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

Public Types

enum  BoundValues : unsigned int {
  eInnerAlpha = 0 , eInnerOffsetZ = 1 , eOuterAlpha = 2 , eOuterOffsetZ = 3 ,
  eHalfLengthZ = 4 , eAveragePhi = 5 , eHalfPhiSector = 6 , eSize
}
 for readability 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

 ConeVolumeBounds ()=delete
 ConeVolumeBounds (const ConeVolumeBounds &cobo)=default
 Copy constructor.
 ConeVolumeBounds (const std::array< double, eSize > &values) noexcept(false)
 Constructor - from a fixed size array.
 ConeVolumeBounds (double cylinderR, double alpha, double offsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false)
 Constructor - for general cylidner-cone setups.
 ConeVolumeBounds (double innerAlpha, double innerOffsetZ, double outerAlpha, double outerOffsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false)
 Constructor - for general cone-cone setups.
 ~ConeVolumeBounds () override=default
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.
double get (BoundValues bValue) const
 Access to the bound values.
double innerRmax () const
 Return the derived inner maximum radius.
double innerRmin () const
 Return the derived inner minimum radius.
double innerTanAlpha () const
 Return the derived inner tangent of the cone opening angle.
bool inside (const Vector3 &pos, double tol=0.) const final
 This method checks if position in the 3D volume frame is inside the cylinder.
ConeVolumeBoundsoperator= (const ConeVolumeBounds &cobo)=default
 Assignment operator.
std::vector< OrientedSurfaceorientedSurfaces (const Transform3 &transform=Transform3::Identity()) const final
 Oriented surfaces, i.e.
double outerRmax () const
 Return the derived outer maximum radius.
double outerRmin () const
 Return the derived outer minimum radius.
double outerTanAlpha () const
 Return the derived outer tangent of the cone opening angle.
std::ostream & toStream (std::ostream &os) const final
 Output Method for std::ostream.
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 std::vector< AxisDirectioncanonicalAxes () const
 Get the canonical axis direction that fully describe the shape's extent.
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

Volume bound class for describing conical volumes either with cylindrical inlay or outer boundary, it also allows for a sectoral description.

Member Enumeration Documentation

◆ BoundValues

for readability

Enumerator
eInnerAlpha 
eInnerOffsetZ 
eOuterAlpha 
eOuterOffsetZ 
eHalfLengthZ 
eAveragePhi 
eHalfPhiSector 
eSize 

Constructor & Destructor Documentation

◆ ConeVolumeBounds() [1/5]

Acts::ConeVolumeBounds::ConeVolumeBounds ( )
delete

◆ ConeVolumeBounds() [2/5]

Acts::ConeVolumeBounds::ConeVolumeBounds ( double innerAlpha,
double innerOffsetZ,
double outerAlpha,
double outerOffsetZ,
double halflengthZ,
double averagePhi,
double halfPhiSector )

Constructor - for general cone-cone setups.

Parameters
innerAlphaThe opening angle of the inner cone (0 if no cone)
innerOffsetZThe tip z position in of the inner cone, w.r.t center
outerAlphaThe opening angle of the outer cone (0 if no cone)
outerOffsetZThe tip z position in of the outer cone, w.r.t center
halflengthZThe minimum z value of the inner and outer cones
averagePhiThe phi orientation of the sector
halfPhiSectorThe opening angle phi sector

◆ ConeVolumeBounds() [3/5]

Acts::ConeVolumeBounds::ConeVolumeBounds ( double cylinderR,
double alpha,
double offsetZ,
double halflengthZ,
double averagePhi,
double halfPhiSector )

Constructor - for general cylidner-cone setups.

Parameters
cylinderRThe inner radius of the cylinder
alphaThe opening angle of the cone (0 if no cone)
offsetZThe tip z position in of the cone, w.r.t center
halflengthZThe minimum z value of the inner and outer cones
averagePhiThe phi orientation of the sector (defaulted to 0)
halfPhiSectorThe opening angle phi sector
Note
depending on cylinderR > coneR it is constructing a cone with cylindrical cutout or a cylinder with conical cutout

◆ ConeVolumeBounds() [4/5]

Acts::ConeVolumeBounds::ConeVolumeBounds ( const std::array< double, eSize > & values)
explicitnoexcept

Constructor - from a fixed size array.

Parameters
valuesThe bound values

◆ ConeVolumeBounds() [5/5]

Acts::ConeVolumeBounds::ConeVolumeBounds ( const ConeVolumeBounds & cobo)
default

Copy constructor.

Parameters
coboCone volume bounds to copy

◆ ~ConeVolumeBounds()

Acts::ConeVolumeBounds::~ConeVolumeBounds ( )
overridedefault

Member Function Documentation

◆ boundingBox()

Volume::BoundingBox Acts::ConeVolumeBounds::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.

◆ get()

double Acts::ConeVolumeBounds::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

◆ innerRmax()

double Acts::ConeVolumeBounds::innerRmax ( ) const

Return the derived inner maximum radius.

Returns
Inner maximum radius at the largest z position

◆ innerRmin()

double Acts::ConeVolumeBounds::innerRmin ( ) const

Return the derived inner minimum radius.

Returns
Inner minimum radius at the smallest z position

◆ innerTanAlpha()

double Acts::ConeVolumeBounds::innerTanAlpha ( ) const

Return the derived inner tangent of the cone opening angle.

Returns
Tangent of the inner cone opening angle

◆ inside()

bool Acts::ConeVolumeBounds::inside ( const Vector3 & pos,
double tol = 0. ) const
finalvirtual

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

Parameters
posis the position in volume frame to be checked
tolis the absolute tolerance to be applied
Returns
True if the position is inside the cone volume bounds

Implements Acts::VolumeBounds.

◆ operator=()

ConeVolumeBounds & Acts::ConeVolumeBounds::operator= ( const ConeVolumeBounds & cobo)
default

Assignment operator.

Parameters
coboCone volume bounds to assign
Returns
Reference to this object

◆ orientedSurfaces()

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

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.

◆ outerRmax()

double Acts::ConeVolumeBounds::outerRmax ( ) const

Return the derived outer maximum radius.

Returns
Outer maximum radius at the largest z position

◆ outerRmin()

double Acts::ConeVolumeBounds::outerRmin ( ) const

Return the derived outer minimum radius.

Returns
Outer minimum radius at the smallest z position

◆ outerTanAlpha()

double Acts::ConeVolumeBounds::outerTanAlpha ( ) const

Return the derived outer tangent of the cone opening angle.

Returns
Tangent of the outer cone opening angle

◆ toStream()

std::ostream & Acts::ConeVolumeBounds::toStream ( std::ostream & os) const
finalvirtual

Output Method for std::ostream.

Parameters
osis ostream operator to be dumped into
Returns
Reference to the output stream after writing

Implements Acts::VolumeBounds.

◆ type()

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

Return the bounds type - for persistency optimization.

Returns
is a BoundsType enum

Implements Acts::VolumeBounds.

◆ values()

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

Return the bound values as dynamically sized vector.

Returns
this returns a copy of the internal values

Implements Acts::VolumeBounds.