Class AnnulusBounds¶
Defined in File AnnulusBounds.hpp
Inheritance Relationships¶
Base Type¶
public Acts::DiscBounds
(Class DiscBounds)
Class Documentation¶
-
class
Acts
::
AnnulusBounds
: public Acts::DiscBounds¶ Class that implements a (potentially asymmetric) bounds with difference between surface bound center and surface coordinate center.
These bounds combine two different systems:
module system : radial bounds centred on the moduleOrigin
strip system : phi bounds centred on the stripOrigin
The measurement will be done in the strip system, with r/phi local coordinates.
Public Types
Public Functions
-
AnnulusBounds
() = delete¶
-
AnnulusBounds
(double minR, double maxR, double minPhiRel, double maxPhiRel, const Vector2D &moduleOrigin = {0, 0}, double avgPhi = 0) noexcept(false)¶ Default constructor from parameters.
- Note
For
morigin
you need to actually calculate the cartesian offset- Parameters
minR
: inner radius, in module systemmaxR
: outer radius, in module systemminPhiRel
: right angular edge, in strip system, rel to avgPhimaxPhiRel
: left angular edge, in strip system, rel to avgPhimoduleOrigin
: The origin offset between the two systems.avgPhi
: (Optional) internal rotation of this bounds object’s local frame
-
AnnulusBounds
(const std::array<double, eSize> &values) noexcept(false)¶ Constructor - from parameters array.
- Parameters
values
: The parameter array
-
AnnulusBounds
(const AnnulusBounds &source) = default¶
-
double
binningValuePhi
() const final¶ Return a reference radius for binning.
-
double
binningValueR
() const final¶ Return a reference radius for binning.
-
std::vector<Vector2D>
corners
() const¶ This method returns the four corners of the bounds in polar coordinates Starting from the upper right (max R, pos locX) and proceding clock-wise i.e.
(max R; pos locX), (min R; pos locX), (min R; neg loc X), (max R: neg locX)
-
bool
coversFullAzimuth
() const final¶ Returns true for full phi coverage.
-
double
get
(BoundValues bValue) const¶ Access to the bound values.
- Parameters
bValue
: the class nested enum for the array access
-
bool
inside
(const Vector2D &lposition, const BoundaryCheck &bcheck) const final¶ Inside check for the bounds object driven by the boundary check directive Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds Inside can be called without/with tolerances.
- Return
boolean indicator for the success of this operation
- Parameters
lposition
: Local position (assumed to be in right surface frame)bcheck
: boundary check directive
-
bool
insideRadialBounds
(double R, double tolerance = 0.) const final¶ Checks if this is inside the radial coverage given the a tolerance.
-
Vector2D
moduleOrigin
() const¶ Returns moduleOrigin, but rotated out, so
averagePhi
is already considered.The module origin needs to consider the rotation introduced by
averagePhi
- Return
The origin of the local frame
-
double
phiMax
() const¶ Returns the left angular edge of the module.
- Return
The left side angle
-
double
phiMin
() const¶ Returns the right angular edge of the module.
- Return
The right side angle
-
double
rMax
() const final¶ This method returns outer radius.
-
double
rMin
() const final¶ This method returns inner radius.
-
std::ostream &
toStream
(std::ostream &sl) const final¶ Outstream operator.
- Parameters
sl
: is the ostream to be dumped into
-
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<Vector2D>
vertices
(unsigned int lseg) const¶ This method returns the xy coordinates of the four corners of the bounds in module coorindates (in x/y) Starting from the upper right (max R, pos locX) and proceding clock-wise i.e.
(max R; pos locX), (min R; pos locX), (min R; neg loc X), (max R: neg locX)
- Note
that the extremas are given, which may slightly alter the number of segments returned
- Return
vector for vertices in 2D
- Parameters
lseg
: the number of segments used to approximate and eventually curved line