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

#include <acts/blob/sPHENIX/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
 
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 final
 

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

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

Member Enumeration Documentation

Enumerator:
eHalfLengthXminR 
eHalfLengthXmaxR 
eMinR 
eMaxR 
eAveragePhi 
eStereo 
eSize 

Definition at line 29 of file DiscTrapezoidBounds.hpp.

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

View newest version in sPHENIX GitHub at line 56 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 199 of file DiscTrapezoidBounds.hpp.

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

References eAveragePhi.

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

Return a reference radius for binning.

Implements Acts::DiscBounds.

Definition at line 195 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 195 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 209 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 209 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 186 of file DiscTrapezoidBounds.hpp.

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

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

View newest version in sPHENIX GitHub at line 84 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 176 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 176 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 160 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 160 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 47 of file DiscTrapezoidBounds.cpp.

View newest version in sPHENIX GitHub at line 47 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 190 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 190 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 35 of file DiscTrapezoidBounds.cpp.

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

References cos(), Acts::eBoundLoc0, and Acts::eBoundLoc1.

+ Here is the call graph for this function:

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

This method returns the center radius.

Definition at line 166 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 166 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 152 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 152 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 148 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 148 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 156 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 156 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 cos(), Acts::eBoundLoc0, and Acts::eBoundLoc1.

+ Here is the call graph for this function:

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

Output Method for std::ostream.

Implements Acts::SurfaceBounds.

Definition at line 69 of file DiscTrapezoidBounds.cpp.

View newest version in sPHENIX GitHub at line 69 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 203 of file DiscTrapezoidBounds.hpp.

View newest version in sPHENIX GitHub at line 203 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
finalvirtual

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 58 of file DiscTrapezoidBounds.cpp.

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

References cos().

+ Here is the call graph for this function:

Member Data Documentation

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

Definition at line 129 of file DiscTrapezoidBounds.hpp.

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

Referenced by get(), and values().


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