EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/sPHENIX/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 | 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 |
ActsMatrixD< 2, 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
enum Acts::CylinderBounds::BoundValues : int |
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
|
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 135 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 135 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 131 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 131 of file CylinderBounds.hpp
References m_closed().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 99 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 99 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(), and ActsExamples::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 40 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 40 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 48 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 48 of file CylinderBounds.cpp
References kdfinder::abs(), 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 31 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 31 of file CylinderBounds.cpp
References Acts::eBoundLoc0, and Acts::eBoundLoc1.
|
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 24 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 24 of file CylinderBounds.cpp
References Acts::eBoundLoc0, Acts::eBoundLoc1, and Acts::detail::radian_sym().
|
finalvirtual |
Output Method for std::ostream.
Implements Acts::SurfaceBounds.
Definition at line 73 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 73 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 20 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 20 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 125 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 125 of file CylinderBounds.hpp
References m_values.
|
private |
Indicator if the bounds are closed.
Definition at line 111 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 111 of file CylinderBounds.hpp
|
private |
The bound radius, half Z, half phi and average phi.
Definition at line 109 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 109 of file CylinderBounds.hpp