EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/ConeVolumeBounds.hpp>
Public Types | |
enum | BoundValues : unsigned int { eInnerAlpha = 0, eInnerOffsetZ = 1, eOuterAlpha = 2, eOuterOffsetZ = 3, eHalfLengthZ = 4, eAveragePhi = 5, eHalfPhiSector = 6, eSize } |
for readability 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 | |
ConeVolumeBounds ()=delete | |
ConeVolumeBounds (double innerAlpha, double innerTipZ, double outerAlpha, double outerOffsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false) | |
ConeVolumeBounds (double cylinderR, double alpha, double offsetZ, double halflengthZ, double averagePhi, double halfPhiSector) noexcept(false) | |
ConeVolumeBounds (const std::array< double, eSize > &values) noexcept(false) | |
ConeVolumeBounds (const ConeVolumeBounds &cobo)=default | |
~ConeVolumeBounds () override=default | |
ConeVolumeBounds & | operator= (const ConeVolumeBounds &cobo)=default |
VolumeBounds::BoundsType | type () const final |
std::vector< double > | values () const final |
bool | inside (const Vector3D &pos, double tol=0.) const final |
OrientedSurfaces | orientedSurfaces (const Transform3D &transform=Transform3D::Identity()) const final |
Volume::BoundingBox | boundingBox (const Transform3D *trf=nullptr, const Vector3D &envelope={0, 0, 0}, const Volume *entity=nullptr) const final |
double | get (BoundValues bValue) const |
double | innerRmin () const |
double | innerRmax () const |
double | innerTanAlpha () const |
double | outerRmin () const |
double | outerRmax () const |
double | outerTanAlpha () const |
std::ostream & | toStream (std::ostream &sl) const final |
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) |
void | buildSurfaceBounds () |
Create the surface bounds. | |
template<class stream_t > | |
stream_t & | dumpT (stream_t &dt) const |
Private Attributes | |
std::array< double, eSize > | m_values |
The bound values. | |
std::shared_ptr< CylinderBounds > | m_innerCylinderBounds {nullptr} |
std::shared_ptr< ConeBounds > | m_innerConeBounds {nullptr} |
std::shared_ptr< ConeBounds > | m_outerConeBounds {nullptr} |
std::shared_ptr< CylinderBounds > | m_outerCylinderBounds {nullptr} |
std::shared_ptr< RadialBounds > | m_negativeDiscBounds {nullptr} |
std::shared_ptr< RadialBounds > | m_positiveDiscBounds {nullptr} |
std::shared_ptr< PlanarBounds > | m_sectorBounds {nullptr} |
double | m_innerRmin = 0. |
Derived values. | |
double | m_innerRmax = 0. |
double | m_innerTanAlpha = 0. |
double | m_outerRmin = 0. |
double | m_outerRmax = 0. |
double | m_outerTanAlpha = 0. |
Volume bound class for describing conical volumes either with cylindrical inlay or outer boundary, it also allows for a sectoral description
Definition at line 32 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 32 of file ConeVolumeBounds.hpp
enum Acts::ConeVolumeBounds::BoundValues : unsigned int |
for readability
eInnerAlpha | |
eInnerOffsetZ | |
eOuterAlpha | |
eOuterOffsetZ | |
eHalfLengthZ | |
eAveragePhi | |
eHalfPhiSector | |
eSize |
Definition at line 35 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 35 of file ConeVolumeBounds.hpp
|
delete |
|
noexcept |
Constructor - for general cone-cone setups
innerAlpha | The opening angle of the inner cone (0 if no cone) |
innerOffsetZ | The tip z position in of the inner cone, w.r.t center |
outerAlpha | The opening angle of the outer cone (0 if no cone) |
outerOffsetZ | The tip z position in of the outer cone, w.r.t center |
halflengthZ | The minimum z value of the inner and outer cones |
avergePhi | The phi orientation of the sector |
halfPhiSector | The opening angle phi sector |
Definition at line 25 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 25 of file ConeVolumeBounds.cpp
References buildSurfaceBounds().
|
noexcept |
Constructor - for general cylidner-cone setups
cylinderR | The inner radius of the cylinder |
alpha | The opening angle of the cone (0 if no cone) |
offsetZ | The tip z position in of the cone, w.r.t center |
halflengthZ | The minimum z value of the inner and outer cones |
avergePhi | The phi orientation of the sector (defaulted to 0) |
halfPhiSector | The opening angle phi sector |
Definition at line 41 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 41 of file ConeVolumeBounds.cpp
References kdfinder::abs(), starlightConstants::alpha, buildSurfaceBounds(), rmax(), and Acts::Test::tanAlpha.
|
inlinenoexcept |
Constructor - from a fixed size array
values | The bound values |
Definition at line 79 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 79 of file ConeVolumeBounds.hpp
References buildSurfaceBounds(), and checkConsistency().
|
default |
|
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 284 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 284 of file ConeVolumeBounds.cpp
References Acts::AxisAlignedBoundingBox< entity_t, value_t, DIM >::transformed().
|
private |
Create the surface bounds.
Definition at line 228 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 228 of file ConeVolumeBounds.cpp
References kdfinder::abs(), M_PI, max, and Acts::s_epsilon.
Referenced by ConeVolumeBounds().
|
privatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 161 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 161 of file ConeVolumeBounds.cpp
References M_PI, and Acts::detail::radian_sym().
Referenced by ConeVolumeBounds().
|
private |
Templated dump methos
stream_t | The type of the stream for dumping |
dt | The stream object |
Definition at line 216 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 216 of file ConeVolumeBounds.hpp
References eAveragePhi, eHalfLengthZ, eInnerAlpha, eInnerOffsetZ, eOuterAlpha, and eOuterOffsetZ.
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 127 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 127 of file ConeVolumeBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 189 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 189 of file ConeVolumeBounds.hpp
References m_innerRmax.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 185 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 185 of file ConeVolumeBounds.hpp
References m_innerRmin.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 193 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 193 of file ConeVolumeBounds.hpp
References m_innerTanAlpha.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
This method checks if position in the 3D volume frame is inside the cylinder
pos | is the position in volume frame to be checked |
tol | is the absolute tolerance to be applied |
Implements Acts::VolumeBounds.
Definition at line 181 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 181 of file ConeVolumeBounds.cpp
References kdfinder::abs(), M_PI, Acts::VectorHelpers::perp(), Acts::VectorHelpers::phi(), phi, phimin, rmax(), Acts::s_onSurfaceTolerance, and z.
|
default |
|
finalvirtual |
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 87 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 87 of file ConeVolumeBounds.cpp
References Acts::backward, eAveragePhi, eHalfLengthZ, eHalfPhiSector, eInnerOffsetZ, eOuterOffsetZ, Acts::forward, m_innerConeBounds, m_innerCylinderBounds, m_negativeDiscBounds, m_outerConeBounds, m_outerCylinderBounds, m_positiveDiscBounds, m_sectorBounds, and Acts::Test::transform.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 201 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 201 of file ConeVolumeBounds.hpp
References m_outerRmax.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 197 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 197 of file ConeVolumeBounds.hpp
References m_outerRmin.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 205 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 205 of file ConeVolumeBounds.hpp
References m_outerTanAlpha.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Output Method for std::ostream
sl | is ostream operator to be dumped into |
Implements Acts::VolumeBounds.
Definition at line 280 of file ConeVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 280 of file ConeVolumeBounds.cpp
|
inlinefinalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::VolumeBounds.
Definition at line 89 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 89 of file ConeVolumeBounds.hpp
References Acts::VolumeBounds::eCone.
Referenced by generatez(), getmass(), getproba(), and getscatterer().
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 209 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 209 of file ConeVolumeBounds.hpp
References m_values.
|
private |
Definition at line 169 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 169 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Definition at line 168 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 168 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Definition at line 178 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 178 of file ConeVolumeBounds.hpp
Referenced by innerRmax().
|
private |
Derived values.
Definition at line 177 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 177 of file ConeVolumeBounds.hpp
Referenced by innerRmin().
|
private |
Definition at line 179 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 179 of file ConeVolumeBounds.hpp
Referenced by innerTanAlpha().
|
private |
Definition at line 172 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 172 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Definition at line 170 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 170 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Definition at line 171 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 171 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Definition at line 181 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 181 of file ConeVolumeBounds.hpp
Referenced by outerRmax().
|
private |
Definition at line 180 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 180 of file ConeVolumeBounds.hpp
Referenced by outerRmin().
|
private |
Definition at line 182 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 182 of file ConeVolumeBounds.hpp
Referenced by outerTanAlpha().
|
private |
Definition at line 173 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 173 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
Definition at line 174 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 174 of file ConeVolumeBounds.hpp
Referenced by orientedSurfaces().
|
private |
The bound values.
Definition at line 167 of file ConeVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 167 of file ConeVolumeBounds.hpp