ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Geometry/CutoutCylinderVolumeBounds.hpp>
Public Types | |
enum | BoundValues : int { eMinR = 0, eMedR = 1, eMaxR = 2, eHalfLengthZ = 3, eHalfLengthZcutout = 4, eSize = 5 } |
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) | |
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 |
std::vector< std::shared_ptr < const Surface > > | decomposeToSurfaces (const Transform3D *transform=nullptr) 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 | checkConsistency () noexcept(false) |
Private Attributes | |
std::array< double, eSize > | m_values |
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 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
References rmax().
|
inlinenoexcept |
Constructor - from a fixed size array
values | The bound values |
Definition at line 68 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 68 of file CutoutCylinderVolumeBounds.hpp
References 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().
|
inlineprivatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 135 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 135 of file CutoutCylinderVolumeBounds.hpp
References eHalfLengthZ, eHalfLengthZcutout, eMaxR, eMedR, and eMinR.
Referenced by CutoutCylinderVolumeBounds().
|
overridevirtual |
Method to decompose the Bounds into Surfaces
transform | is the transform to position the surfaces in 3D space |
Implements Acts::VolumeBounds.
Definition at line 45 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 45 of file CutoutCylinderVolumeBounds.cpp
References Acts::index4, Acts::index5, Acts::index6, Acts::index7, M_PI, Acts::negativeFaceXY, Acts::positiveFaceXY, Acts::tubeInnerCover, and Acts::tubeOuterCover.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 119 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 119 of file CutoutCylinderVolumeBounds.hpp
References m_values.
Referenced by 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 22 of file CutoutCylinderVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 22 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 |
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 76 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 76 of file CutoutCylinderVolumeBounds.hpp
References Acts::VolumeBounds::eCutoutCylinder.
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 129 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 129 of file CutoutCylinderVolumeBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Definition at line 122 of file CutoutCylinderVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 122 of file CutoutCylinderVolumeBounds.hpp