ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Surfaces/EllipseBounds.hpp>
Public Types | |
enum | BoundValues { eInnerRx = 0, eInnerRy = 1, eOuterRx = 2, eOuterRy = 3, eHalfPhiSector = 4, eAveragePhi = 5, eSize = 6 } |
Public Member Functions | |
EllipseBounds ()=delete | |
EllipseBounds (double innerRx, double innerRy, double outerRx, double outerRy, double halfPhi=M_PI, double averagePhi=0.) noexcept(false) | |
m_boundingBox (m_values[eInnerRy], m_values[eOuterRy]) | |
EllipseBounds (const std::array< double, eSize > &values) noexcept(false) | |
~EllipseBounds () override=default | |
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) const final |
const RectangleBounds & | boundingBox () const final |
std::ostream & | toStream (std::ostream &sl) const final |
Output Method for std::ostream. | |
double | get (BoundValues bValue) const |
Private Member Functions | |
void | checkConsistency () noexcept(false) |
Private Attributes | |
std::array< double, eSize > | m_values |
RectangleBounds | m_boundingBox |
Class to describe the bounds for a planar ellispoid surface.
By providing an argument for hphisec, the bounds can be restricted to a phi-range around the center position.
Definition at line 31 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 31 of file EllipseBounds.hpp
Definition at line 33 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 33 of file EllipseBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor for full of an ellipsoid ring
innerRx | The inner ellipse radius in x |
innerRy | The inner ellipse radius in y |
outerRx | The outer ellipse radius in x |
outerRy | The outer ellipse radius in y |
halfPhi | spanning phi sector (is set to pi as default) |
averagePhi | average phi (is set to 0. as default) |
Definition at line 53 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 53 of file EllipseBounds.hpp
|
inlinenoexcept |
Constructor - from fixed size array
values | The parameter values |
Definition at line 63 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 63 of file EllipseBounds.hpp
References checkConsistency().
|
overridedefault |
|
finalvirtual |
Bounding box parameters
Implements Acts::PlanarBounds.
Definition at line 125 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 125 of file EllipseBounds.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 129 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 129 of file EllipseBounds.hpp
References eAveragePhi, eHalfPhiSector, eInnerRx, eOuterRx, M_PI, and Acts::detail::radian_sym().
Referenced by EllipseBounds(), and m_boundingBox().
|
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 54 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 54 of file EllipseBounds.cpp
References a, kdfinder::abs(), b, Acts::eLOC_X, Acts::eLOC_Y, fb(), M_PI, min, Acts::VectorHelpers::perp(), phi, r, Acts::detail::radian_sym(), and sn.
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 112 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 112 of file EllipseBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
This method checks if the point given in the local coordinates is between two ellipsoids if only tol0 is given and additional in the phi sector is tol1 is given
lposition | Local position (assumed to be in right surface frame) |
bcheck | boundary check directive |
Implements Acts::SurfaceBounds.
Definition at line 29 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 29 of file EllipseBounds.cpp
References Acts::eLOC_X, Acts::eLOC_Y, Acts::BoundaryCheck::m_tolerance, Acts::VectorHelpers::phi(), phi, Acts::detail::radian_sym(), and square().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Definition at line 56 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 56 of file EllipseBounds.hpp
References checkConsistency().
|
finalvirtual |
Output Method for std::ostream.
Implements Acts::SurfaceBounds.
Definition at line 130 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 130 of file EllipseBounds.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::SurfaceBounds.
Definition at line 20 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 20 of file EllipseBounds.cpp
References Acts::SurfaceBounds::eEllipse.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::SurfaceBounds.
Definition at line 123 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 123 of file EllipseBounds.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, here it refers to the full 2PI Ellipse |
Implements Acts::PlanarBounds.
Definition at line 118 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 118 of file EllipseBounds.cpp
References Acts::detail::VerticesHelper::ellispoidVertices().
|
private |
Definition at line 116 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 116 of file EllipseBounds.hpp
|
private |
Definition at line 115 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 115 of file EllipseBounds.hpp