File EllipseBounds.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

class EllipseBounds : public Acts::PlanarBounds
#include <Acts/Surfaces/EllipseBounds.hpp>

Class to describe the bounds for a planar ellispoid surface.

By providing an argument for hphisec, the bounds can be restricted to a phi-range around the center position.

Public Types

enum BoundValues


enumerator eInnerRx
enumerator eInnerRy
enumerator eOuterRx
enumerator eOuterRy
enumerator eHalfPhiSector
enumerator eAveragePhi
enumerator eSize

Public Functions

EllipseBounds() = delete
inline EllipseBounds(double innerRx, double innerRy, double outerRx, double outerRy, double halfPhi = M_PI, double averagePhi = 0.) noexcept(false)

Constructor for full of an ellipsoid ring.

  • innerRx – The inner ellipse radius in x

  • innerRy – The inner ellipse radius in y

  • outerRx – The outer ellipse radius in x

  • outerRy – The outer ellipse radius in y

  • halfPhi – spanning phi sector (is set to pi as default)

  • averagePhi – average phi (is set to 0. as default)

inline EllipseBounds(const std::array<double, eSize> &values) noexcept(false)

Constructor - from fixed size array.


values – The parameter values

~EllipseBounds() override = default
virtual const RectangleBounds &boundingBox() const final

Bounding box parameters.


rectangle bounds for a bounding box

inline double get(BoundValues bValue) const

Access to the bound values.


bValue – the class nested enum for the array access

virtual bool inside(const Vector2 &lposition, const BoundaryCheck &bcheck) const final

This method checks if the point given in the local coordinates is between two ellipsoids if only tol0 is given and additional in the phi sector is tol1 is given.

  • 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 &sl) const final

Output Method for std::ostream.

virtual BoundsType type() const final

Return the bounds type - for persistency optimization.


is a BoundsType enum

inline virtual std::vector<double> values() const final

Return the bound values as dynamically sized vector.


this returns a copy of the internal values

virtual std::vector<Vector2> vertices(unsigned int lseg) const final

Return the vertices.


the number of segements to may be altered by also providing the extremas in all direction


lseg – the number of segments used to approximate and eventually curved line, here it refers to the full 2PI Ellipse


vector for vertices in 2D

Private Functions

inline void checkConsistency() noexcept(false)

Check the input values for consistency, will throw a logic_exception if consistency is not given.

Private Members

RectangleBounds m_boundingBox
std::array<double, eSize> m_values