Class VolumeBounds

Inheritance Relationships

Derived Types

Class Documentation

class Acts::VolumeBounds

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 orientedSurfaces() and a inside() method.

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

Subclassed by Acts::ConeVolumeBounds, Acts::CuboidVolumeBounds, Acts::CutoutCylinderVolumeBounds, Acts::CylinderVolumeBounds, Acts::GenericCuboidVolumeBounds, Acts::TrapezoidVolumeBounds

Public Types

enum BoundsType

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

Values:

enumerator eCone
enumerator eCuboid
enumerator eCutoutCylinder
enumerator eCylinder
enumerator eGenericCuboid
enumerator eTrapezoid
enumerator eOther

Public Functions

VolumeBounds() = default
~VolumeBounds() = default
double binningBorder(BinningValue bValue) const

Binning borders in double.

Return

float offset to be used for the binning

Parameters
  • bValue: is the binning schema used

Vector3 binningOffset(BinningValue bValue) const

Binning offset - overloaded for some R-binning types.

Return

vector 3D to be used for the binning

Parameters
  • bValue: is the binning schema used

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

Construct bounding box for this shape.

Return

Constructed bounding box

Parameters
  • trf: Optional transform

  • envelope: Optional envelope to add / subtract from min/max

  • entity: Entity to associate this bounding box with

bool inside(const Vector3 &gpos, double tol = 0.) const = 0

Checking if position given in volume frame is inside.

Return

boolean indicating if the position is inside

Parameters
  • gpos: is the global position to be checked

  • tol: is the tolerance applied for the inside check

OrientedSurfaces orientedSurfaces(const Transform3 &transform = Transform3::Identity()) const = 0

Oriented surfaces, i.e.

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

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

Parameters
  • transform: is the 3D transform to be applied to the boundary surfaces to position them in 3D space

Return

a vector of surfaces bounding this volume

std::ostream &toStream(std::ostream &sl) const = 0

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

Parameters
  • sl: is the output stream to be dumped into

BoundsType type() const = 0

Return the bounds type - for persistency optimization.

Return

is a BoundsType enum

std::vector<double> values() const = 0

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

Return

of the stored values for this SurfaceBounds object