![]() |
ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Surfaces/CylinderBounds.hpp>
Inheritance diagram for Acts::CylinderBounds:
Collaboration diagram for Acts::CylinderBounds: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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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