File SurfaceBounds.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent


this is foreseen for the ‘Geometry’ module


inline bool operator!=(const SurfaceBounds &lhs, const SurfaceBounds &rhs)
inline std::ostream &operator<<(std::ostream &os, const SurfaceBounds &sb)
inline bool operator==(const SurfaceBounds &lhs, const SurfaceBounds &rhs)
class SurfaceBounds
#include <Acts/Surfaces/SurfaceBounds.hpp>

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