Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/TrapezoidBounds.hpp>
Public Types | |
enum | BoundValues { eHalfLengthXnegY = 0, eHalfLengthXposY = 1, eHalfLengthY = 2, eSize = 3 } |
Public Member Functions | |
TrapezoidBounds ()=delete | |
TrapezoidBounds (double halfXnegY, double halfXposY, double halfY) noexcept(false) | |
m_boundingBox (std::max(halfXnegY, halfXposY), halfY) | |
TrapezoidBounds (const std::array< double, eSize > &values) noexcept(false) | |
~TrapezoidBounds () override | |
BoundsType | type () const final |
std::vector< double > | values () const final |
bool | inside (const Vector2 &lposition, const BoundaryCheck &bcheck) const final |
std::vector< Vector2 > | vertices (unsigned int lseg=1) const final |
const RectangleBounds & | boundingBox () const final |
std::ostream & | toStream (std::ostream &sl) const final |
double | get (BoundValues bValue) const |
Private Member Functions | |
void | checkConsistency () noexcept(false) |
Private Attributes | |
std::array< double, eSize > | m_values |
RectangleBounds | m_boundingBox |
Bounds for a trapezoidal, planar Surface.
Definition at line 34 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 34 of file TrapezoidBounds.hpp
Definition at line 36 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 36 of file TrapezoidBounds.hpp
|
delete |
|
inlinenoexcept |
Constructor for symmetric Trapezoid
halfXnegY | minimal half length X, definition at negative Y |
halfXposY | maximal half length X, definition at positive Y |
halfY | half length Y - defined at x=0 |
Definition at line 50 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 50 of file TrapezoidBounds.hpp
References Acts::Test::halfY.
Constructor for symmetric Trapezoid - from fixed size array
values | the values to be stream in |
Definition at line 60 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 60 of file TrapezoidBounds.hpp
References checkConsistency().
|
overridedefault |
|
finalvirtual |
Bounding box parameters
Implements Acts::PlanarBounds.
Definition at line 66 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 66 of file TrapezoidBounds.cpp
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 155 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 155 of file TrapezoidBounds.hpp
References eHalfLengthXnegY, eHalfLengthXposY, and eHalfLengthY.
Referenced by m_boundingBox(), and TrapezoidBounds().
|
inline |
Access to the bound values
bValue | the class nested enum for the array access |
Definition at line 138 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 138 of file TrapezoidBounds.hpp
References m_values.
Referenced by Acts::adjustBinUtility(), Acts::MappingMaterialDecorator::binnedSurfaceMaterial(), and Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two parallel sides of the trapezoid intersects with the negative - axis of the local frame.
The cases are:
(0) or bounds are 0 || 0
(1) the local position is outside bounds
(2) the local position is inside bounds, but outside maximum bounds
(3) the local position is inside bounds AND inside minimum bounds
(4) the local position is inside bounds AND inside maximum bounds, so that it depends on the coordinate (5) the local position fails test of (4)
The inside check is done using single equations of straight lines and one has to take care if a point lies on the positive half area(I) or the negative one(II). Denoting and as minHalfX
respectively maxHalfX
, such as as halfY
, the equations for the straing lines in (I) and (II) can be written as:
lposition | Local position (assumed to be in right surface frame) |
bcheck | boundary check directive |
Implements Acts::SurfaceBounds.
Definition at line 22 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 22 of file TrapezoidBounds.cpp
References Acts::eBoundLoc0, Acts::eBoundLoc1, eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, Acts::BoundaryCheck::isInside(), Acts::UnitConstants::min, Acts::BoundaryCheck::tolerance(), Acts::BoundaryCheck::type(), testSigmaEff::v, ambiguity_solver_full_chain::x, and y.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 53 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 53 of file TrapezoidBounds.hpp
References checkConsistency().
|
finalvirtual |
Output Method for std::ostream
sl | is the ostream to be dumped into |
Implements Acts::SurfaceBounds.
Definition at line 70 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 70 of file TrapezoidBounds.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the bounds type - for persistency optimization
Implements Acts::SurfaceBounds.
Definition at line 18 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 18 of file TrapezoidBounds.cpp
References Acts::SurfaceBounds::eTrapezoid.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inlinefinalvirtual |
Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds
Implements Acts::SurfaceBounds.
Definition at line 149 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 149 of file TrapezoidBounds.hpp
References m_values.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Return the vertices
lseg | the number of segments used to approximate and eventually curved line |
Implements Acts::PlanarBounds.
Definition at line 58 of file TrapezoidBounds.cpp.
View newest version in sPHENIX GitHub at line 58 of file TrapezoidBounds.cpp
References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthY, and Acts::Test::hy.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
private |
Definition at line 142 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 142 of file TrapezoidBounds.hpp
Definition at line 141 of file TrapezoidBounds.hpp.
View newest version in sPHENIX GitHub at line 141 of file TrapezoidBounds.hpp