|
ACTS
Experiment-independent tracking
|
Class that implements a (potentially asymmetric) bounds with difference between surface bound center and surface coordinate center. More...
#include <Acts/Surfaces/AnnulusBounds.hpp>
Public Types | |
| enum | BoundValues : int { eMinR = 0 , eMaxR = 1 , eMinPhiRel = 2 , eMaxPhiRel = 3 , eAveragePhi = 4 , eOriginX = 5 , eOriginY = 6 , eSize = 7 } |
| Enumeration for the different 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 | |
| AnnulusBounds (const std::array< double, eSize > &values) noexcept(false) | |
| Constructor - from fixed size array. | |
| AnnulusBounds (double minR, double maxR, double minPhiRel, double maxPhiRel, const Vector2 &moduleOrigin={0, 0}, double avgPhi=0) noexcept(false) | |
| Default constructor from parameters. | |
| double | binningValuePhi () const final |
| Return a reference phi for binning. | |
| double | binningValueR () const final |
| Return a reference radius for binning. | |
| 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. | |
| std::vector< Vector2 > | corners () const |
| This method returns the four corners of the bounds in polar coordinates Starting from the upper right (max R, pos locX) and proceeding clock-wise i.e. | |
| bool | coversFullAzimuth () const final |
| 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 | insideRadialBounds (double R, double tolerance=0.) const final |
| Checks if this is inside the radial coverage given the a tolerance. | |
| bool | isCartesian () const final |
| Check if the bound coordinates are cartesian. | |
| Vector2 | moduleOrigin () const |
Returns moduleOrigin, but rotated out, so averagePhi is already considered. | |
| double | phiMax () const |
| Returns the left angular edge of the module. | |
| double | phiMin () const |
| Returns the right angular edge of the module. | |
| double | rMax () const final |
| This method returns outer radius. | |
| double | rMin () const final |
| This method returns inner radius. | |
| std::ostream & | toStream (std::ostream &sl) const final |
| Outstream operator. | |
| 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. | |
| std::vector< Vector2 > | vertices (unsigned int quarterSegments=2u) const override |
| This method returns the xy coordinates of the four corners of the bounds in module coordinates (in x/y), and if quarterSegments is bigger or equal to 0, the curved part of the segment is included and approximated by the corresponding number of segments. | |
| 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. | |
Class that implements a (potentially asymmetric) bounds with difference between surface bound center and surface coordinate center.
These bounds combine two different systems:
The measurement will be done in the strip system, with r/phi local coordinates.
| enum Acts::AnnulusBounds::BoundValues : int |
|
explicit |
Default constructor from parameters.
| minR | The inner radius of the annulus |
| maxR | The outer radius of the annulus |
| minPhiRel | The minimum phi relative to average phi |
| maxPhiRel | The maximum phi relative to average phi |
| moduleOrigin | The origin of the module in the strip frame |
| avgPhi | The average phi value |
morigin you need to actually calculate the cartesian offset
|
explicitnoexcept |
Constructor - from fixed size array.
| values | The bound values stored in a fixed size array |
|
finalvirtual |
Return a reference phi for binning.
Implements Acts::DiscBounds.
|
finalvirtual |
Return a reference radius for binning.
Implements Acts::DiscBounds.
|
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.
|
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.
| std::vector< Vector2 > Acts::AnnulusBounds::corners | ( | ) | const |
This method returns the four corners of the bounds in polar coordinates Starting from the upper right (max R, pos locX) and proceeding clock-wise i.e.
(max R; pos locX), (min R; pos locX), (min R; neg loc X), (max R: neg locX)
|
finalvirtual |
Returns true for full phi coverage.
Implements Acts::DiscBounds.
| double Acts::AnnulusBounds::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 |
Checks if this is inside the radial coverage given the a tolerance.
| R | The radius value to check |
| tolerance | The tolerance for the check |
Implements Acts::DiscBounds.
|
finalvirtual |
Check if the bound coordinates are cartesian.
Implements Acts::SurfaceBounds.
| Vector2 Acts::AnnulusBounds::moduleOrigin | ( | ) | const |
Returns moduleOrigin, but rotated out, so averagePhi is already considered.
The module origin needs to consider the rotation introduced by averagePhi
| double Acts::AnnulusBounds::phiMax | ( | ) | const |
Returns the left angular edge of the module.
| double Acts::AnnulusBounds::phiMin | ( | ) | const |
Returns the right angular edge of the module.
|
finalvirtual |
|
finalvirtual |
|
finalvirtual |
Outstream operator.
| sl | is the ostream to be dumped into |
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.
|
overridevirtual |
This method returns the xy coordinates of the four corners of the bounds in module coordinates (in x/y), and if quarterSegments is bigger or equal to 0, the curved part of the segment is included and approximated by the corresponding number of segments.
Starting from the upper right (max R, pos locX) and proceeding clock-wise i.e. (max R; pos locX), (min R; pos locX), (min R; neg loc X), (max R: neg locX)
| quarterSegments | the number of segments used to approximate a quarter of a circle |
Implements Acts::DiscBounds.