Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/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 Vector2 &lposition, const BoundaryCheck &bcheck) const final |
std::vector< Vector2 > | 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 35 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 35 of file EllipseBounds.hpp
Definition at line 37 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 37 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 57 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 57 of file EllipseBounds.hpp
Constructor - from fixed size array
values | The parameter values |
Definition at line 67 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 67 of file EllipseBounds.hpp
References checkConsistency().
|
overridedefault |
|
finalvirtual |
Bounding box parameters
Implements Acts::PlanarBounds.
Definition at line 56 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 56 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 127 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 127 of file EllipseBounds.hpp
References eAveragePhi, eHalfPhiSector, eInnerRx, eOuterRx, and Acts::detail::radian_sym().
Referenced by EllipseBounds(), and m_boundingBox().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 110 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 110 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 30 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 30 of file EllipseBounds.cpp
References Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::BoundaryCheck::m_tolerance, ActsTests::PropagationDatasets::phi, Acts::VectorHelpers::phi(), Acts::detail::radian_sym(), and square().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Definition at line 60 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 60 of file EllipseBounds.hpp
References checkConsistency().
|
finalvirtual |
Output Method for std::ostream.
Implements Acts::SurfaceBounds.
Definition at line 61 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 61 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 21 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 21 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 121 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 121 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 49 of file EllipseBounds.cpp.
View newest version in sPHENIX GitHub at line 49 of file EllipseBounds.cpp
References Acts::detail::VerticesHelper::ellipsoidVertices().
|
private |
Definition at line 114 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 114 of file EllipseBounds.hpp
Definition at line 113 of file EllipseBounds.hpp.
View newest version in sPHENIX GitHub at line 113 of file EllipseBounds.hpp