File RadialBounds.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Note
this is foreseen for the ‘Geometry’ module
-
class RadialBounds : public Acts::DiscBounds
- #include <Acts/Surfaces/RadialBounds.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 eMinR
-
enumerator eMaxR
-
enumerator eHalfPhiSector
-
enumerator eAveragePhi
-
enumerator eSize
-
enumerator eMinR
Public Functions
-
RadialBounds() = delete
-
inline RadialBounds(double minR, double maxR, double halfPhi = M_PI, double avgPhi = 0.) noexcept(false)
Constructor for full disc of symmetric disc around phi=0.
- Parameters
minR – The inner radius (0 for full disc)
maxR – The outer radius
halfPhi – The half opening angle (Pi for full angular coverage)
avgPhi – The average phi for the disc/ring sector
-
inline RadialBounds(const std::array<double, eSize> &values) noexcept(false)
Constructor from array values.
- Parameters
values – The bound values
-
~RadialBounds() override = default
-
inline virtual double binningValuePhi() const final
Return a reference radius 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.
-
inline double get(BoundValues bValue) const
Access to the bound values.
- Parameters
bValue – the class nested enum for the array access
-
virtual bool inside(const Vector2 &lposition, const BoundaryCheck &bcheck) const final
For disc surfaces the local position in (r,phi) is checked.
- Parameters
lposition – local position to be checked
bcheck – boundary check directive
- Returns
is a boolean indicating the operation success
-
inline virtual bool insideRadialBounds(double R, double tolerance = 0.) const final
Checks if this is inside the radial coverage given the a tolerance.
-
inline virtual double rMax() const final
Return method for outer Radius.
-
inline virtual double rMin() const final
Return method for inner Radius.
-
virtual std::ostream &toStream(std::ostream &sl) const final
Outstream operator.
- Parameters
sl – is the ostream to be dumped into
-
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
Private Functions
-
inline void checkConsistency() noexcept(false)¶
Check the input values for consistency, will throw a logic_exception if consistency is not given.
-
Vector2 shifted(const Vector2 &lposition) const¶
Private helper method to shift a local position within the bounds.
- Parameters
lposition – The local position in polar coordinates
-
virtual std::vector<Vector2> vertices(unsigned int lseg) const final¶
This method returns the xy coordinates of vertices along the radial bounds.
Note
that the extremas are given, which may slightly alter the number of segments returned
- Parameters
lseg – the number of segments used to approximate and eventually curved line
- Returns
vector for vertices in 2D
-
enum BoundValues
-
class RadialBounds : public Acts::DiscBounds