File LineBounds.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class LineBounds : public Acts::SurfaceBounds
#include <Acts/Surfaces/LineBounds.hpp>

Bounds for a LineSurface.

Public Types

enum BoundValues

Values:

enumerator eR
enumerator eHalfLengthZ
enumerator eSize

Public Functions

LineBounds() = delete
inline LineBounds(double r, double halfZ) noexcept(false)

Constructor.

Parameters
  • r – is the radius of the cylinder, default = 0.

  • halfZ – is the half length in z, defualt = 0.

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

Constructor - from fixed size array.

Parameters

values – The parameter values

~LineBounds() override = default
inline double get(BoundValues bValue) const

Access to the bound values.

Parameters

bValue – the class nested enum for the array access

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

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.

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

  • bcheck – boundary check directive

Returns

boolean indicator for the success of this operation

virtual std::ostream &toStream(std::ostream &sl) const final

Output Method for std::ostream.

Parameters

sl – is the ostream to be dumped into

virtual BoundsType type() const final

Return the bounds type - for persistency optimization.

Returns

is a BoundsType enum

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

Return the bound values as dynamically sized vector.

Returns

this returns a copy of the internal values

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

std::array<double, eSize> m_values