Analysis Software
Documentation for sPHENIX simulation 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< doublevalues () const final
 
bool inside (const Vector2 &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< Vector2vertices (unsigned int lseg) const final
 

Private Member Functions

void checkConsistency () noexcept(false)
 
Vector2 toLocalCartesian (const Vector2 &lposition) const
 
ActsMatrix< 2, 2 > jacobianToLocalCartesian (const Vector2 &lposition) const
 

Private Attributes

std::array< double, eSizem_values
 
double m_ymax = 0
 Dreived maximum y value.
 

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

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

Member Enumeration Documentation

Enumerator:
eHalfLengthXminR 
eHalfLengthXmaxR 
eMinR 
eMaxR 
eAveragePhi 
eStereo 
eSize 

Definition at line 34 of file DiscTrapezoidBounds.hpp.

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

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

References maxR, and minR.

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

Constructor - from fixed size array

Parameters
valuesThe parameter values

Definition at line 61 of file DiscTrapezoidBounds.hpp.

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

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

References eAveragePhi.

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

Return a reference radius for binning.

Implements Acts::DiscBounds.

Definition at line 203 of file DiscTrapezoidBounds.hpp.

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

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

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

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

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

References eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, and eMinR.

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

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

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

References eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, and eMinR.

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

This method checks 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 52 of file DiscTrapezoidBounds.cpp.

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

References Acts::BoundaryCheck::isInside(), m_ymax, Acts::BoundaryCheck::transformed(), and ActsExamples::HepMC3Event::vertices().

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

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

References eMaxR, and eMinR.

Acts::ActsMatrix< 2, 2 > Acts::DiscTrapezoidBounds::jacobianToLocalCartesian ( const Vector2 lposition) const
private

Jacobian into its Cartesian representation

Parameters
lpositionThe local position in polar coordinates

Definition at line 40 of file DiscTrapezoidBounds.cpp.

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

References Acts::eBoundLoc0, and Acts::eBoundLoc1.

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

This method returns the center radius.

Definition at line 174 of file DiscTrapezoidBounds.hpp.

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

References eHalfLengthXmaxR, eHalfLengthXminR, eMaxR, and eMinR.

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

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

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

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

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

References eStereo.

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

+ Here is the caller graph for this function:

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

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

Parameters
lpositionThe local position in polar coordinates

Definition at line 32 of file DiscTrapezoidBounds.cpp.

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

References Acts::eBoundLoc0, and Acts::eBoundLoc1.

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

Output Method for std::ostream.

Implements Acts::SurfaceBounds.

Definition at line 77 of file DiscTrapezoidBounds.cpp.

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

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implements Acts::SurfaceBounds.

Definition at line 28 of file DiscTrapezoidBounds.cpp.

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

View newest version in sPHENIX GitHub at line 211 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::Vector2 > 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 63 of file DiscTrapezoidBounds.cpp.

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

References Acts::Test::halfY, m_ymax, and ymin.

Referenced by ActsFatras::PlanarSurfaceMask::apply().

+ Here is the caller graph for this function:

Member Data Documentation

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

Definition at line 134 of file DiscTrapezoidBounds.hpp.

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

Referenced by get(), and values().

double Acts::DiscTrapezoidBounds::m_ymax = 0
private

Dreived maximum y value.

Definition at line 137 of file DiscTrapezoidBounds.hpp.

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


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