Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/CylinderBounds.hpp>
Public Types | |
enum | BoundValues : int { eR = 0, eHalfLengthZ = 1, eHalfPhiSector = 2, eAveragePhi = 3, eBevelMinZ = 4, eBevelMaxZ = 5, eSize = 6 } |
Public Types inherited from Acts::SurfaceBounds | |
enum | BoundsType : int { eCone = 0, eCylinder = 1, eDiamond = 2, eDisc = 3, eEllipse = 4, eLine = 5, eRectangle = 6, eTrapezoid = 7, eTriangle = 8, eDiscTrapezoid = 9, eConvexPolygon = 10, eAnnulus = 11, eBoundless = 12, eOther = 13 } |
Public Member Functions | |
CylinderBounds ()=delete | |
CylinderBounds (double r, double halfZ, double halfPhi=M_PI, double avgPhi=0., double bevelMinZ=0., double bevelMaxZ=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 Vector2 &lposition, const BoundaryCheck &bcheck) const final |
bool | inside3D (const Vector3 &position, const BoundaryCheck &bcheck=true) const |
double | get (BoundValues bValue) const |
bool | coversFullAzimuth () const |
Returns true for full phi coverage. | |
std::vector< Vector3 > | createCircles (const Transform3 trans, size_t lseg) const |
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) |
Vector2 | shifted (const Vector2 &lposition) const |
ActsMatrix< 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 .
CylinderBounds also supports beveled sides defined by an angle. Different angles can be defined on both sides of the cylinder. A positive angle is defined as "extruding" from the defined Zlength, while a negative angle is "intruding" on the Zlength.
Definition at line 49 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 49 of file CylinderBounds.hpp
enum Acts::CylinderBounds::BoundValues : int |
Definition at line 51 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 51 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 |
bevelMinZ | (optional) The bevel on the negative z side |
bevelMaxZ | (optional) The bevel on the positive z sid The bevel on the positive z side |
Definition at line 71 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 71 of file CylinderBounds.hpp
References physmon_track_finding_ttbar::r.
Constructor - from fixed size array
values | The parameter values |
Definition at line 82 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 82 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 160 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 160 of file CylinderBounds.hpp
References eAveragePhi, eBevelMaxZ, eBevelMinZ, eHalfLengthZ, eHalfPhiSector, eR, and Acts::detail::radian_sym().
Referenced by CylinderBounds(), and m_closed().
|
inline |
Returns true for full phi coverage.
Definition at line 156 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 156 of file CylinderBounds.hpp
References m_closed().
std::vector< Acts::Vector3 > Acts::CylinderBounds::createCircles | ( | const Transform3 | trans, |
size_t | lseg | ||
) | const |
Create the bows/circles on either side of the cylinder
trans | is the global transform |
lseg | are the numbero if phi segments |
Helper method to create the segment
Definition at line 141 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 141 of file CylinderBounds.cpp
References Acts::detail::VerticesHelper::createSegment(), eR, Acts::detail::VerticesHelper::phiSegments(), testSigmaEff::v, and ActsExamples::HepMC3Event::vertices().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 118 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 118 of file CylinderBounds.hpp
References m_values.
Referenced by Acts::adjustBinUtility(), Acts::CylinderVolumeBuilder::analyzeContent(), Acts::MappingMaterialDecorator::binnedSurfaceMaterial(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_FIXTURE_TEST_CASE(), Acts::LayerArrayCreator::createNavigationSurface(), 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 44 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 44 of file CylinderBounds.cpp
References Acts::Test::boundaryCheck, eR, Acts::BoundaryCheck::isInside(), Acts::BoundaryCheck::transformed(), and ActsExamples::HepMC3Event::vertices().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
bool Acts::CylinderBounds::inside3D | ( | const Vector3 & | position, |
const BoundaryCheck & | bcheck = true |
||
) | const |
Specialized method for CylinderBounds that checks if a global position is within the cylinder cover
position | is the position in the cylinder frame |
bcheck | is the boundary check directive |
Definition at line 94 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 94 of file CylinderBounds.cpp
References eR, Acts::if(), Acts::BoundaryCheck::isInside(), Acts::BoundaryCheck::m_tolerance, Acts::BoundaryCheck::m_type, Acts::VectorHelpers::perp(), ActsTests::PropagationDatasets::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 35 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 35 of file CylinderBounds.cpp
References Acts::eBoundLoc0, Acts::eBoundLoc1, eR, and j.
|
inline |
Definition at line 75 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 75 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 28 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 28 of file CylinderBounds.cpp
References Acts::eBoundLoc0, Acts::eBoundLoc1, eR, and Acts::detail::radian_sym().
|
finalvirtual |
Output Method for std::ostream.
Implements Acts::SurfaceBounds.
Definition at line 129 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 129 of file CylinderBounds.cpp
References eR.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::SurfaceBounds.
Definition at line 24 of file CylinderBounds.cpp.
View newest version in sPHENIX GitHub at line 24 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 150 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 150 of file CylinderBounds.hpp
References m_values.
|
private |
Indicator if the bounds are closed.
Definition at line 136 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 136 of file CylinderBounds.hpp
The bound radius, half Z, half phi and average phi.
Definition at line 134 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 134 of file CylinderBounds.hpp