![]() |
Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/CylinderVolumeBounds.hpp>
Inheritance diagram for Acts::CylinderVolumeBounds:
Collaboration diagram for Acts::CylinderVolumeBounds:Public Types | |
| enum | BoundValues : unsigned int { eMinR = 0, eMaxR = 1, eHalfLengthZ = 2, eHalfPhiSector = 3, eAveragePhi = 4, eBevelMinZ = 5, eBevelMaxZ = 6, eSize } |
| for streaming and access More... | |
Public Types inherited from Acts::VolumeBounds | |
| enum | BoundsType : int { eCone = 0, eCuboid = 1, eCutoutCylinder = 2, eCylinder = 3, eGenericCuboid = 4, eTrapezoid = 5, eOther = 6 } |
Public Member Functions | |
| CylinderVolumeBounds ()=delete | |
| CylinderVolumeBounds (double rmin, double rmax, double halfz, double halfphi=M_PI, double avgphi=0., double bevelMinZ=0., double bevelMaxZ=0.) noexcept(false) | |
| buildSurfaceBounds () | |
| CylinderVolumeBounds (const std::array< double, eSize > &values) noexcept(false) | |
| CylinderVolumeBounds (const CylinderBounds &cBounds, double thickness) noexcept(false) | |
| CylinderVolumeBounds (const RadialBounds &rBounds, double thickness) noexcept(false) | |
| CylinderVolumeBounds (const CylinderVolumeBounds &cylbo)=default | |
| ~CylinderVolumeBounds () override=default | |
| CylinderVolumeBounds & | operator= (const CylinderVolumeBounds &cylbo)=default |
| VolumeBounds::BoundsType | type () const final |
| std::vector< double > | values () const final |
| bool | inside (const Vector3 &pos, double tol=0.) const override |
| OrientedSurfaces | orientedSurfaces (const Transform3 &transform=Transform3::Identity()) const override |
| Volume::BoundingBox | boundingBox (const Transform3 *trf=nullptr, const Vector3 &envelope={0, 0, 0}, const Volume *entity=nullptr) const final |
| Vector3 | binningOffset (BinningValue bValue) const override |
| double | binningBorder (BinningValue bValue) const override |
| std::ostream & | toStream (std::ostream &sl) const override |
| Output Method for std::ostream. | |
| double | get (BoundValues bValue) const |
Public Member Functions inherited from Acts::VolumeBounds | |
| VolumeBounds ()=default | |
| virtual | ~VolumeBounds ()=default |
Private Member Functions | |
| void | checkConsistency () noexcept(false) |
| void | buildSurfaceBounds () |
| Helper method to create the surface bounds. | |
| template<class stream_t > | |
| stream_t & | dumpT (stream_t &dt) const |
Private Attributes | |
| std::array< double, eSize > | m_values {} |
| The internal version of the bounds can be float/double. | |
| std::shared_ptr< const CylinderBounds > | m_innerCylinderBounds {nullptr} |
| Bounds of the inner CylinderBounds. | |
| std::shared_ptr< const CylinderBounds > | m_outerCylinderBounds {nullptr} |
| Bounds of the inner CylinderBounds. | |
| std::shared_ptr< const RadialBounds > | m_discBounds {nullptr} |
| Bounds of the bottom/top Radial. | |
| std::shared_ptr< const PlanarBounds > | m_sectorPlaneBounds {nullptr} |
| Bounds of the sector planes. | |
[0] and [1] at positive 
Bounds for a cylindrical Volume, the orientedSurfaces(..) method creates a vector of up to 6 surfaces:
case A) 3 Surfaces (full cylindrical tube): BoundarySurfaceFace [index]:
, parallel to
plane at negative 
, parallel to
plane at positive 
case B) 4 Surfaces (tube with inner and outer radius): BoundarySurfaceFace [index]:
, parallel to
plane at negative 
, parallel to
plane at positive 


case C) 6 Surfaces (sectoral tube with inner and outer radius): BoundarySurfaceFace [index]:
and
, parallel to
plane at negative 
and
, parallel to
plane at positive 



Definition at line 72 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 72 of file CylinderVolumeBounds.hpp
| enum Acts::CylinderVolumeBounds::BoundValues : unsigned int |
for streaming and access
Definition at line 75 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 75 of file CylinderVolumeBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor
| rmin | The inner radius of the cylinder |
| rmax | The outer radius of the cylinder |
| halfz | The half length in z |
| halfphi | The half lopening angle |
| avgphi | The average phi value |
| bevelMinZ | The bevel angle, in radians, for the negative side |
| bevelMaxZ | The bevel angle, in radians, for the positive side |
Definition at line 97 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 97 of file CylinderVolumeBounds.hpp
|
inlinenoexcept |
Constructor - from a fixed size array
| values | The bound values |
Definition at line 109 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 109 of file CylinderVolumeBounds.hpp
References buildSurfaceBounds(), and checkConsistency().
Here is the call graph for this function:
|
noexcept |
Constructor - extruded from cylinder bounds and thickness
| cBounds | the cylinder bounds |
| thickness | of the extrusion |
Definition at line 26 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 26 of file CylinderVolumeBounds.cpp
References buildSurfaceBounds(), eR, and thickness.
Here is the call graph for this function:
|
noexcept |
Constructor - extruded from radial bounds and thickness
| rBounds | the Radial bounds |
| thickness |
Definition at line 44 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 44 of file CylinderVolumeBounds.cpp
References buildSurfaceBounds(), double(), rBounds, and thickness.
Here is the call graph for this function:
|
default |
Copy Constructor
| cylbo | is the source cylinder volume bounds for the copy |
|
overridedefault |
|
inlineoverridevirtual |
Binning borders in double
| bValue | is the type used for the binning |
Reimplemented from Acts::VolumeBounds.
Definition at line 239 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 239 of file CylinderVolumeBounds.hpp
References Acts::VolumeBounds::binningBorder(), Acts::binR, Acts::binZ, eHalfLengthZ, eMaxR, and eMinR.
Here is the call graph for this function:
|
inlineoverridevirtual |
Binning offset - overloaded for some R-binning types
| bValue | is the type used for the binning |
Reimplemented from Acts::VolumeBounds.
Definition at line 231 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 231 of file CylinderVolumeBounds.hpp
References Acts::VolumeBounds::binningOffset(), Acts::binR, Acts::binRPhi, eMaxR, and eMinR.
Here is the call graph for this function:
|
finalvirtual |
Construct bounding box for this shape
| trf | Optional transform |
| envelope | Optional envelope to add / subtract from min/max |
| entity | Entity to associate this bounding box with |
Implements Acts::VolumeBounds.
Definition at line 161 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 161 of file CylinderVolumeBounds.cpp
References xmax, xmin, ymax, and ymin.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the caller graph for this function:| void Acts::CylinderVolumeBounds::buildSurfaceBounds | ( | ) |
Definition at line 139 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 139 of file CylinderVolumeBounds.cpp
References Acts::s_epsilon.
Referenced by CylinderVolumeBounds().
Here is the caller graph for this function:
|
private |
Helper method to create the surface bounds.
|
inlineprivatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 267 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 267 of file CylinderVolumeBounds.hpp
References eAveragePhi, eBevelMaxZ, eBevelMinZ, eHalfLengthZ, eHalfPhiSector, eMaxR, eMinR, and Acts::detail::radian_sym().
Referenced by CylinderVolumeBounds().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Templated dumpT method
| stream_t | The type for the dump stream |
| dt | The dump stream object |
Definition at line 250 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 250 of file CylinderVolumeBounds.hpp
References eAveragePhi, eBevelMaxZ, eBevelMinZ, eHalfLengthZ, eHalfPhiSector, eMaxR, and eMinR.
|
inline |
Access to the bound values
| bValue | the class nested enum for the array access |
Definition at line 190 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 190 of file CylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::adjustBinUtility(), Acts::CylinderVolumeBuilder::analyzeContent(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_DATA_TEST_CASE(), Acts::CylinderVolumeHelper::createContainerTrackingVolume(), Acts::CylinderVolumeHelper::estimateAndCheckDimension(), Acts::CylinderVolumeHelper::glueTrackingVolumes(), and Acts::CylinderVolumeBuilder::trackingVolume().
Here is the caller graph for this function:
|
inlineoverridevirtual |
This method checks if position in the 3D volume frame is inside the cylinder
| pos | is a global position to be checked |
| tol | is the tolerance for the check |
Implements Acts::VolumeBounds.
Definition at line 218 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 218 of file CylinderVolumeBounds.hpp
References eHalfLengthZ, eHalfPhiSector, eMaxR, eMinR, Acts::VectorHelpers::perp(), ActsTests::PropagationDatasets::phi, and Acts::VectorHelpers::phi().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the call graph for this function:
Here is the caller graph for this function:
|
default |
|
overridevirtual |
Oriented surfaces, i.e. the decomposed boundary surfaces and the according navigation direction into the volume given the normal vector on the surface
| transform | is the 3D transform to be applied to the boundary surfaces to position them in 3D space |
It will throw an exception if the orientation prescription is not adequate
Implements Acts::VolumeBounds.
Definition at line 61 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 61 of file CylinderVolumeBounds.cpp
References Acts::Test::cSurface, eAveragePhi, eBevelMaxZ, eBevelMinZ, eHalfLengthZ, eHalfPhiSector, eMaxR, eMinR, m_discBounds, m_innerCylinderBounds, m_outerCylinderBounds, m_sectorPlaneBounds, testing::internal::move(), Acts::Direction::Negative, Acts::Direction::Positive, pSurface, and Acts::Test::transform.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_DATA_TEST_CASE(), and Acts::GeometryView3D::drawSurfaceArray().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Output Method for std::ostream.
Implements Acts::VolumeBounds.
Definition at line 157 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 157 of file CylinderVolumeBounds.cpp
|
inlinefinalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::VolumeBounds.
Definition at line 137 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 137 of file CylinderVolumeBounds.hpp
References Acts::VolumeBounds::eCylinder.
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 261 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 261 of file CylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the caller graph for this function:
|
private |
Bounds of the bottom/top Radial.
Definition at line 200 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 200 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Bounds of the inner CylinderBounds.
Definition at line 196 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 196 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Bounds of the inner CylinderBounds.
Definition at line 198 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 198 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Bounds of the sector planes.
Definition at line 202 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 202 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
The internal version of the bounds can be float/double.
Definition at line 194 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 194 of file CylinderVolumeBounds.hpp