Class SurfaceBounds

Inheritance Relationships

Derived Types

Class Documentation

class Acts::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.

Values:

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

~SurfaceBounds() = default
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.

Return

boolean indicator for the success of this operation

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

  • bcheck: boundary check directive

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

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

Parameters
  • sl: is the outstream in which the string dump is done

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