|
ACTS
Experiment-independent tracking
|
Bounds for a trapezoidal, planar Surface. More...
#include <Acts/Surfaces/TrapezoidBounds.hpp>
Public Types | |
| enum | BoundValues { eHalfLengthXnegY = 0 , eHalfLengthXposY = 1 , eHalfLengthY = 2 , eRotationAngle = 3 , eSize = 4 } |
| Enumeration for the bound values. More... | |
| 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... | |
Public Member Functions | |
| TrapezoidBounds (const std::array< double, eSize > &values) noexcept(false) | |
| Constructor for symmetric Trapezoid - from fixed size array. | |
| TrapezoidBounds (double halfXnegY, double halfXposY, double halfY, double rotAngle=0.) noexcept(false) | |
| Constructor for symmetric Trapezoid. | |
| const RectangleBounds & | boundingBox () const final |
| Bounding box parameters. | |
| 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. | |
| double | get (BoundValues bValue) const |
| Access to the bound values. | |
| bool | inside (const Vector2 &lposition) const final |
| 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. | |
| std::ostream & | toStream (std::ostream &sl) const final |
| Output Method for std::ostream. | |
| 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. | |
| std::vector< Vector2 > | vertices (unsigned int ignoredSegments=0u) const final |
| Return the vertices. | |
| Public Member Functions inherited from Acts::PlanarBounds | |
| 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. | |
| 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. | |
Bounds for a trapezoidal, planar Surface.
|
explicit |
Constructor for symmetric Trapezoid.
| halfXnegY | minimal half length X, definition at negative Y |
| halfXposY | maximal half length X, definition at positive Y |
| halfY | half length Y - defined at x=0 |
| rotAngle | rotation angle of the bounds w.r.t coordinate axes |
|
explicitnoexcept |
Constructor for symmetric Trapezoid - from fixed size array.
| values | the values to be stream in |
|
finalvirtual |
|
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):
Polar/Cylindrical bounds (Radial, Cylinder, Cone):
Complex bounds (Annulus, ConvexPolygon):
Infinite bounds: Returns conceptual center at (0,0)
Implements Acts::SurfaceBounds.
|
finalvirtual |
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 |
Implements Acts::SurfaceBounds.
| double Acts::TrapezoidBounds::get | ( | BoundValues | bValue | ) | const |
Access to the bound values.
| bValue | the class nested enum for the array access |
|
finalvirtual |
Inside check for the bounds object.
| lposition | is the local position |
The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two parallel sides of the trapezoid intersects with the negative \( y \) - axis of the local frame.
The cases are:
(0) \( y \) or \( x \) bounds are 0 || 0
(1) the local position is outside \( y \) bounds
(2) the local position is inside \( y \) bounds, but outside maximum \(x
\) bounds
(3) the local position is inside \( y \) bounds AND inside minimum \( x
\) bounds
(4) the local position is inside \( y \) bounds AND inside maximum \( x
\) bounds, so that it depends on the \( eta \) coordinate (5) the local position fails test of (4)
The inside check is done using single equations of straight lines and one has to take care if a point lies on the positive \( x \) half area(I) or the negative one(II). Denoting \( |x_{min}| \) and \( | x_{max} | \) as minHalfX respectively maxHalfX, such as \( |
y_{H} | \) as halfY, the equations for the straing lines in (I) and (II) can be written as:
Implements Acts::SurfaceBounds.
|
virtual |
Inside check for the bounds object given a boundary tolerance.
| lposition | is the local position |
| boundaryTolerance | is the boundary tolerance object |
Reimplemented from Acts::SurfaceBounds.
|
finalvirtual |
Output Method for std::ostream.
| sl | is the ostream to be dumped into |
Implements Acts::SurfaceBounds.
|
finalvirtual |
Return the bounds type - for persistency optimization.
Implements Acts::SurfaceBounds.
|
finalvirtual |
Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.
Implements Acts::SurfaceBounds.
|
finalvirtual |
Return the vertices.
| ignoredSegments | is and ignored parameter used to describe the number of segments to approximate curved sectors. |
Implements Acts::PlanarBounds.