EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/CylinderVolumeBounds.hpp>
Public Types | |
enum | BoundValues : unsigned int { eMinR = 0, eMaxR = 1, eHalfLengthZ = 2, eHalfPhiSector = 3, eAveragePhi = 4, 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.) 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 Vector3D &pos, double tol=0.) const override |
OrientedSurfaces | orientedSurfaces (const Transform3D &transform=Transform3D::Identity()) const override |
Volume::BoundingBox | boundingBox (const Transform3D *trf=nullptr, const Vector3D &envelope={0, 0, 0}, const Volume *entity=nullptr) const final |
Vector3D | 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]:
case B) 4 Surfaces (tube with inner and outer radius): BoundarySurfaceFace [index]:
case C) 6 Surfaces (sectoral tube with inner and outer radius): BoundarySurfaceFace [index]:
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 |
Definition at line 93 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 93 of file CylinderVolumeBounds.hpp
References rmax().
|
inlinenoexcept |
Constructor - from a fixed size array
values | The bound values |
Definition at line 104 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 104 of file CylinderVolumeBounds.hpp
References buildSurfaceBounds(), and checkConsistency().
|
noexcept |
Constructor - extruded from cylinder bounds and thickness
cbounds | the cylinder bounds |
thickness | of the extrusion |
Definition at line 23 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 23 of file CylinderVolumeBounds.cpp
References buildSurfaceBounds(), and thickness.
|
noexcept |
Constructor - extruded from radial bounds and thickness
rbounds | the Radial bounds |
thickness |
Definition at line 39 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 39 of file CylinderVolumeBounds.cpp
References buildSurfaceBounds(), and thickness.
|
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 235 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 235 of file CylinderVolumeBounds.hpp
References Acts::VolumeBounds::binningBorder(), Acts::binR, Acts::binZ, eHalfLengthZ, eMaxR, and eMinR.
|
inlineoverridevirtual |
Binning offset - overloaded for some R-binning types
bValue | is the type used for the binning |
Reimplemented from Acts::VolumeBounds.
Definition at line 227 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 227 of file CylinderVolumeBounds.hpp
References Acts::VolumeBounds::binningOffset(), Acts::binR, Acts::binRPhi, eMaxR, and eMinR.
|
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 122 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 122 of file CylinderVolumeBounds.cpp
References cos(), M_PI, xmax, xmin, ymax, and ymin.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
void Acts::CylinderVolumeBounds::buildSurfaceBounds | ( | ) |
Definition at line 102 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 102 of file CylinderVolumeBounds.cpp
References kdfinder::abs(), M_PI, and Acts::s_epsilon.
Referenced by CylinderVolumeBounds().
|
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 262 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 262 of file CylinderVolumeBounds.hpp
References eAveragePhi, eHalfLengthZ, eHalfPhiSector, eMaxR, eMinR, M_PI, and Acts::detail::radian_sym().
Referenced by CylinderVolumeBounds().
|
private |
Templated dumpT method
stream_t | The type fo the dump stream |
dt | The dump stream object |
Definition at line 246 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 246 of file CylinderVolumeBounds.hpp
References eAveragePhi, eHalfLengthZ, eHalfPhiSector, eMaxR, and eMinR.
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 185 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 185 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().
|
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 213 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 213 of file CylinderVolumeBounds.hpp
References kdfinder::abs(), cos(), eHalfLengthZ, eHalfPhiSector, eMaxR, eMinR, Acts::VectorHelpers::perp(), Acts::VectorHelpers::phi(), and phi.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
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 54 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 54 of file CylinderVolumeBounds.cpp
References Acts::backward, Acts::Test::cSurface, eHalfLengthZ, eHalfPhiSector, eMaxR, eMinR, Acts::forward, m_discBounds, m_innerCylinderBounds, m_outerCylinderBounds, M_PI, m_sectorPlaneBounds, and Acts::Test::transform.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_DATA_TEST_CASE(), and Acts::GeometryView3D::drawSurfaceArray().
|
overridevirtual |
Output Method for std::ostream.
Implements Acts::VolumeBounds.
Definition at line 118 of file CylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 118 of file CylinderVolumeBounds.cpp
|
inlinefinalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::VolumeBounds.
Definition at line 132 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 132 of file CylinderVolumeBounds.hpp
References Acts::VolumeBounds::eCylinder.
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 256 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 256 of file CylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Bounds of the bottom/top Radial.
Definition at line 195 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 195 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Bounds of the inner CylinderBounds.
Definition at line 191 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 191 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Bounds of the inner CylinderBounds.
Definition at line 193 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 193 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Bounds of the sector planes.
Definition at line 197 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 197 of file CylinderVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
The internal version of the bounds can be float/double.
Definition at line 189 of file CylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 189 of file CylinderVolumeBounds.hpp