EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/TrapezoidVolumeBounds.hpp>
Public Types | |
enum | BoundValues : unsigned int { eHalfLengthXnegY = 0, eHalfLengthXposY = 1, eHalfLengthY = 2, eHalfLengthZ = 3, eAlpha = 4, eBeta = 5, eSize } |
for acces / streaming 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 | |
TrapezoidVolumeBounds ()=delete | |
TrapezoidVolumeBounds (double minhalex, double maxhalex, double haley, double halez) noexcept(false) | |
TrapezoidVolumeBounds (double minhalex, double haley, double halez, double alpha, double beta) noexcept(false) | |
TrapezoidVolumeBounds (const std::array< double, eSize > &values) noexcept(false) | |
TrapezoidVolumeBounds (const TrapezoidVolumeBounds &trabo)=default | |
~TrapezoidVolumeBounds () override=default | |
TrapezoidVolumeBounds & | operator= (const TrapezoidVolumeBounds &trabo)=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 |
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 |
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 () |
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 TrapezoidBounds > | m_faceXYTrapezoidBounds {nullptr} |
The face PlaneSurface parallel to local xy plane. | |
std::shared_ptr< const RectangleBounds > | m_faceAlphaRectangleBounds {nullptr} |
Thhe face PlaneSurface attached to alpha (negative local x) | |
std::shared_ptr< const RectangleBounds > | m_faceBetaRectangleBounds {nullptr} |
The face PlaneSurface attached to beta (positive local x) | |
std::shared_ptr< const RectangleBounds > | m_faceZXRectangleBoundsBottom {nullptr} |
The face PlaneSurface parallel to local zx plane, negative local y. | |
std::shared_ptr< const RectangleBounds > | m_faceZXRectangleBoundsTop {nullptr} |
The face PlaneSurface parallel to local zx plane, positive local y. | |
Bounds for a trapezoidal shaped Volume, the orientedSurface(...) method creates a vector of 6 surfaces:
BoundarySurfaceFace [index]:
Definition at line 47 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 47 of file TrapezoidVolumeBounds.hpp
enum Acts::TrapezoidVolumeBounds::BoundValues : unsigned int |
for acces / streaming
Definition at line 50 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 50 of file TrapezoidVolumeBounds.hpp
|
delete |
|
noexcept |
Constructor - the trapezoid boundaries (symmetric trapezoid)
minhalex | is the half length in x at minimal y |
maxhalex | is the half length in x at maximal y |
haley | is the half length in y |
halez | is the half length in z |
Definition at line 21 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 21 of file TrapezoidVolumeBounds.cpp
References buildSurfaceBounds(), checkConsistency(), eAlpha, eBeta, eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, eHalfLengthZ, M_PI, and m_values.
|
noexcept |
Constructor - the trapezoid boundaries (arbitrary trapezoid)
minhalex | is the half length in x at minimal y |
haley | is the half length in y |
halez | is the half length in z |
alpha | is the openeing angle at -x,-y |
beta | is the openeing angle at +x,-y |
Definition at line 35 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 35 of file TrapezoidVolumeBounds.cpp
References starlightConstants::alpha, buildSurfaceBounds(), checkConsistency(), eAlpha, eBeta, eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, eHalfLengthZ, gamma(), M_PI, and m_values.
|
inlinenoexcept |
Constructor - from a fixed size array
values | The bound values |
Definition at line 84 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 84 of file TrapezoidVolumeBounds.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 149 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 149 of file TrapezoidVolumeBounds.cpp
References Acts::Test::transform, and vtx().
|
private |
Helper method to create the surface bounds.
Definition at line 114 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 114 of file TrapezoidVolumeBounds.cpp
Referenced by TrapezoidVolumeBounds().
|
inlineprivatenoexcept |
Check the input values for consistency, will throw a logic_exception if consistency is not given
Definition at line 188 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 188 of file TrapezoidVolumeBounds.hpp
References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, and eHalfLengthZ.
Referenced by TrapezoidVolumeBounds().
|
private |
Templated dump methos
stream_t | The type of the stream for dumping |
dt | The stream object |
Definition at line 171 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 171 of file TrapezoidVolumeBounds.hpp
References eAlpha, eBeta, eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, and eHalfLengthZ.
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 140 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 140 of file TrapezoidVolumeBounds.hpp
References m_values.
|
overridevirtual |
This method checks if position in the 3D volume frame is inside the cylinder
pos | is the global position to be checked |
tol | is the tolerance applied |
Implements Acts::VolumeBounds.
Definition at line 131 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 131 of file TrapezoidVolumeBounds.cpp
References kdfinder::abs().
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 52 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 52 of file TrapezoidVolumeBounds.cpp
References Acts::backward, Acts::forward, M_PI, Acts::s_planeYZ, and Acts::s_planeZX.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
overridevirtual |
Output Method for std::ostream.
Implements Acts::VolumeBounds.
Definition at line 145 of file TrapezoidVolumeBounds.cpp.
View newest version in sPHENIX GitHub at line 145 of file TrapezoidVolumeBounds.cpp
|
inlinefinalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::VolumeBounds.
Definition at line 95 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 95 of file TrapezoidVolumeBounds.hpp
References Acts::VolumeBounds::eTrapezoid.
|
inlinefinalvirtual |
Return the bound values as dynamically sized vector
Implements Acts::VolumeBounds.
Definition at line 182 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 182 of file TrapezoidVolumeBounds.hpp
References m_values.
|
private |
Thhe face PlaneSurface attached to alpha (negative local x)
Definition at line 148 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 148 of file TrapezoidVolumeBounds.hpp
|
private |
The face PlaneSurface attached to beta (positive local x)
Definition at line 150 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 150 of file TrapezoidVolumeBounds.hpp
|
private |
The face PlaneSurface parallel to local xy plane.
Definition at line 146 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 146 of file TrapezoidVolumeBounds.hpp
|
private |
The face PlaneSurface parallel to local zx plane, negative local y.
Definition at line 152 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 152 of file TrapezoidVolumeBounds.hpp
|
private |
The face PlaneSurface parallel to local zx plane, positive local y.
Definition at line 154 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 154 of file TrapezoidVolumeBounds.hpp
|
private |
The internal version of the bounds can be float/double.
Definition at line 144 of file TrapezoidVolumeBounds.hpp.
View newest version in sPHENIX GitHub at line 144 of file TrapezoidVolumeBounds.hpp
Referenced by get(), TrapezoidVolumeBounds(), and values().