Class Acts::DiamondBounds

class DiamondBounds : public Acts::PlanarBounds

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