Class Acts::SurfaceBounds

class SurfaceBounds

Interface for surface bounds.

Surface bounds provide:

  • inside() checks

  • distance to boundary calculations

  • the BoundsType and a set of parameters to simplify persistency

Subclassed by Acts::ConeBounds, Acts::CylinderBounds, Acts::DiscBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::PlanarBounds

Public Types

enum BoundsType

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


enumerator eCone
enumerator eCylinder
enumerator eDiamond
enumerator eDisc
enumerator eEllipse
enumerator eLine
enumerator eRectangle
enumerator eTrapezoid
enumerator eTriangle
enumerator eDiscTrapezoid
enumerator eConvexPolygon
enumerator eAnnulus
enumerator eBoundless
enumerator eOther

Public Functions

virtual ~SurfaceBounds() = default
virtual bool inside(const Vector2 &lposition, const BoundaryCheck &bcheck) const = 0

Inside check for the bounds object driven by the boundary check directive Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds Inside can be called without/with tolerances.

  • lposition – Local position (assumed to be in right surface frame)

  • bcheck – boundary check directive


boolean indicator for the success of this operation

virtual std::ostream &toStream(std::ostream &os) const = 0

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


os – is the outstream in which the string dump is done

virtual BoundsType type() const = 0

Return the bounds type - for persistency optimization.


is a BoundsType enum

virtual 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.


of the stored values for this SurfaceBounds object