ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::PlanarBounds Class Referenceabstract

common base class for all bounds that are in a local x/y cartesian frame More...

#include <Acts/Surfaces/PlanarBounds.hpp>

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

Public Member Functions

virtual const RectangleBoundsboundingBox () const =0
 Bounding box parameters.
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.
bool isCartesian () const final
 Check if the bound coordinates are cartesian.
virtual std::vector< Vector2vertices (unsigned int quarterSegments=2u) const =0
 Return the vertices.
Public Member Functions inherited from Acts::SurfaceBounds
virtual ~SurfaceBounds ()=default
virtual Vector2 center () const =0
 Calculate the center of the surface bounds in local coordinates.
virtual Vector2 closestPoint (const Vector2 &lposition, const SquareMatrix2 &metric) const =0
 Calculates the closest point on the bounds to a given local position.
virtual double distance (const Vector2 &lposition) const
 Calculates the distance to the bounds from a given local position.
virtual bool inside (const Vector2 &lposition) const =0
 Inside check for the bounds object.
virtual bool inside (const Vector2 &lposition, const BoundaryTolerance &boundaryTolerance) const
 Inside check for the bounds object given a boundary tolerance.
virtual std::ostream & toStream (std::ostream &os) const =0
 Output Method for std::ostream, to be overloaded by child classes.
virtual BoundsType type () const =0
 Return the bounds type - for persistency optimization.
virtual std::vector< double > values () const =0
 Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.

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

common base class for all bounds that are in a local x/y cartesian frame

  • simply introduced to avoid wrong bound assignments to surfaces

Member Function Documentation

◆ boundingBox()

virtual const RectangleBounds & Acts::PlanarBounds::boundingBox ( ) const
pure virtual

Bounding box parameters.

Returns
rectangle bounds for a bounding box

Implemented in Acts::ConvexPolygonBoundsBase, Acts::DiamondBounds, Acts::EllipseBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.

◆ boundToCartesianJacobian()

SquareMatrix2 Acts::PlanarBounds::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::PlanarBounds::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.

◆ isCartesian()

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

Check if the bound coordinates are cartesian.

Returns
true if the bound coordinates are cartesian

Implements Acts::SurfaceBounds.

◆ vertices()

virtual std::vector< Vector2 > Acts::PlanarBounds::vertices ( unsigned int quarterSegments = 2u) const
pure virtual

Return the vertices.

Parameters
quarterSegmentsis the number of segments used to describe curved segments in a quarter of the phi range. If it is 1, then only the extrema points in phi are inserted next to the segment corners.
Note
for planar bounds without curved segments quarterSegments is ignored
Returns
vector for vertices in 2D

Implemented in Acts::ConvexPolygonBounds< N >, Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::DiamondBounds, Acts::EllipseBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.