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

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

+ Inheritance diagram for Acts::ConeBounds:
+ Collaboration diagram for Acts::ConeBounds:

Public Types

enum  BoundValues : int {
  eAlpha = 0, eMinZ = 1, eMaxZ = 2, eHalfPhiSector = 3,
  eAveragePhi = 4, eSize = 5
}
 
- 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

 ConeBounds ()=delete
 
 ConeBounds (double alpha, bool symm, double halfphi=M_PI, double avphi=0.) noexcept(false)
 
 ConeBounds (double alpha, double minz, double maxz, double halfphi=M_PI, double avphi=0.) noexcept(false)
 
 ConeBounds (const std::array< double, eSize > &values) noexcept(false)
 
 ~ConeBounds () override=default
 
BoundsType type () const final
 
std::vector< double > values () const final
 
bool inside (const Vector2D &lposition, const BoundaryCheck &bcheck=true) const final
 
double distanceToBoundary (const Vector2D &lposition) const final
 
std::ostream & toStream (std::ostream &sl) const final
 
double r (double z) const
 
double tanAlpha () const
 Return tangent of alpha (pre-computed)
 
double get (BoundValues bValue) const
 
- Public Member Functions inherited from Acts::SurfaceBounds
virtual ~SurfaceBounds ()=default
 

Private Member Functions

void checkConsistency () noexcept(false)
 
Vector2D shifted (const Vector2D &lposition) const
 Shift r-phi coordinate to be centered around the average phi.
 

Private Attributes

std::array< double, eSizem_values
 
double m_tanAlpha
 

Detailed Description

Bounds for a conical surface, the opening angle is stored in $ \tan(\alpha) $ and always positively defined. The cone can open to both sides, steered by $ z_min $ and $ z_max $.

ConeBounds.gif

Definition at line 31 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 31 of file ConeBounds.hpp

Member Enumeration Documentation

Enumerator:
eAlpha 
eMinZ 
eMaxZ 
eHalfPhiSector 
eAveragePhi 
eSize 

Definition at line 33 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 33 of file ConeBounds.hpp

Constructor & Destructor Documentation

Acts::ConeBounds::ConeBounds ( )
delete
Acts::ConeBounds::ConeBounds ( double  alpha,
bool  symm,
double  halfphi = M_PI,
double  avphi = 0. 
)
noexcept

Constructor - open cone with alpha, by default a full cone but optionally can make a conical section

Parameters
alphais the opening angle of the cone
symmis the boolean indicating if the cone is symmetric in +/- z
halfphiis the half opening angle (default is pi)
avphiis the phi value around which the bounds are opened (default=0)

Definition at line 16 of file ConeBounds.cpp.

View newest version in sPHENIX GitHub at line 16 of file ConeBounds.cpp

References alpha.

Acts::ConeBounds::ConeBounds ( double  alpha,
double  minz,
double  maxz,
double  halfphi = M_PI,
double  avphi = 0. 
)
noexcept

Constructor - open cone with alpha, minz and maxz, by default a full cone but can optionally make it a conical section

Parameters
alphais the opening angle of the cone
minzcone expanding from minimal z
maxzcone expanding to maximal z
halfphiis the half opening angle (default is pi)
avphiis the phi value around which the bounds are opened (default=0)

Definition at line 24 of file ConeBounds.cpp.

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

References alpha, G4B0ECAL::maxz, and G4B0ECAL::minz.

Acts::ConeBounds::ConeBounds ( const std::array< double, eSize > &  values)
noexcept

Constructor - from parameters array

Parameters
valuesThe parameter array

Definition at line 31 of file ConeBounds.cpp.

View newest version in sPHENIX GitHub at line 31 of file ConeBounds.cpp

Acts::ConeBounds::~ConeBounds ( )
overridedefault

Member Function Documentation

void Acts::ConeBounds::checkConsistency ( )
inlineprivatenoexcept

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

Definition at line 142 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 142 of file ConeBounds.hpp

References kdfinder::abs(), eAlpha, eAveragePhi, eHalfPhiSector, eMaxZ, eMinZ, M_PI, Acts::detail::radian_sym(), and Acts::s_epsilon.

+ Here is the call graph for this function:

double Acts::ConeBounds::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 63 of file ConeBounds.cpp.

View newest version in sPHENIX GitHub at line 63 of file ConeBounds.cpp

References Acts::BoundaryCheck::distance(), Acts::eLOC_Z, and r.

+ Here is the call graph for this function:

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

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 112 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 112 of file ConeBounds.hpp

References m_values.

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

+ Here is the caller graph for this function:

bool Acts::ConeBounds::inside ( const Vector2D lposition,
const BoundaryCheck bcheck = true 
) const
finalvirtual

inside method for local position

Parameters
lpositionis the local position to be checked
bcheckis the boundary check directive
Returns
is a boolean indicating if the position is inside

Implements Acts::SurfaceBounds.

Definition at line 56 of file ConeBounds.cpp.

View newest version in sPHENIX GitHub at line 56 of file ConeBounds.cpp

References Acts::eLOC_Z, 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:

double Acts::ConeBounds::r ( double  z) const
inline

Return the radius at a specific z values

Parameters
zis the z value for which r is requested
Returns
is the r value associated with z

Definition at line 128 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 128 of file ConeBounds.hpp

References kdfinder::abs(), and m_tanAlpha.

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::Vector2D Acts::ConeBounds::shifted ( const Vector2D lposition) const
private

Shift r-phi coordinate to be centered around the average phi.

Private helper functin to shift a local 2D position

Parameters
lpositionThe original local position

Definition at line 42 of file ConeBounds.cpp.

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

References Acts::eLOC_RPHI, Acts::eLOC_Z, r, Acts::detail::radian_sym(), and x.

+ Here is the call graph for this function:

double Acts::ConeBounds::tanAlpha ( ) const
inline

Return tangent of alpha (pre-computed)

Definition at line 132 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 132 of file ConeBounds.hpp

References m_tanAlpha.

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

+ Here is the caller graph for this function:

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

Output Method for std::ostream

Parameters
slis the ostrea into which the dump is done
Returns
is the input obect

Implements Acts::SurfaceBounds.

Definition at line 71 of file ConeBounds.cpp.

View newest version in sPHENIX GitHub at line 71 of file ConeBounds.cpp

References m_tanAlpha().

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::SurfaceBounds::BoundsType Acts::ConeBounds::type ( ) const
finalvirtual

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::SurfaceBounds.

Definition at line 37 of file ConeBounds.cpp.

View newest version in sPHENIX GitHub at line 37 of file ConeBounds.cpp

References Acts::SurfaceBounds::eCone.

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

+ Here is the caller graph for this function:

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

View newest version in sPHENIX GitHub at line 136 of file ConeBounds.hpp

References m_values.

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

+ Here is the caller graph for this function:

Member Data Documentation

double Acts::ConeBounds::m_tanAlpha
private

Definition at line 116 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 116 of file ConeBounds.hpp

Referenced by r(), and tanAlpha().

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

Definition at line 115 of file ConeBounds.hpp.

View newest version in sPHENIX GitHub at line 115 of file ConeBounds.hpp

Referenced by get(), and values().


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