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

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

+ Inheritance diagram for Acts::DiscTrapezoidBounds:
+ Collaboration diagram for Acts::DiscTrapezoidBounds:

Public Types

enum  BoundValues : int {
  eHalfLengthXminR = 0, eHalfLengthXmaxR = 1, eMinR = 2, eMaxR = 3,
  eAveragePhi = 4, eStereo = 5, eSize = 6
}
 

Public Member Functions

 DiscTrapezoidBounds ()=delete
 
 DiscTrapezoidBounds (double halfXminR, double halfXmaxR, double minR, double maxR, double avgPhi=M_PI_2, double stereo=0.) noexcept(false)
 
 DiscTrapezoidBounds (const std::array< double, eSize > &values) noexcept(false)
 
 ~DiscTrapezoidBounds () override=default
 
SurfaceBounds::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
 Output Method for std::ostream.
 
double get (BoundValues bValue) const
 
double rMin () const final
 This method returns inner radius.
 
double rMax () const final
 This method returns outer radius.
 
double rCenter () const
 This method returns the center radius.
 
double stereo () const
 This method returns the stereo angle.
 
double halfPhiSector () const
 This method returns the halfPhiSector which is covered by the disc.
 
double halfLengthY () const
 This method returns the half length in Y (this is Rmax -Rmin)
 
bool coversFullAzimuth () const final
 Returns true for full phi coverage - obviously false here.
 
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 phi for binning.
 
std::vector< Vector2Dvertices (unsigned int lseg) const
 

Private Member Functions

void checkConsistency () noexcept(false)
 
Vector2D toLocalCartesian (const Vector2D &lposition) const
 
ActsMatrixD< 2, 2 > jacobianToLocalCartesian (const Vector2D &lposition) 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 28 of file DiscTrapezoidBounds.hpp.

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

Member Enumeration Documentation

Enumerator:
eHalfLengthXminR 
eHalfLengthXmaxR 
eMinR 
eMaxR 
eAveragePhi 
eStereo 
eSize 

Definition at line 30 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 30 of file DiscTrapezoidBounds.hpp

Constructor & Destructor Documentation

Acts::DiscTrapezoidBounds::DiscTrapezoidBounds ( )
delete
Acts::DiscTrapezoidBounds::DiscTrapezoidBounds ( double  halfXminR,
double  halfXmaxR,
double  minR,
double  maxR,
double  avgPhi = M_PI_2,
double  stereo = 0. 
)
noexcept

Constructor for a symmetric Trapezoid giving min X length, max X length, Rmin and R max

Parameters
halfXminRhalf length in X at min radius
halfXmaxRhalf length in X at maximum radius
minRinner radius
maxRouter radius
avgPhiaverage phi value
stereooptional stero angle applied

Definition at line 15 of file DiscTrapezoidBounds.cpp.

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

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

Constructor - from fixed size array

Parameters
valuesThe parameter values

Definition at line 57 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 57 of file DiscTrapezoidBounds.hpp

References checkConsistency().

+ Here is the call graph for this function:

Acts::DiscTrapezoidBounds::~DiscTrapezoidBounds ( )
overridedefault

Member Function Documentation

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

Return a reference phi for binning.

Implements Acts::DiscBounds.

Definition at line 206 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 206 of file DiscTrapezoidBounds.hpp

References eAveragePhi.

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

Return a reference radius for binning.

Implements Acts::DiscBounds.

Definition at line 202 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 202 of file DiscTrapezoidBounds.hpp

References eMaxR, and eMinR.

void Acts::DiscTrapezoidBounds::checkConsistency ( )
inlineprivatenoexcept

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

Definition at line 216 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 216 of file DiscTrapezoidBounds.hpp

References eAveragePhi, eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, eMinR, and Acts::detail::radian_sym().

Referenced by DiscTrapezoidBounds().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Returns true for full phi coverage - obviously false here.

Implements Acts::DiscBounds.

Definition at line 193 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 193 of file DiscTrapezoidBounds.hpp

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

Minimal distance to boundary

Parameters
lpositionis the local position to be checked (in polar coordinates)
Returns
is the minimal distance ( > 0 if outside and <=0 if inside)

Implements Acts::SurfaceBounds.

Definition at line 54 of file DiscTrapezoidBounds.cpp.

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

Access to the bound values

Parameters
bValuethe class nested enum for the array access

Definition at line 91 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 91 of file DiscTrapezoidBounds.hpp

References m_values.

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

+ Here is the caller graph for this function:

double Acts::DiscTrapezoidBounds::halfLengthY ( ) const
inline

This method returns the half length in Y (this is Rmax -Rmin)

Definition at line 183 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 183 of file DiscTrapezoidBounds.hpp

References eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, eMinR, and rmax().

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::DiscTrapezoidBounds::halfPhiSector ( ) const
inline

This method returns the halfPhiSector which is covered by the disc.

Definition at line 167 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 167 of file DiscTrapezoidBounds.hpp

References eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, eMinR, and max.

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

This method cheks if the radius given in the LocalPosition is inside [rMin,rMax] if only tol0 is given and additional in the phi sector is tol1 is given

Parameters
lpositionis the local position to be checked (in polar coordinates)
bcheckis the boundary check directive

Implements Acts::SurfaceBounds.

Definition at line 43 of file DiscTrapezoidBounds.cpp.

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

References Acts::BoundaryCheck::isInside(), and Acts::BoundaryCheck::transformed().

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::DiscTrapezoidBounds::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 197 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 197 of file DiscTrapezoidBounds.hpp

References eMaxR, and eMinR.

Acts::ActsMatrixD< 2, 2 > Acts::DiscTrapezoidBounds::jacobianToLocalCartesian ( const Vector2D lposition) const
private

Jacobian into its Cartesian representation

Parameters
lpositionThe local position in polar coordinates

Definition at line 33 of file DiscTrapezoidBounds.cpp.

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

References Acts::eLOC_PHI, and Acts::eLOC_R.

double Acts::DiscTrapezoidBounds::rCenter ( ) const
inline

This method returns the center radius.

Definition at line 173 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 173 of file DiscTrapezoidBounds.hpp

References eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, eMinR, and rmax().

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::DiscTrapezoidBounds::rMax ( ) const
inlinefinalvirtual

This method returns outer radius.

Implements Acts::DiscBounds.

Definition at line 159 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 159 of file DiscTrapezoidBounds.hpp

References eMaxR.

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

+ Here is the caller graph for this function:

double Acts::DiscTrapezoidBounds::rMin ( ) const
inlinefinalvirtual

This method returns inner radius.

Implements Acts::DiscBounds.

Definition at line 155 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 155 of file DiscTrapezoidBounds.hpp

References eMinR.

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

+ Here is the caller graph for this function:

double Acts::DiscTrapezoidBounds::stereo ( ) const
inline

This method returns the stereo angle.

Definition at line 163 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 163 of file DiscTrapezoidBounds.hpp

References eStereo.

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

+ Here is the caller graph for this function:

Acts::Vector2D Acts::DiscTrapezoidBounds::toLocalCartesian ( const Vector2D lposition) const
private

Private helper method to convert a local postion into its Cartesian representation

Parameters
lpositionThe local position in polar coordinates

Definition at line 27 of file DiscTrapezoidBounds.cpp.

View newest version in sPHENIX GitHub at line 27 of file DiscTrapezoidBounds.cpp

References Acts::eLOC_PHI, and Acts::eLOC_R.

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

Output Method for std::ostream.

Implements Acts::SurfaceBounds.

Definition at line 74 of file DiscTrapezoidBounds.cpp.

View newest version in sPHENIX GitHub at line 74 of file DiscTrapezoidBounds.cpp

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

+ Here is the caller graph for this function:

Acts::SurfaceBounds::BoundsType Acts::DiscTrapezoidBounds::type ( ) const
finalvirtual
Initial value:

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::SurfaceBounds.

Definition at line 23 of file DiscTrapezoidBounds.cpp.

View newest version in sPHENIX GitHub at line 23 of file DiscTrapezoidBounds.cpp

References Acts::SurfaceBounds::eDiscTrapezoid.

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

+ Here is the caller graph for this function:

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

View newest version in sPHENIX GitHub at line 210 of file DiscTrapezoidBounds.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::DiscTrapezoidBounds::vertices ( unsigned int  lseg) const
virtual

This method returns the xy coordinates of the four corners of the bounds in module coorindates (in xy)

Parameters
lsegthe number of segments used to approximate and eventually curved line
Note
that the number of segments are ignored for this surface
Returns
vector for vertices in 2D

Implements Acts::DiscBounds.

Definition at line 63 of file DiscTrapezoidBounds.cpp.

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

Member Data Documentation

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

Definition at line 136 of file DiscTrapezoidBounds.hpp.

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

Referenced by get(), and values().


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