Class EllipseBounds

Inheritance Relationships

Base Type

Class Documentation

class Acts::EllipseBounds : public Acts::PlanarBounds

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

Values:

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

Public Functions

EllipseBounds() = delete
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.

Parameters
  • 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)

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

Constructor - from fixed size array.

Parameters
  • values: The parameter values

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

Bounding box parameters.

Return

rectangle bounds for a bounding box

double get(BoundValues bValue) const

Access to the bound values.

Parameters
  • bValue: the class nested enum for the array access

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.

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

Output Method for std::ostream.

BoundsType type() const final

Return the bounds type - for persistency optimization.

Return

is a BoundsType enum

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

Return the bound values as dynamically sized vector.

Return

this returns a copy of the internal values

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

Return the vertices.

Note

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

Return

vector for vertices in 2D

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