Class DiscTrapezoidBounds

Inheritance Relationships

Base Type

Class Documentation

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

enum BoundValues

Values:

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.

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

DiscTrapezoidBounds(const std::array<double, eSize> &values) noexcept(false)

Constructor - from fixed size array.

Parameters
  • values: The parameter values

~DiscTrapezoidBounds() override = default
double binningValuePhi() const final

Return a reference phi for binning.

double binningValueR() const final

Return a reference radius for binning.

bool coversFullAzimuth() const final

Returns true for full phi coverage - obviously false here.

double get(BoundValues bValue) const

Access to the bound values.

Parameters
  • bValue: the class nested enum for the array access

double halfLengthY() const

This method returns the half length in Y (this is Rmax -Rmin)

double halfPhiSector() const

This method returns the halfPhiSector which is covered by the disc.

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

bool insideRadialBounds(double R, double tolerance = 0.) const final

Checks if this is inside the radial coverage given the a tolerance.

double rCenter() const

This method returns the center radius.

double rMax() const final

This method returns outer radius.

double rMin() const final

This method returns inner radius.

double stereo() const

This method returns the stereo angle.

std::ostream &toStream(std::ostream &sl) const final

Output Method for std::ostream.

SurfaceBounds::BoundsType type() const final

Return the bounds type - for persistency optimization.

Return

is a BoundsType enum

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

Return the bound values as dynamically sized vector.

Return

this returns a copy of the internal values

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

Return

vector for vertices in 2D

Parameters
  • lseg: the number of segments used to approximate and eventually curved line