ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Surfaces/DiamondBounds.hpp>
Public Types | |
enum | BoundValues { eHalfLengthXnegY = 0, eHalfLengthXzeroY = 1, eHalfLengthXposY = 2, eHalfLengthYneg = 3, eHalfLengthYpos = 4, eSize = 5 } |
Public Member Functions | |
DiamondBounds ()=delete | |
DiamondBounds (double halfXnegY, double halfXzeroY, double halfXposY, double halfYneg, double halfYpos) noexcept(false) | |
m_boundingBox (Vector2D{-(*std::max_element(m_values.begin(), m_values.begin()+2)),-halfYneg}, Vector2D{*std::max_element(m_values.begin(), m_values.begin()+2), halfYpos}) | |
DiamondBounds (const std::array< double, eSize > &values) noexcept(false) | |
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 |
Public Attributes | |
Vector2D | |
Private Member Functions | |
void | checkConsistency () noexcept(false) |
Private Attributes | |
std::array< double, eSize > | m_values |
RectangleBounds | m_boundingBox |
internal bounding box cache | |
Bounds for a double trapezoidal ("diamond"), planar Surface.
Definition at line 26 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 26 of file DiamondBounds.hpp
eHalfLengthXnegY | |
eHalfLengthXzeroY | |
eHalfLengthXposY | |
eHalfLengthYneg | |
eHalfLengthYpos | |
eSize |
Definition at line 28 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 28 of file DiamondBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor for convex hexagon symmetric about the y axis
halfXnegY | is the halflength in x at minimal y |
halfXzeroY | is the halflength in x at y = 0 |
halfXposY | is the halflength in x at maximal y |
halfYneg | is the halflength into y < 0 |
halfYpos | is the halflength into y > 0 |
Definition at line 46 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 46 of file DiamondBounds.hpp
|
inlinenoexcept |
Constructor - from fixed size array
values | The parameter values |
Definition at line 61 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 61 of file DiamondBounds.hpp
References eHalfLengthYneg, and values().
|
finalvirtual |
Bounding box parameters
Implements Acts::PlanarBounds.
Definition at line 42 of file DiamondBounds.cpp.
View newest version in sPHENIX GitHub at line 42 of file DiamondBounds.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 131 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 131 of file DiamondBounds.hpp
References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthXzeroY, and v.
|
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 24 of file DiamondBounds.cpp.
View newest version in sPHENIX GitHub at line 24 of file DiamondBounds.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 114 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 114 of file DiamondBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
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.
lposition | Local position (assumed to be in right surface frame) |
bcheck | boundary check directive |
Implements Acts::SurfaceBounds.
Definition at line 19 of file DiamondBounds.cpp.
View newest version in sPHENIX GitHub at line 19 of file DiamondBounds.cpp
References Acts::BoundaryCheck::isInside().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 49 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 49 of file DiamondBounds.hpp
References m_values.
|
finalvirtual |
Output Method for std::ostream
sl | is the ostream in which it is dumped |
Implements Acts::SurfaceBounds.
Definition at line 46 of file DiamondBounds.cpp.
View newest version in sPHENIX GitHub at line 46 of file DiamondBounds.cpp
References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthXzeroY, eHalfLengthYneg, and eHalfLengthYpos.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::SurfaceBounds.
Definition at line 15 of file DiamondBounds.cpp.
View newest version in sPHENIX GitHub at line 15 of file DiamondBounds.cpp
References Acts::SurfaceBounds::eDiamond.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::SurfaceBounds.
Definition at line 125 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 125 of file DiamondBounds.hpp
Referenced by DiamondBounds().
|
finalvirtual |
Return the vertices
lseg | the number of segments used to approximate and eventually curved line |
Implements Acts::PlanarBounds.
Definition at line 29 of file DiamondBounds.cpp.
View newest version in sPHENIX GitHub at line 29 of file DiamondBounds.cpp
References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthXzeroY, eHalfLengthYneg, eHalfLengthYpos, x1, x2, x3, y1, y2, and y3.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
internal bounding box cache
Definition at line 118 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 118 of file DiamondBounds.hpp
|
private |
Definition at line 117 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 117 of file DiamondBounds.hpp
Referenced by get(), and m_boundingBox().
Acts::DiamondBounds::Vector2D |
Definition at line 66 of file DiamondBounds.hpp.
View newest version in sPHENIX GitHub at line 66 of file DiamondBounds.hpp