ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Surfaces/TrapezoidBounds.hpp>
Public Types | |
enum | BoundValues { eHalfLengthXnegY = 0, eHalfLengthXposY = 1, eHalfLengthY = 2, eSize = 3 } |
Public Member Functions | |
TrapezoidBounds ()=delete | |
TrapezoidBounds (double halfXnegY, double halfXposY, double halfY) noexcept(false) | |
m_boundingBox (std::max(halfXnegY, halfXposY), halfY) | |
TrapezoidBounds (const std::array< double, eSize > &values) noexcept(false) | |
~TrapezoidBounds () override | |
BoundsType | type () const final |
std::vector< double > | values () const final |
bool | inside (const Vector2D &lposition, const BoundaryCheck &bcheck) const final |
double | distanceToBoundary (const Vector2D &lposition) const final |
std::vector< Vector2D > | vertices (unsigned int lseg=1) const final |
const RectangleBounds & | boundingBox () const final |
std::ostream & | toStream (std::ostream &sl) const final |
double | get (BoundValues bValue) const |
Private Member Functions | |
void | checkConsistency () noexcept(false) |
Private Attributes | |
std::array< double, eSize > | m_values |
RectangleBounds | m_boundingBox |
Bounds for a trapezoidal, planar Surface.
Definition at line 27 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 27 of file TrapezoidBounds.hpp
Definition at line 29 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 29 of file TrapezoidBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor for symmetric Trapezoid
halfXnegY | minimal half length X, definition at negative Y |
halfXposY | maximal half length X, definition at positive Y |
halfY | half length Y - defined at x=0 |
Definition at line 43 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 43 of file TrapezoidBounds.hpp
References Acts::Test::halfY.
|
inlinenoexcept |
Constructor for symmetric Trapezoid - from fixed size array
values | the values to be stream in |
Definition at line 53 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 53 of file TrapezoidBounds.hpp
References checkConsistency().
|
overridedefault |
|
finalvirtual |
Bounding box parameters
Implements Acts::PlanarBounds.
Definition at line 39 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 39 of file TrapezoidBounds.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlineprivatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 157 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 157 of file TrapezoidBounds.hpp
References eHalfLengthXnegY, eHalfLengthXposY, and eHalfLengthY.
Referenced by m_boundingBox(), and TrapezoidBounds().
|
finalvirtual |
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
lposition | is the local position to check for the distance |
Implements Acts::SurfaceBounds.
Definition at line 26 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 26 of file TrapezoidBounds.cpp
References Acts::BoundaryCheck::distance().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 140 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 140 of file TrapezoidBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
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 - axis of the local frame.
lpos | is the local position to be checked (Cartesian local frame) |
bcheck | is the boundary check directive |
The cases are:
(0) or bounds are 0 || 0
(1) the local position is outside bounds
(2) the local position is inside bounds, but outside maximum bounds
(3) the local position is inside bounds AND inside minimum bounds
(4) the local position is inside bounds AND inside maximum bounds, so that it depends on the coordinate (5) the local position fails test of (4)
The inside check is done using single equations of straight lines and one has to take care if a point lies on the positive half area(I) or the negative one(II). Denoting and as minHalfX
respectively maxHalfX
, such as as halfY
, the equations for the straing lines in (I) and (II) can be written as:
lposition | Local position (assumed to be in right surface frame) |
bcheck | boundary check directive |
Implements Acts::SurfaceBounds.
Definition at line 21 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 21 of file TrapezoidBounds.cpp
References Acts::BoundaryCheck::isInside().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 46 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 46 of file TrapezoidBounds.hpp
References checkConsistency().
|
finalvirtual |
Output Method for std::ostream
sl | is the ostream to be dumped into |
Implements Acts::SurfaceBounds.
Definition at line 43 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 43 of file TrapezoidBounds.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::SurfaceBounds.
Definition at line 17 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 17 of file TrapezoidBounds.cpp
References Acts::SurfaceBounds::eTrapezoid.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlinefinalvirtual |
Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds
Implements Acts::SurfaceBounds.
Definition at line 151 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 151 of file TrapezoidBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the vertices
lseg | the number of segments used to approximate and eventually curved line |
Implements Acts::PlanarBounds.
Definition at line 31 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 31 of file TrapezoidBounds.cpp
References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, and Acts::Test::hy.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Definition at line 144 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 144 of file TrapezoidBounds.hpp
|
private |
Definition at line 143 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 143 of file TrapezoidBounds.hpp