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

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

+ Inheritance diagram for Acts::LineBounds:
+ Collaboration diagram for Acts::LineBounds:

Public Types

enum  BoundValues : int { eR = 0, eHalfLengthZ = 1, eSize = 2 }
 
- Public Types inherited from Acts::SurfaceBounds
enum  BoundsType : int {
  eCone = 0, eCylinder = 1, eDiamond = 2, eDisc = 3,
  eEllipse = 5, eLine = 6, eRectangle = 7, eTrapezoid = 8,
  eTriangle = 9, eDiscTrapezoid = 10, eConvexPolygon = 11, eAnnulus = 12,
  eBoundless = 13, eOther = 14
}
 

Public Member Functions

 LineBounds ()=delete
 
 LineBounds (double r, double halfZ) noexcept(false)
 
 LineBounds (const std::array< double, eSize > &values) noexcept(false)
 
 ~LineBounds () override=default
 
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::ostream & toStream (std::ostream &sl) const final
 
double get (BoundValues bValue) const
 
- Public Member Functions inherited from Acts::SurfaceBounds
virtual ~SurfaceBounds ()=default
 

Private Member Functions

void checkConsistency () noexcept(false)
 

Private Attributes

std::array< double, eSizem_values
 

Detailed Description

Bounds for a LineSurface.

Definition at line 22 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 22 of file LineBounds.hpp

Member Enumeration Documentation

Enumerator:
eR 
eHalfLengthZ 
eSize 

Definition at line 24 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 24 of file LineBounds.hpp

Constructor & Destructor Documentation

Acts::LineBounds::LineBounds ( )
delete
Acts::LineBounds::LineBounds ( double  r,
double  halfZ 
)
inlinenoexcept

Constructor

Parameters
ris the radius of the cylinder, default = 0.
halfZis the half length in z, defualt = 0.

Definition at line 32 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 32 of file LineBounds.hpp

References r.

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

Constructor - from fixed size array

Parameters
valuesThe parameter values

Definition at line 39 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 39 of file LineBounds.hpp

References checkConsistency().

+ Here is the call graph for this function:

Acts::LineBounds::~LineBounds ( )
overridedefault

Member Function Documentation

void Acts::LineBounds::checkConsistency ( )
inlineprivatenoexcept

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

Definition at line 94 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 94 of file LineBounds.hpp

References eHalfLengthZ, and eR.

Referenced by LineBounds().

+ Here is the caller graph for this function:

double Acts::LineBounds::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 26 of file LineBounds.cpp.

View newest version in sPHENIX GitHub at line 26 of file LineBounds.cpp

References Acts::eLOC_R.

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

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 78 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 78 of file LineBounds.hpp

References m_values.

bool Acts::LineBounds::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 18 of file LineBounds.cpp.

View newest version in sPHENIX GitHub at line 18 of file LineBounds.cpp

References eHalfLengthZ, eR, Acts::BoundaryCheck::isInside(), and r.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Output Method for std::ostream

Parameters
slis the ostream to be dumped into

Implements Acts::SurfaceBounds.

Definition at line 33 of file LineBounds.cpp.

View newest version in sPHENIX GitHub at line 33 of file LineBounds.cpp

References eHalfLengthZ, and eR.

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

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::SurfaceBounds.

Definition at line 14 of file LineBounds.cpp.

View newest version in sPHENIX GitHub at line 14 of file LineBounds.cpp

References Acts::SurfaceBounds::eLine.

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

+ Here is the caller graph for this function:

std::vector< double > Acts::LineBounds::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 88 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 88 of file LineBounds.hpp

References m_values.

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

+ Here is the caller graph for this function:

Member Data Documentation

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

Definition at line 81 of file LineBounds.hpp.

View newest version in sPHENIX GitHub at line 81 of file LineBounds.hpp

Referenced by get(), and values().


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