Class Acts::DiscTrapezoidBounds¶
-
class Acts::DiscTrapezoidBounds : public Acts::DiscBounds¶
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
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
-
DiscTrapezoidBounds() = delete¶