ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::DiamondBounds Class Reference

#include <acts/blob/master/Core/include/Acts/Surfaces/DiamondBounds.hpp>

+ Inheritance diagram for Acts::DiamondBounds:
+ Collaboration diagram for Acts::DiamondBounds:

Public Types

enum  BoundValues {
  eHalfLengthXnegY = 0, eHalfLengthXzeroY = 1, eHalfLengthXposY = 2, eHalfLengthYneg = 3,
  eHalfLengthYpos = 4, eSize = 5
}
 

Public Member Functions

 DiamondBounds ()=delete
 
 DiamondBounds (double halfXnegY, double halfXzeroY, double halfXposY, double halfYneg, double halfYpos) noexcept(false)
 
 m_boundingBox (Vector2D{-(*std::max_element(m_values.begin(), m_values.begin()+2)),-halfYneg}, Vector2D{*std::max_element(m_values.begin(), m_values.begin()+2), halfYpos})
 
 DiamondBounds (const std::array< double, eSize > &values) noexcept(false)
 
BoundsType type () const final
 
std::vector< double > values () const final
 
bool inside (const Vector2D &lposition, const BoundaryCheck &bcheck) const final
 
double distanceToBoundary (const Vector2D &lposition) const final
 
std::vector< Vector2Dvertices (unsigned int lseg=1) const final
 
const RectangleBoundsboundingBox () const final
 
std::ostream & toStream (std::ostream &sl) const final
 
double get (BoundValues bValue) const
 

Public Attributes

 Vector2D
 

Private Member Functions

void checkConsistency () noexcept(false)
 

Private Attributes

std::array< double, eSizem_values
 
RectangleBounds m_boundingBox
 internal bounding box cache
 

Detailed Description

Bounds for a double trapezoidal ("diamond"), planar Surface.

Definition at line 26 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 26 of file DiamondBounds.hpp

Member Enumeration Documentation

Enumerator:
eHalfLengthXnegY 
eHalfLengthXzeroY 
eHalfLengthXposY 
eHalfLengthYneg 
eHalfLengthYpos 
eSize 

Definition at line 28 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 28 of file DiamondBounds.hpp

Constructor & Destructor Documentation

Acts::DiamondBounds::DiamondBounds ( )
delete
Acts::DiamondBounds::DiamondBounds ( double  halfXnegY,
double  halfXzeroY,
double  halfXposY,
double  halfYneg,
double  halfYpos 
)
inlinenoexcept

Constructor for convex hexagon symmetric about the y axis

Parameters
halfXnegYis the halflength in x at minimal y
halfXzeroYis the halflength in x at y = 0
halfXposYis the halflength in x at maximal y
halfYnegis the halflength into y < 0
halfYposis the halflength into y > 0

Definition at line 46 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 46 of file DiamondBounds.hpp

Acts::DiamondBounds::DiamondBounds ( const std::array< double, eSize > &  values)
inlinenoexcept

Constructor - from fixed size array

Parameters
valuesThe parameter values

Definition at line 61 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 61 of file DiamondBounds.hpp

References eHalfLengthYneg, and values().

+ Here is the call graph for this function:

Member Function Documentation

const Acts::RectangleBounds & Acts::DiamondBounds::boundingBox ( ) const
finalvirtual

Bounding box parameters

Returns
rectangle bounds for a bounding box

Implements Acts::PlanarBounds.

Definition at line 42 of file DiamondBounds.cpp.

View newest version in sPHENIX GitHub at line 42 of file DiamondBounds.cpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

void Acts::DiamondBounds::checkConsistency ( )
inlineprivatenoexcept

Check the input values for consistency, will throw a logic_exception if consistency is not given

Definition at line 131 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 131 of file DiamondBounds.hpp

References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthXzeroY, and v.

double Acts::DiamondBounds::distanceToBoundary ( const Vector2D lposition) const
finalvirtual

Minimal distance to boundary ( > 0 if outside and <=0 if inside)

Parameters
lpositionis the local position to check for the distance
Returns
is a signed distance parameter

Implements Acts::SurfaceBounds.

Definition at line 24 of file DiamondBounds.cpp.

View newest version in sPHENIX GitHub at line 24 of file DiamondBounds.cpp

References Acts::BoundaryCheck::distance().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::DiamondBounds::get ( BoundValues  bValue) const
inline

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 114 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 114 of file DiamondBounds.hpp

References m_values.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

bool Acts::DiamondBounds::inside ( const Vector2D lposition,
const BoundaryCheck bcheck 
) const
finalvirtual

Inside check for the bounds object driven by the boundary check directive Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds Inside can be called without/with tolerances.

Parameters
lpositionLocal position (assumed to be in right surface frame)
bcheckboundary check directive
Returns
boolean indicator for the success of this operation

Implements Acts::SurfaceBounds.

Definition at line 19 of file DiamondBounds.cpp.

View newest version in sPHENIX GitHub at line 19 of file DiamondBounds.cpp

References Acts::BoundaryCheck::isInside().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::DiamondBounds::m_boundingBox ( Vector2D{-(*std::max_element(m_values.begin(), m_values.begin()+2)),-halfYneg}  ,
Vector2D{*std::max_element(m_values.begin(), m_values.begin()+2), halfYpos}   
)
inline

Definition at line 49 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 49 of file DiamondBounds.hpp

References m_values.

std::ostream & Acts::DiamondBounds::toStream ( std::ostream &  sl) const
finalvirtual

Output Method for std::ostream

Parameters
slis the ostream in which it is dumped

Implements Acts::SurfaceBounds.

Definition at line 46 of file DiamondBounds.cpp.

View newest version in sPHENIX GitHub at line 46 of file DiamondBounds.cpp

References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthXzeroY, eHalfLengthYneg, and eHalfLengthYpos.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

Acts::SurfaceBounds::BoundsType Acts::DiamondBounds::type ( ) const
finalvirtual

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::SurfaceBounds.

Definition at line 15 of file DiamondBounds.cpp.

View newest version in sPHENIX GitHub at line 15 of file DiamondBounds.cpp

References Acts::SurfaceBounds::eDiamond.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

std::vector< double > Acts::DiamondBounds::values ( ) const
inlinefinalvirtual

Return the bound values as dynamically sized vector

Returns
this returns a copy of the internal values

Implements Acts::SurfaceBounds.

Definition at line 125 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 125 of file DiamondBounds.hpp

Referenced by DiamondBounds().

+ Here is the caller graph for this function:

std::vector< Acts::Vector2D > Acts::DiamondBounds::vertices ( unsigned int  lseg = 1) const
finalvirtual

Return the vertices

Parameters
lsegthe number of segments used to approximate and eventually curved line
Note
the number of segements is ignored for this representation
Returns
vector for vertices in 2D

Implements Acts::PlanarBounds.

Definition at line 29 of file DiamondBounds.cpp.

View newest version in sPHENIX GitHub at line 29 of file DiamondBounds.cpp

References eHalfLengthXnegY, eHalfLengthXposY, eHalfLengthXzeroY, eHalfLengthYneg, eHalfLengthYpos, x1, x2, x3, y1, y2, and y3.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

Member Data Documentation

RectangleBounds Acts::DiamondBounds::m_boundingBox
private

internal bounding box cache

Definition at line 118 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 118 of file DiamondBounds.hpp

std::array<double, eSize> Acts::DiamondBounds::m_values
private

Definition at line 117 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 117 of file DiamondBounds.hpp

Referenced by get(), and m_boundingBox().

Acts::DiamondBounds::Vector2D
Initial value:
{*std::max_element(values.begin(), values.begin() + 2),
~DiamondBounds() override = default

Definition at line 66 of file DiamondBounds.hpp.

View newest version in sPHENIX GitHub at line 66 of file DiamondBounds.hpp


The documentation for this class was generated from the following files: