|
ACTS
Experiment-independent tracking
|
Interface for surface bounds. More...
#include <Acts/Surfaces/SurfaceBounds.hpp>
Public Types | |
| 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... | |
Public Member Functions | |
| virtual | ~SurfaceBounds ()=default |
| virtual SquareMatrix2 | boundToCartesianJacobian (const Vector2 &lposition) const =0 |
| Computes the bound to cartesian jacobian at a given local position. | |
| virtual SquareMatrix2 | boundToCartesianMetric (const Vector2 &lposition) const =0 |
| Computes the bound to cartesian metric at a given local position. | |
| 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 bool | isCartesian () const =0 |
| Check if the bound coordinates are cartesian. | |
| 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. | |
Interface for surface bounds.
Surface bounds provide:
| enum Acts::SurfaceBounds::BoundsType : int |
|
virtualdefault |
|
pure virtual |
Computes the bound to cartesian jacobian at a given local position.
| lposition | is the local position at which the jacobian is computed |
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::CylinderBounds, Acts::DiscTrapezoidBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::PlanarBounds, and Acts::RadialBounds.
|
pure virtual |
Computes the bound to cartesian metric at a given local position.
| lposition | is the local position at which the metric is computed |
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::CylinderBounds, Acts::DiscTrapezoidBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::PlanarBounds, and Acts::RadialBounds.
|
pure virtual |
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):
Polar/Cylindrical bounds (Radial, Cylinder, Cone):
Complex bounds (Annulus, ConvexPolygon):
Infinite bounds: Returns conceptual center at (0,0)
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBoundsBase, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.
|
pure virtual |
Calculates the closest point on the bounds to a given local position.
| lposition | is the local position |
| metric | to be used for the distance calculation |
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBounds< N >, Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.
|
virtual |
Calculates the distance to the bounds from a given local position.
| lposition | is the local position |
|
pure virtual |
Inside check for the bounds object.
| lposition | is the local position |
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBounds< N >, Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.
|
virtual |
Inside check for the bounds object given a boundary tolerance.
| lposition | is the local position |
| boundaryTolerance | is the boundary tolerance object |
Reimplemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBounds< N >, Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.
|
pure virtual |
Check if the bound coordinates are cartesian.
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::CylinderBounds, Acts::DiscTrapezoidBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::PlanarBounds, and Acts::RadialBounds.
|
pure virtual |
Output Method for std::ostream, to be overloaded by child classes.
| os | is the outstream in which the string dump is done |
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBoundsBase, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.
|
pure virtual |
Return the bounds type - for persistency optimization.
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBoundsBase, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.
|
pure virtual |
Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.
Implemented in Acts::AnnulusBounds, Acts::ConeBounds, Acts::ConvexPolygonBoundsBase, Acts::CylinderBounds, Acts::DiamondBounds, Acts::DiscTrapezoidBounds, Acts::EllipseBounds, Acts::InfiniteBounds, Acts::LineBounds, Acts::RadialBounds, Acts::RectangleBounds, and Acts::TrapezoidBounds.