ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::InfiniteBounds Class Reference

templated boundless extension to forward the interface Returns all inside checks to true and can templated for all bounds More...

#include <Acts/Surfaces/InfiniteBounds.hpp>

Inheritance diagram for Acts::InfiniteBounds:
[legend]
Collaboration diagram for Acts::InfiniteBounds:
[legend]

Public Member Functions

SquareMatrix2 boundToCartesianJacobian (const Vector2 &lposition) const final
 Computes the bound to cartesian jacobian at a given local position.
SquareMatrix2 boundToCartesianMetric (const Vector2 &lposition) const final
 Computes the bound to cartesian metric at a given local position.
Vector2 center () const final
 Calculate the center of the surface bounds in local coordinates.
Vector2 closestPoint (const Vector2 &lposition, const SquareMatrix2 &metric) const final
 Calculates the closest point on the bounds to a given local position.
bool inside (const Vector2 &lposition) const final
 Inside check for the bounds object.
bool inside (const Vector2 &lposition, const BoundaryTolerance &boundaryTolerance) const final
 Inside check for the bounds object given a boundary tolerance.
bool isCartesian () const final
 Check if the bound coordinates are cartesian.
std::ostream & toStream (std::ostream &os) const final
 Output Method for std::ostream.
SurfaceBounds::BoundsType type () const final
 Return the bounds type - for persistency optimization.
std::vector< double > values () const final
 Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.
Public Member Functions inherited from Acts::SurfaceBounds
virtual ~SurfaceBounds ()=default
virtual double distance (const Vector2 &lposition) const
 Calculates the distance to the bounds from a given local position.

Additional Inherited Members

Public Types inherited from Acts::SurfaceBounds
enum  BoundsType : int {
  eCone = 0 , eCylinder = 1 , eDiamond = 2 , eDisc = 3 ,
  eEllipse = 4 , eLine = 5 , eRectangle = 6 , eTrapezoid = 7 ,
  eTriangle = 8 , eDiscTrapezoid = 9 , eConvexPolygon = 10 , eAnnulus = 11 ,
  eBoundless = 12 , eOther = 13
}
 This is nested to the SurfaceBounds, as also VolumeBounds will have Bounds Type. More...

Detailed Description

templated boundless extension to forward the interface Returns all inside checks to true and can templated for all bounds

Member Function Documentation

◆ boundToCartesianJacobian()

SquareMatrix2 Acts::InfiniteBounds::boundToCartesianJacobian ( const Vector2 & lposition) const
finalvirtual

Computes the bound to cartesian jacobian at a given local position.

Parameters
lpositionis the local position at which the jacobian is computed
Returns
the bound to cartesian jacobian

Implements Acts::SurfaceBounds.

◆ boundToCartesianMetric()

SquareMatrix2 Acts::InfiniteBounds::boundToCartesianMetric ( const Vector2 & lposition) const
finalvirtual

Computes the bound to cartesian metric at a given local position.

Parameters
lpositionis the local position at which the metric is computed
Returns
the bound to cartesian metric

Implements Acts::SurfaceBounds.

◆ center()

Vector2 Acts::InfiniteBounds::center ( ) const
finalvirtual

Calculate the center of the surface bounds in local coordinates.

This method returns a representative center point of the bounds region. The exact definition varies by bounds type and coordinate system:

Cartesian bounds (Rectangle, Diamond, Trapezoid):

  • Returns the geometric center or center of symmetry
  • For symmetric shapes: center of bounding box or origin (0,0)

Polar/Cylindrical bounds (Radial, Cylinder, Cone):

  • Returns (r, phi) where r is average radius, phi is average angle
  • Coordinates are in the bounds' natural coordinate system

Complex bounds (Annulus, ConvexPolygon):

  • Annulus: Pre-calculated from corner vertices (accounts for coordinate transforms)
  • Polygon: Average of all vertices (vertex centroid, not area centroid)

Infinite bounds: Returns conceptual center at (0,0)

Note
The returned point is guaranteed to be a reasonable representative center, but may not be the true geometric centroid for all shapes.
Returns
Vector2 representing the center position in local coordinates

Implements Acts::SurfaceBounds.

◆ closestPoint()

Vector2 Acts::InfiniteBounds::closestPoint ( const Vector2 & lposition,
const SquareMatrix2 & metric ) const
finalvirtual

Calculates the closest point on the bounds to a given local position.

Parameters
lpositionis the local position
metricto be used for the distance calculation
Returns
the closest point on the bounds

Implements Acts::SurfaceBounds.

◆ inside() [1/2]

bool Acts::InfiniteBounds::inside ( const Vector2 & lposition) const
finalvirtual

Inside check for the bounds object.

Parameters
lpositionis the local position
Returns
true if the local position is inside the bounds

Implements Acts::SurfaceBounds.

◆ inside() [2/2]

bool Acts::InfiniteBounds::inside ( const Vector2 & lposition,
const BoundaryTolerance & boundaryTolerance ) const
finalvirtual

Inside check for the bounds object given a boundary tolerance.

Parameters
lpositionis the local position
boundaryToleranceis the boundary tolerance object
Returns
true if the local position is inside the bounds and tolerance

Reimplemented from Acts::SurfaceBounds.

◆ isCartesian()

bool Acts::InfiniteBounds::isCartesian ( ) const
finalvirtual

Check if the bound coordinates are cartesian.

Returns
true if the bound coordinates are cartesian

Implements Acts::SurfaceBounds.

◆ toStream()

std::ostream & Acts::InfiniteBounds::toStream ( std::ostream & os) const
finalvirtual

Output Method for std::ostream.

Parameters
osOutput stream to write to
Returns
Reference to the output stream for method chaining

Implements Acts::SurfaceBounds.

◆ type()

SurfaceBounds::BoundsType Acts::InfiniteBounds::type ( ) const
finalvirtual

Return the bounds type - for persistency optimization.

Returns
the bounds type

Implements Acts::SurfaceBounds.

◆ values()

std::vector< double > Acts::InfiniteBounds::values ( ) const
finalvirtual

Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.

Returns
of the stored values for this SurfaceBounds object

Implements Acts::SurfaceBounds.