Class Acts::DiscTrapezoidBounds

class 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

enum BoundValues


enumerator eHalfLengthXminR
enumerator eHalfLengthXmaxR
enumerator eMinR
enumerator eMaxR
enumerator eAveragePhi
enumerator eStereo
enumerator eSize

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.

  • 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.


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.


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 checks 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.

  • 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.


is a BoundsType enum

inline virtual std::vector<double> values() const final

Return the bound values as dynamically sized vector.


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)


that the number of segments are ignored for this surface


lseg – the number of segments used to approximate and eventually curved line


vector for vertices in 2D