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

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

+ Inheritance diagram for Acts::RadialBounds:
+ Collaboration diagram for Acts::RadialBounds:

Public Types

enum  BoundValues {
  eMinR = 0, eMaxR = 1, eHalfPhiSector = 2, eAveragePhi = 3,
  eSize = 4
}
 

Public Member Functions

 RadialBounds ()=delete
 
 RadialBounds (double minR, double maxR, double halfPhi=M_PI, double avgPhi=0.) noexcept(false)
 
 RadialBounds (const std::array< double, eSize > &values) noexcept(false)
 
 ~RadialBounds () override=default
 
SurfaceBounds::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 rMin () const
 Return method for inner Radius.
 
double rMax () const
 Return method for outer Radius.
 
double get (BoundValues bValue) const
 
bool coversFullAzimuth () const final
 Returns true for full phi coverage.
 
bool insideRadialBounds (double R, double tolerance=0.) const final
 
double binningValueR () const final
 Return a reference radius for binning.
 
double binningValuePhi () const final
 Return a reference radius for binning.
 

Private Member Functions

void checkConsistency () noexcept(false)
 
Vector2D shifted (const Vector2D &lposition) const
 
std::vector< Vector2Dvertices (unsigned int lseg) const
 

Private Attributes

std::array< double, eSizem_values
 

Detailed Description

Class to describe the bounds for a planar DiscSurface. By providing an argument for hphisec, the bounds can be restricted to a phi-range around the center position.

Definition at line 27 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 27 of file RadialBounds.hpp

Member Enumeration Documentation

Enumerator:
eMinR 
eMaxR 
eHalfPhiSector 
eAveragePhi 
eSize 

Definition at line 29 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 29 of file RadialBounds.hpp

Constructor & Destructor Documentation

Acts::RadialBounds::RadialBounds ( )
delete
Acts::RadialBounds::RadialBounds ( double  minR,
double  maxR,
double  halfPhi = M_PI,
double  avgPhi = 0. 
)
inlinenoexcept

Constructor for full disc of symmetric disc around phi=0

Parameters
minRThe inner radius (0 for full disc)
maxRThe outer radius
halfPhiThe half opening angle (Pi for full angular coverage)
avgPhiThe average phi for the disc/ring sector

Definition at line 45 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 45 of file RadialBounds.hpp

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

Constructor from array values

Parameters
valuesThe bound values

Definition at line 54 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 54 of file RadialBounds.hpp

References checkConsistency().

+ Here is the call graph for this function:

Acts::RadialBounds::~RadialBounds ( )
overridedefault

Member Function Documentation

double Acts::RadialBounds::binningValuePhi ( ) const
inlinefinalvirtual

Return a reference radius for binning.

Implements Acts::DiscBounds.

Definition at line 158 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 158 of file RadialBounds.hpp

References eAveragePhi.

double Acts::RadialBounds::binningValueR ( ) const
inlinefinalvirtual

Return a reference radius for binning.

Implements Acts::DiscBounds.

Definition at line 154 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 154 of file RadialBounds.hpp

References eMaxR, and eMinR.

void Acts::RadialBounds::checkConsistency ( )
inlineprivatenoexcept

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

Definition at line 168 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 168 of file RadialBounds.hpp

References eAveragePhi, eHalfPhiSector, eMaxR, eMinR, M_PI, and Acts::detail::radian_sym().

Referenced by RadialBounds().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool Acts::RadialBounds::coversFullAzimuth ( ) const
inlinefinalvirtual

Returns true for full phi coverage.

Implements Acts::DiscBounds.

Definition at line 146 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 146 of file RadialBounds.hpp

References eHalfPhiSector, and M_PI.

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

Minimal distance to boundary calculation

Parameters
lpositionlocal 2D position in surface coordinate frame
Returns
distance to boundary ( > 0 if outside and <=0 if inside)

Implements Acts::SurfaceBounds.

Definition at line 36 of file RadialBounds.cpp.

View newest version in sPHENIX GitHub at line 36 of file RadialBounds.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::RadialBounds::get ( BoundValues  bValue) const
inline

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 97 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 97 of file RadialBounds.hpp

References m_values.

Referenced by Acts::adjustBinUtility(), Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::JsonGeometryConverter::DefaultBin().

+ Here is the caller graph for this function:

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

For disc surfaces the local position in (r,phi) is checked

Parameters
lpositionlocal position to be checked
bcheckboundary check directive
Returns
is a boolean indicating the operation success

Implements Acts::SurfaceBounds.

Definition at line 29 of file RadialBounds.cpp.

View newest version in sPHENIX GitHub at line 29 of file RadialBounds.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:

bool Acts::RadialBounds::insideRadialBounds ( double  R,
double  tolerance = 0. 
) const
inlinefinalvirtual

Checks if this is inside the radial coverage given the a tolerance

Implements Acts::DiscBounds.

Definition at line 150 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 150 of file RadialBounds.hpp

References eMaxR, and eMinR.

double Acts::RadialBounds::rMax ( ) const
inlinevirtual

Return method for outer Radius.

Implements Acts::DiscBounds.

Definition at line 142 of file RadialBounds.hpp.

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

References eMaxR.

Referenced by Acts::JsonGeometryConverter::addSurfaceToJson(), Acts::CylinderVolumeBuilder::analyzeContent(), Acts::JsonGeometryConverter::DefaultBin(), Acts::CylinderVolumeHelper::estimateAndCheckDimension(), FW::Obj::ObjSurfaceWriter::write(), and FW::RootMaterialTrackWriter::writeT().

+ Here is the caller graph for this function:

double Acts::RadialBounds::rMin ( ) const
inlinevirtual

Return method for inner Radius.

Implements Acts::DiscBounds.

Definition at line 138 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 138 of file RadialBounds.hpp

References eMinR.

Referenced by Acts::JsonGeometryConverter::addSurfaceToJson(), Acts::CylinderVolumeBuilder::analyzeContent(), Acts::JsonGeometryConverter::DefaultBin(), Acts::CylinderVolumeHelper::estimateAndCheckDimension(), Acts::CylinderVolumeBuilder::trackingVolume(), FW::Obj::ObjSurfaceWriter::write(), and FW::RootMaterialTrackWriter::writeT().

+ Here is the caller graph for this function:

Acts::Vector2D Acts::RadialBounds::shifted ( const Vector2D lposition) const
private

Private helper method to shift a local position within the bounds

Parameters
lpositionThe local position in polar coordinates

Definition at line 21 of file RadialBounds.cpp.

View newest version in sPHENIX GitHub at line 21 of file RadialBounds.cpp

References Acts::eLOC_PHI, Acts::eLOC_R, Acts::detail::radian_sym(), and tmp.

+ Here is the call graph for this function:

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

Outstream operator

Parameters
slis the ostream to be dumped into

Implements Acts::SurfaceBounds.

Definition at line 49 of file RadialBounds.cpp.

View newest version in sPHENIX GitHub at line 49 of file RadialBounds.cpp

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

+ Here is the caller graph for this function:

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

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::SurfaceBounds.

Definition at line 17 of file RadialBounds.cpp.

View newest version in sPHENIX GitHub at line 17 of file RadialBounds.cpp

References Acts::SurfaceBounds::eDisc.

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

+ Here is the caller graph for this function:

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

View newest version in sPHENIX GitHub at line 162 of file RadialBounds.hpp

References m_values.

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

+ Here is the caller graph for this function:

std::vector< Acts::Vector2D > Acts::RadialBounds::vertices ( unsigned int  lseg) const
privatevirtual

This method returns the xy coordinates of vertices along the radial bounds

Parameters
lsegthe number of segments used to approximate and eventually curved line
Note
that the extremas are given, which may slightly alter the number of segments returned
Returns
vector for vertices in 2D

Implements Acts::DiscBounds.

Definition at line 43 of file RadialBounds.cpp.

View newest version in sPHENIX GitHub at line 43 of file RadialBounds.cpp

References Acts::detail::VerticesHelper::circularVertices().

+ Here is the call graph for this function:

Member Data Documentation

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

Definition at line 113 of file RadialBounds.hpp.

View newest version in sPHENIX GitHub at line 113 of file RadialBounds.hpp

Referenced by get(), and values().


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