|
ACTS
Experiment-independent tracking
|
#include <Acts/Surfaces/CylinderBounds.hpp>
Public Types | |
| enum | BoundValues : int { eR = 0 , eHalfLengthZ = 1 , eHalfPhiSector = 2 , eAveragePhi = 3 , eBevelMinZ = 4 , eBevelMaxZ = 5 , eSize = 6 } |
| 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 | |
| CylinderBounds (const std::array< double, eSize > &values) noexcept(false) | |
| Constructor from array. | |
| CylinderBounds (double r, double halfZ, double halfPhi=std::numbers::pi, double avgPhi=0., double bevelMinZ=0., double bevelMaxZ=0.) noexcept(false) | |
| Constructor - full cylinder. | |
| 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. | |
| std::vector< Vector3 > | circleVertices (const Transform3 transform, unsigned int quarterSegments) const |
| Create the bow/circle vertices on either side of the cylinder. | |
| Vector2 | closestPoint (const Vector2 &lposition, const SquareMatrix2 &metric) const final |
| Calculates the closest point on the bounds to a given local position. | |
| bool | coversFullAzimuth () const |
| Returns true for full phi coverage. | |
| 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. | |
| bool | isCartesian () const final |
| Check if the bound coordinates are cartesian. | |
| 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 |
| Return the bound values as dynamically sized vector. | |
| 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 cylindrical Surface.
These bounds may be used for a CylinderSurface In case of bounds for a StraightLineSurface the radius determines the radius within a localPosition is regarded as inside bounds.
CylinderBounds also enhance the possibility of a cylinder segment with an opening angle \( 2\cdot\phi_{half}\) around an average \( \phi \) angle \( \phi_{ave} \).
CylinderBounds also supports beveled sides defined by an angle. Different angles can be defined on both sides of the cylinder. A positive angle is defined as "extruding" from the defined Zlength, while a negative angle is "intruding" on the Zlength.
| enum Acts::CylinderBounds::BoundValues : int |
| Acts::CylinderBounds::CylinderBounds | ( | double | r, |
| double | halfZ, | ||
| double | halfPhi = std::numbers::pi, | ||
| double | avgPhi = 0., | ||
| double | bevelMinZ = 0., | ||
| double | bevelMaxZ = 0. ) |
Constructor - full cylinder.
| r | The radius of the cylinder |
| halfZ | The half length in z |
| halfPhi | The half opening angle |
| avgPhi | (optional) The phi value from which the opening angle spans |
| bevelMinZ | (optional) The bevel on the negative z side |
| bevelMaxZ | (optional) The bevel on the positive z sid The bevel on the positive z side |
|
explicitnoexcept |
Constructor from array.
| values | The bound values stored in an array |
|
finalvirtual |
Computes the bound to cartesian jacobian at a given local position.
| lposition | is the local position at which the jacobian is computed |
Implements Acts::SurfaceBounds.
|
finalvirtual |
Computes the bound to cartesian metric at a given local position.
| lposition | is the local position at which the metric is computed |
Implements Acts::SurfaceBounds.
|
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.
| std::vector< Vector3 > Acts::CylinderBounds::circleVertices | ( | const Transform3 | transform, |
| unsigned int | quarterSegments ) const |
Create the bow/circle vertices on either side of the cylinder.
| transform | is the global transform |
| quarterSegments | is the number of segments to approximate a quarter of a circle. In order to symmetrize fully closed and sectoral cylinders, also in the first case the two end points are given (albeit they overlap) in -pi / pi |
|
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.
| bool Acts::CylinderBounds::coversFullAzimuth | ( | ) | const |
Returns true for full phi coverage.
| double Acts::CylinderBounds::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 |
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 |
Check if the bound coordinates are cartesian.
Implements Acts::SurfaceBounds.
|
finalvirtual |
Output Method for std::ostream.
| sl | The output stream to write to |
Implements Acts::SurfaceBounds.
|
finalvirtual |
Return the bounds type - for persistency optimization.
Implements Acts::SurfaceBounds.
|
finalvirtual |
Return the bound values as dynamically sized vector.
Implements Acts::SurfaceBounds.