Analysis Software
Documentation for sPHENIX simulation software
|
#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 Vector3 &gpos, 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 |
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 Vector3 | 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 basically a cylinder, with another, smaller cylinder subtracted from the center. ------------------— rmax | | | |------—| | rmed | | | | ---— ---— rmin – hlZc – ------— hlZ ----—
Definition at line 38 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 38 of file CutoutCylinderVolumeBounds.hpp
for streaming and access
Definition at line 41 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 41 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 59 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 59 of file CutoutCylinderVolumeBounds.hpp
|
inlinenoexcept |
Constructor - from a fixed size array
values | The bound values |
Definition at line 69 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 69 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 124 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 124 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 149 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 149 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 151 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 151 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 125 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 125 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 29 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 29 of file CutoutCylinderVolumeBounds.cpp
References 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 51 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 51 of file CutoutCylinderVolumeBounds.cpp
References Acts::index4, Acts::index5, Acts::index6, Acts::index7, testing::internal::move(), Acts::Direction::Negative, Acts::negativeFaceXY, Acts::Direction::Positive, 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 140 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 140 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 78 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 78 of file CutoutCylinderVolumeBounds.hpp
References Acts::VolumeBounds::eCutoutCylinder.
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 145 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 145 of file CutoutCylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Definition at line 132 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 132 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 131 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 131 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 133 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 133 of file CutoutCylinderVolumeBounds.hpp
|
private |
Definition at line 134 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 134 of file CutoutCylinderVolumeBounds.hpp
Definition at line 128 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 128 of file CutoutCylinderVolumeBounds.hpp