EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/CutoutCylinderVolumeBounds.hpp>
Public Types | |
enum | BoundValues : int { eMinR = 0, eMedR = 1, eMaxR = 2, eHalfLengthZ = 3, eHalfLengthZcutout = 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 | |
CutoutCylinderVolumeBounds ()=delete | |
CutoutCylinderVolumeBounds (double rmin, double rmed, double rmax, double hlZ, double hlZc) noexcept(false) | |
buildSurfaceBounds () | |
CutoutCylinderVolumeBounds (const std::array< double, eSize > &values) noexcept(false) | |
~CutoutCylinderVolumeBounds () override=default | |
VolumeBounds::BoundsType | type () const final |
std::vector< double > | values () const final |
bool | inside (const Vector3D &gpos, 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 |
std::ostream & | toStream (std::ostream &sl) const override |
double | get (BoundValues bValue) const |
Public Member Functions inherited from Acts::VolumeBounds | |
VolumeBounds ()=default | |
virtual | ~VolumeBounds ()=default |
virtual Vector3D | binningOffset (BinningValue bValue) const |
Binning offset - overloaded for some R-binning types. | |
virtual double | binningBorder (BinningValue bValue) const |
Private Member Functions | |
void | buildSurfaceBounds () |
Create the surface bound objects. | |
void | checkConsistency () noexcept(false) |
Private Attributes | |
std::array< double, eSize > | m_values |
std::shared_ptr< const CylinderBounds > | m_innerCylinderBounds {nullptr} |
std::shared_ptr< const CylinderBounds > | m_cutoutCylinderBounds {nullptr} |
std::shared_ptr< const CylinderBounds > | m_outerCylinderBounds {nullptr} |
std::shared_ptr< const DiscBounds > | m_outerDiscBounds {nullptr} |
std::shared_ptr< const DiscBounds > | m_innerDiscBounds {nullptr} |
Class which implements a cutout cylinder. This shape is bascially a cylinder, with another, smaller cylinder subtracted from the center. ------------------— rmax | | | |------—| | rmed | | | | ---— ---— rmin – hlZc – ------— hlZ ----—
Definition at line 40 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 40 of file CutoutCylinderVolumeBounds.hpp
for streaming and access
Definition at line 43 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 43 of file CutoutCylinderVolumeBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor from defining parameters
rmin | Minimum radius at the "choke points" |
rmed | The medium radius (outer radius of the cutout) |
rmax | The outer radius of the overall shape |
hlZ | The longer halflength of the shape |
hlZc | The cutout halflength of the shape |
Definition at line 61 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 61 of file CutoutCylinderVolumeBounds.hpp
References rmax().
|
inlinenoexcept |
Constructor - from a fixed size array
values | The bound values |
Definition at line 71 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 71 of file CutoutCylinderVolumeBounds.hpp
References buildSurfaceBounds(), and checkConsistency().
|
overridedefault |
|
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 115 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 115 of file CutoutCylinderVolumeBounds.cpp
References Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::transformed().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
void Acts::CutoutCylinderVolumeBounds::buildSurfaceBounds | ( | ) |
Definition at line 140 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 140 of file CutoutCylinderVolumeBounds.cpp
References Acts::s_epsilon.
Referenced by CutoutCylinderVolumeBounds().
|
private |
Create the surface bound objects.
|
inlineprivatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 153 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 153 of file CutoutCylinderVolumeBounds.hpp
References eHalfLengthZ, eHalfLengthZcutout, eMaxR, eMedR, and eMinR.
Referenced by CutoutCylinderVolumeBounds().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 127 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 127 of file CutoutCylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::adjustBinUtility(), and Acts::Test::BOOST_AUTO_TEST_CASE().
|
overridevirtual |
Inside method to test whether a point is inside the shape
gpos | The point to test |
tol | The tolerance to test with |
Implements Acts::VolumeBounds.
Definition at line 25 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 25 of file CutoutCylinderVolumeBounds.cpp
References kdfinder::abs(), eHalfLengthZ, eHalfLengthZcutout, eMaxR, eMedR, eMinR, Acts::VectorHelpers::perp(), and Acts::VectorHelpers::phi().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
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 47 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 47 of file CutoutCylinderVolumeBounds.cpp
References Acts::backward, Acts::forward, Acts::index4, Acts::index5, Acts::index6, Acts::index7, Acts::negativeFaceXY, Acts::positiveFaceXY, Acts::Test::transform, Acts::tubeInnerCover, and Acts::tubeOuterCover.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
overridevirtual |
Write information about this instance to an outstream
sl | The outstream |
Implements Acts::VolumeBounds.
Definition at line 131 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 131 of file CutoutCylinderVolumeBounds.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlinefinalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::VolumeBounds.
Definition at line 80 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 80 of file CutoutCylinderVolumeBounds.hpp
References Acts::VolumeBounds::eCutoutCylinder.
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 147 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 147 of file CutoutCylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Definition at line 134 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 134 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 133 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 133 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 137 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 137 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 135 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 135 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 136 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 136 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 130 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 130 of file CutoutCylinderVolumeBounds.hpp