Class TrapezoidBounds¶
Defined in File TrapezoidBounds.hpp
Inheritance Relationships¶
Base Type¶
public Acts::PlanarBounds
(Class PlanarBounds)
Class Documentation¶
-
class
Acts
::
TrapezoidBounds
: public Acts::PlanarBounds¶ Bounds for a trapezoidal, planar Surface.
Public Types
Public Functions
-
TrapezoidBounds
() = delete¶
-
TrapezoidBounds
(double halfXnegY, double halfXposY, double halfY) noexcept(false)¶ Constructor for symmetric Trapezoid.
- Parameters
halfXnegY
: minimal half length X, definition at negative YhalfXposY
: maximal half length X, definition at positive YhalfY
: half length Y - defined at x=0
-
TrapezoidBounds
(const std::array<double, eSize> &values) noexcept(false)¶ Constructor for symmetric Trapezoid - from fixed size array.
- Parameters
values
: the values to be stream in
-
~TrapezoidBounds
() override¶
-
const RectangleBounds &
boundingBox
() const final¶ Bounding box parameters.
- Return
rectangle bounds for a bounding box
-
double
get
(BoundValues bValue) const¶ Access to the bound values.
- Parameters
bValue
: the class nested enum for the array access
-
bool
inside
(const Vector2 &lposition, const BoundaryCheck &bcheck) const final¶ The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two parallel sides of the trapezoid intersects with the negative \( y \) - axis of the local frame.
The cases are:
(0)
\( y \) or \( x \) bounds are 0 || 0(1) the local position is outside
\( y \) bounds(2) the local position is inside
\( y \) bounds, but outside maximum \( x \) bounds(3) the local position is inside
\( y \) bounds AND inside minimum \( x \) bounds(4) the local position is inside
\( y \) bounds AND inside maximum \( x \) bounds, so that it depends on the \( eta \) coordinate (5) the local position fails test of (4)- Parameters
lpos
: is the local position to be checked (Cartesian local frame)bcheck
: is the boundary check directive
The inside check is done using single equations of straight lines and one has to take care if a point lies on the positive \( x \) half area(I) or the negative one(II). Denoting \( |x_{min}| \) and \( | x_{max} | \) as
minHalfX
respectivelymaxHalfX
, such as \( | y_{H} | \) ashalfY
, the equations for the straing lines in (I) and (II) can be written as:(I): \( y = \kappa_{I} x + \delta_{I} \)
(II): \( y = \kappa_{II} x + \delta_{II} \) ,
where
\( \kappa_{I} = - \kappa_{II} = 2 \frac{y_{H}}{x_{max} - x_{min}} \)and
\( \delta_{I} = \delta_{II} = - \frac{1}{2}\kappa_{I}(x_{max} + x_{min}) \)
- Return
boolean indicator for the success of this operation
- Parameters
lposition
: Local position (assumed to be in right surface frame)bcheck
: boundary check directive
-
std::ostream &
toStream
(std::ostream &sl) const final¶ Output Method for std::ostream.
- Parameters
sl
: is the ostream to be dumped into
-
BoundsType
type
() const final¶ Return the bounds type - for persistency optimization.
- Return
is a BoundsType enum
-
std::vector<double>
values
() const final¶ Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.
- Return
of the stored values for this SurfaceBounds object
-