File DiscTrapezoidBounds.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Note
this is foreseen for the ‘Geometry’ module
-
class DiscTrapezoidBounds : public Acts::DiscBounds
- #include <Acts/Surfaces/DiscTrapezoidBounds.hpp>
Class to describe the bounds for a planar DiscSurface.
By providing an argument for hphisec, the bounds can be restricted to a phi-range around the center position.
Public Types
-
enum BoundValues
Values:
-
enumerator eHalfLengthXminR
-
enumerator eHalfLengthXmaxR
-
enumerator eMinR
-
enumerator eMaxR
-
enumerator eAveragePhi
-
enumerator eStereo
-
enumerator eSize
-
enumerator eHalfLengthXminR
Public Functions
-
DiscTrapezoidBounds() = delete
-
DiscTrapezoidBounds(double halfXminR, double halfXmaxR, double minR, double maxR, double avgPhi = M_PI_2, double stereo = 0.) noexcept(false)
Constructor for a symmetric Trapezoid giving min X length, max X length, Rmin and R max.
- Parameters
halfXminR – half length in X at min radius
halfXmaxR – half length in X at maximum radius
minR – inner radius
maxR – outer radius
avgPhi – average phi value
stereo – optional stero angle applied
-
inline DiscTrapezoidBounds(const std::array<double, eSize> &values) noexcept(false)
Constructor - from fixed size array.
- Parameters
values – The parameter values
-
~DiscTrapezoidBounds() override = default
-
inline virtual double binningValuePhi() const final
Return a reference phi for binning.
-
inline virtual double binningValueR() const final
Return a reference radius for binning.
-
inline virtual bool coversFullAzimuth() const final
Returns true for full phi coverage - obviously false here.
-
inline double get(BoundValues bValue) const
Access to the bound values.
- Parameters
bValue – the class nested enum for the array access
-
inline double halfLengthY() const
This method returns the half length in Y (this is Rmax -Rmin)
-
inline double halfPhiSector() const
This method returns the halfPhiSector which is covered by the disc.
-
virtual bool inside(const Vector2 &lposition, const BoundaryCheck &bcheck = true) const final
This method cheks if the radius given in the LocalPosition is inside [rMin,rMax] if only tol0 is given and additional in the phi sector is tol1 is given.
- Parameters
lposition – is the local position to be checked (in polar coordinates)
bcheck – is the boundary check directive
-
inline virtual bool insideRadialBounds(double R, double tolerance = 0.) const final
Checks if this is inside the radial coverage given the a tolerance.
-
inline double rCenter() const
This method returns the center radius.
-
inline virtual double rMax() const final
This method returns outer radius.
-
inline virtual double rMin() const final
This method returns inner radius.
-
inline double stereo() const
This method returns the stereo angle.
-
virtual std::ostream &toStream(std::ostream &sl) const final
Output Method for std::ostream.
-
virtual SurfaceBounds::BoundsType type() const final
Return the bounds type - for persistency optimization.
- Returns
is a BoundsType enum
-
inline virtual std::vector<double> values() const final
Return the bound values as dynamically sized vector.
- Returns
this returns a copy of the internal values
-
virtual std::vector<Vector2> vertices(unsigned int lseg) const final
This method returns the xy coordinates of the four corners of the bounds in module coorindates (in xy)
Note
that the number of segments are ignored for this surface
- Parameters
lseg – the number of segments used to approximate and eventually curved line
- Returns
vector for vertices in 2D
Private Functions
-
inline void checkConsistency() noexcept(false)¶
Check the input values for consistency, will throw a logic_exception if consistency is not given.
-
ActsMatrix<2, 2> jacobianToLocalCartesian(const Vector2 &lposition) const¶
Jacobian into its Cartesian representation.
- Parameters
lposition – The local position in polar coordinates
-
enum BoundValues
-
class DiscTrapezoidBounds : public Acts::DiscBounds