![]() |
Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/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, 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().
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 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().
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 156 of file CylinderBounds.hpp.
View newest version in sPHENIX GitHub at line 156 of file CylinderBounds.hpp
References m_closed().
Here is the call graph for this function:| 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().
Here is the call graph for this function:
|
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().
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 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
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 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().
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 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().
Here is the call graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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