ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::VolumeBounds Class Referenceabstract

#include <acts/blob/master/Core/include/Acts/Geometry/VolumeBounds.hpp>

+ Inheritance diagram for Acts::VolumeBounds:

Public Types

enum  BoundsType : int {
  eCone = 0, eCuboid = 1, eCutoutCylinder = 2, eCylinder = 3,
  eGenericCuboid = 4, eTrapezoid = 5, eOther = 6
}
 

Public Member Functions

 VolumeBounds ()=default
 
virtual ~VolumeBounds ()=default
 
virtual BoundsType type () const =0
 
virtual std::vector< double > values () const =0
 
virtual bool inside (const Vector3D &gpos, double tol=0.) const =0
 
virtual SurfacePtrVector decomposeToSurfaces (const Transform3D *transform) const =0
 
virtual Volume::BoundingBox boundingBox (const Transform3D *trf=nullptr, const Vector3D &envelope={0, 0, 0}, const Volume *entity=nullptr) const =0
 
virtual Vector3D binningOffset (BinningValue bValue) const
 Binning offset - overloaded for some R-binning types.
 
virtual double binningBorder (BinningValue bValue) const
 
virtual std::ostream & toStream (std::ostream &sl) const =0
 

Detailed Description

Pure Absract Base Class for Volume bounds.

Acts::VolumeBounds are a set of up to six confining Surfaces that are stored in a std::vector. Each type of Acts::VolumeBounds has to implement a decomposeToSurfaces() and a inside() method.

The orientation of the Surfaces are in a way that the normal vector points to the outside world.

The Volume, retrieving a set of Surfaces from the VolumeBounds, can turn the Surfaces into BoundarySurfaces.

Definition at line 43 of file VolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 43 of file VolumeBounds.hpp

Member Enumeration Documentation

This is nested to the VolumeBounds, as also SurfaceBounds will have Bounds Type.

Enumerator:
eCone 
eCuboid 
eCutoutCylinder 
eCylinder 
eGenericCuboid 
eTrapezoid 
eOther 

Definition at line 48 of file VolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 48 of file VolumeBounds.hpp

Constructor & Destructor Documentation

Acts::VolumeBounds::VolumeBounds ( )
default
virtual Acts::VolumeBounds::~VolumeBounds ( )
virtualdefault

Member Function Documentation

double Acts::VolumeBounds::binningBorder ( BinningValue  bValue) const
inlinevirtual

Binning borders in double

Parameters
bValueis the binning schema used
Returns
float offset to be used for the binning

Reimplemented in Acts::CylinderVolumeBounds.

Definition at line 126 of file VolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 126 of file VolumeBounds.hpp

Referenced by Acts::CylinderVolumeBounds::binningBorder().

+ Here is the caller graph for this function:

Vector3D Acts::VolumeBounds::binningOffset ( BinningValue  bValue) const
inlinevirtual

Binning offset - overloaded for some R-binning types.

Binning offset - overloaded for some R-binning types

Parameters
bValueis the binning schema used
Returns
vector 3D to be used for the binning

Reimplemented in Acts::CylinderVolumeBounds.

Definition at line 121 of file VolumeBounds.hpp.

View newest version in sPHENIX GitHub at line 121 of file VolumeBounds.hpp

Referenced by Acts::CylinderVolumeBounds::binningOffset().

+ Here is the caller graph for this function:

virtual Volume::BoundingBox Acts::VolumeBounds::boundingBox ( const Transform3D trf = nullptr,
const Vector3D envelope = {0, 0, 0},
const Volume entity = nullptr 
) const
pure virtual

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

Implemented in Acts::CylinderVolumeBounds, Acts::TrapezoidVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.

virtual SurfacePtrVector Acts::VolumeBounds::decomposeToSurfaces ( const Transform3D transform) const
pure virtual

Method to decompose the Bounds into Surfaces the Volume can turn them into BoundarySurfaces

Parameters
transformis the 3D transform to be applied to the boundary surfaces to position them in 3D space
Returns
a vector of surfaces bounding this volume

Implemented in Acts::CylinderVolumeBounds, Acts::TrapezoidVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.

Referenced by Acts::AbstractVolume::createBoundarySurfaces(), and Acts::TrackingVolume::createBoundarySurfaces().

+ Here is the caller graph for this function:

virtual bool Acts::VolumeBounds::inside ( const Vector3D gpos,
double  tol = 0. 
) const
pure virtual

Checking if position given in volume frame is inside

Parameters
gposis the global position to be checked
tolis the tolerance applied for the inside check
Returns
boolean indicating if the position is inside

Implemented in Acts::CylinderVolumeBounds, Acts::TrapezoidVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.

virtual std::ostream& Acts::VolumeBounds::toStream ( std::ostream &  sl) const
pure virtual

Output Method for std::ostream, to be overloaded by child classes

Parameters
slis the output stream to be dumped into

Implemented in Acts::CylinderVolumeBounds, Acts::TrapezoidVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.

Referenced by Acts::operator<<().

+ Here is the caller graph for this function:

virtual BoundsType Acts::VolumeBounds::type ( ) const
pure virtual

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implemented in Acts::CylinderVolumeBounds, Acts::TrapezoidVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.

Referenced by Acts::operator==().

+ Here is the caller graph for this function:

virtual std::vector<double> Acts::VolumeBounds::values ( ) const
pure virtual

Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds

Returns
of the stored values for this SurfaceBounds object

Implemented in Acts::CylinderVolumeBounds, Acts::TrapezoidVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, and Acts::GenericCuboidVolumeBounds.

Referenced by Acts::operator==().

+ Here is the caller graph for this function:


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