File DiamondBounds.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

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

Bounds for a double trapezoidal (“diamond”), planar Surface.

Public Types

enum BoundValues

Values:

enumerator eHalfLengthXnegY
enumerator eHalfLengthXzeroY
enumerator eHalfLengthXposY
enumerator eHalfLengthYneg
enumerator eHalfLengthYpos
enumerator eSize

Public Functions

DiamondBounds() = delete
inline DiamondBounds(double halfXnegY, double halfXzeroY, double halfXposY, double halfYneg, double halfYpos) noexcept(false)

Constructor for convex hexagon symmetric about the y axis.

Parameters
  • halfXnegY – is the halflength in x at minimal y

  • halfXzeroY – is the halflength in x at y = 0

  • halfXposY – is the halflength in x at maximal y

  • halfYneg – is the halflength into y < 0

  • halfYpos – is the halflength into y > 0

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

Constructor - from fixed size array.

Parameters

values – The parameter values

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

Bounding box parameters.

Returns

rectangle bounds for a bounding box

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 in which it is dumped

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

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

Return the vertices.

Note

the number of segements is ignored for this representation

Parameters

lseg – the number of segments used to approximate and eventually curved line

Returns

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

internal bounding box cache

std::array<double, eSize> m_values