ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Surfaces/CylinderBounds.hpp>
Public Types | |
enum | BoundValues : int { eR = 0, eHalfLengthZ = 1, eHalfPhiSector = 2, eAveragePhi = 3, eSize = 4 } |
Public Types inherited from Acts::SurfaceBounds | |
enum | BoundsType : int { eCone = 0, eCylinder = 1, eDiamond = 2, eDisc = 3, eEllipse = 5, eLine = 6, eRectangle = 7, eTrapezoid = 8, eTriangle = 9, eDiscTrapezoid = 10, eConvexPolygon = 11, eAnnulus = 12, eBoundless = 13, eOther = 14 } |
Public Member Functions | |
CylinderBounds ()=delete | |
CylinderBounds (double r, double halfZ, double halfPhi=M_PI, double avgPhi=0.) noexcept(false) | |
m_closed (std::abs(halfPhi-M_PI)< s_epsilon) | |
CylinderBounds (const std::array< double, eSize > &values) noexcept(false) | |
~CylinderBounds () override=default | |
BoundsType | type () const final |
std::vector< double > | values () const final |
bool | inside (const Vector2D &lposition, const BoundaryCheck &bcheck) const final |
bool | inside3D (const Vector3D &position, const BoundaryCheck &bcheck=true) const |
double | distanceToBoundary (const Vector2D &lposition) const final |
double | get (BoundValues bValue) const |
bool | coversFullAzimuth () const |
Returns true for full phi coverage. | |
std::ostream & | toStream (std::ostream &sl) const final |
Output Method for std::ostream. | |
Public Member Functions inherited from Acts::SurfaceBounds | |
virtual | ~SurfaceBounds ()=default |
Private Member Functions | |
void | checkConsistency () noexcept(false) |
Vector2D | shifted (const Vector2D &lposition) const |
ActsSymMatrixD< 2 > | jacobian () const |
Return the jacobian into the polar coordinate. | |
Private Attributes | |
std::array< double, eSize > | m_values |
The bound radius, half Z, half phi and average phi. | |
bool | m_closed {false} |
Indicator if the bounds are closed. | |
Bounds for a cylindrical Surface.
These bounds may be used for a CylinderSurface In case of bounds for a StraightLineSurface the radius determines the radius within a localPosition is regarded as inside bounds.
CylinderBounds also enhance the possibility of a cylinder segment with an opening angle around an average angle .
Definition at line 35 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 35 of file CylinderBounds.hpp
Definition at line 37 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 37 of file CylinderBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor - full cylinder
r | The radius of the cylinder |
halfZ | The half length in z |
halfPhi | The half opening angle |
avgPhi | (optional) The phi value from which the opening angle spans |
Definition at line 53 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 53 of file CylinderBounds.hpp
References r.
|
inlinenoexcept |
Constructor - from fixed size array
values | The parameter values |
Definition at line 63 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 63 of file CylinderBounds.hpp
References checkConsistency().
|
overridedefault |
|
inlineprivatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 141 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 141 of file CylinderBounds.hpp
References eAveragePhi, eHalfLengthZ, eHalfPhiSector, eR, M_PI, and Acts::detail::radian_sym().
Referenced by CylinderBounds(), and m_closed().
|
inline |
Returns true for full phi coverage.
Definition at line 137 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 137 of file CylinderBounds.hpp
References m_closed().
|
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 72 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 72 of file CylinderBounds.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 105 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 105 of file CylinderBounds.hpp
References m_values.
Referenced by Acts::JsonGeometryConverter::addSurfaceToJson(), Acts::adjustBinUtility(), Acts::CylinderVolumeBuilder::analyzeContent(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_FIXTURE_TEST_CASE(), Acts::LayerArrayCreator::createNavigationSurface(), Acts::JsonGeometryConverter::DefaultBin(), Acts::CylinderVolumeHelper::estimateAndCheckDimension(), Acts::ProtoLayer::measure(), FW::Obj::ObjSurfaceWriter::write(), and FW::RootMaterialTrackWriter::writeT().
|
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 39 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 39 of file CylinderBounds.cpp
References Acts::BoundaryCheck::isInside(), and Acts::BoundaryCheck::transformed().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
bool Acts::CylinderBounds::inside3D | ( | const Vector3D & | position, |
const BoundaryCheck & | bcheck = true |
||
) | const |
Specialized method for CylinderBounds that checks if a global position is within the the cylinder cover
position | is the position in the cylinder frame |
bcheck | is the boundary check directive |
Definition at line 47 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 47 of file CylinderBounds.cpp
References kdfinder::abs(), if(), Acts::BoundaryCheck::isInside(), Acts::BoundaryCheck::m_tolerance, Acts::BoundaryCheck::m_type, Acts::VectorHelpers::perp(), phi, Acts::detail::radian_sym(), Acts::s_onSurfaceTolerance, and Acts::BoundaryCheck::transformed().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Return the jacobian into the polar coordinate.
Definition at line 30 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 30 of file CylinderBounds.cpp
References Acts::eLOC_RPHI, and Acts::eLOC_Z.
|
inline |
Definition at line 56 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 56 of file CylinderBounds.hpp
References checkConsistency().
Referenced by coversFullAzimuth().
|
private |
Helper method to shift into the phi-frame
lposition | the polar coordinates in the global frame |
Definition at line 23 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 23 of file CylinderBounds.cpp
References Acts::eLOC_RPHI, Acts::eLOC_Z, and Acts::detail::radian_sym().
|
finalvirtual |
Output Method for std::ostream.
Implements Acts::SurfaceBounds.
Definition at line 79 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 79 of file CylinderBounds.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::SurfaceBounds.
Definition at line 19 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 19 of file CylinderBounds.cpp
References Acts::SurfaceBounds::eCylinder.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::SurfaceBounds.
Definition at line 131 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 131 of file CylinderBounds.hpp
References m_values.
|
private |
Indicator if the bounds are closed.
Definition at line 117 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 117 of file CylinderBounds.hpp
|
private |
The bound radius, half Z, half phi and average phi.
Definition at line 115 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 115 of file CylinderBounds.hpp