ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::BoundaryCheck Class Reference

The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks of parameters. More...

#include <BoundaryCheck.h>

Collaboration diagram for Trk::BoundaryCheck:

Public Types

enum  BoundaryCheckType { absolute = 0 , chi2corr = 1 }

Public Member Functions

 AmgSymMatrix (2) lCovariance
 local covariance matrix
 BoundaryCheck (bool sCheck)
 Constructor for single boolean behavious.
 BoundaryCheck (bool chkL1, bool chkL2, double tloc1=0., double tloc2=0.)
 Constructor for tolerance based check.
 BoundaryCheck (const AmgSymMatrix(2) &lCov, int nsig=1, bool chkL1=true, bool chkL2=true)
 Constructor for chi2 based check.
 operator bool () const
 Conversion operator to bool.
void ComputeKDOP (const std::vector< Amg::Vector2D > &v, const std::vector< Amg::Vector2D > &KDOPAxes, std::vector< KDOP > &kdop) const
 Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds.
std::vector< Amg::Vector2DEllipseToPoly (int resolution=3) const
bool TestKDOPKDOP (const std::vector< KDOP > &a, const std::vector< KDOP > &b) const
double FastArcTan (double x) const
sincosCache FastSinCos (double x) const

Public Attributes

bool checkLoc1
 check local 1 coordinate
bool checkLoc2
 check local 2 coordinate
int nSigmas
 allowed sigmas for chi2 boundary check
double toleranceLoc1
 absolute tolerance in local 1 coordinate
double toleranceLoc2
 absolute tolerance in local 2 coordinate
BoundaryCheckType bcType

Static Private Attributes

static constexpr double s_cos22 = 0.923879532511286756128183189396788286822416625863642486115097
static constexpr double s_cos45 = 0.707106781186547524400844362104849039284835937688474036588339
static constexpr double s_cos67 = 0.382683432365089771728459984030398866761344562485627041433800

Detailed Description

The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks of parameters.

These checks are performed in the local 2D frame of the surface and can either be:

  • inside/outside with and without tolerance
  • inside/outside according to a given chi2 value

    It also provides all the necessary tools for the individual implementations in the different SurfaceBounds classes.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch & Rolan.nosp@m.d.Ja.nosp@m.nsky@.nosp@m.cern.nosp@m..ch

Definition at line 50 of file BoundaryCheck.h.

Member Enumeration Documentation

◆ BoundaryCheckType

Enumerator
absolute 

absolute check including tolerances

chi2corr 

relative (chi2 based) with full correlations

Definition at line 58 of file BoundaryCheck.h.

59 {
60 absolute = 0,
61 chi2corr = 1
62 };
@ chi2corr
relative (chi2 based) with full correlations
@ absolute
absolute check including tolerances

Constructor & Destructor Documentation

◆ BoundaryCheck() [1/3]

Trk::BoundaryCheck::BoundaryCheck ( bool sCheck)
inline

Constructor for single boolean behavious.

Definition at line 75 of file BoundaryCheck.h.

76 : checkLoc1(sCheck)
77 , checkLoc2(sCheck)
78 , nSigmas(-1)
79 , toleranceLoc1(0.)
80 , toleranceLoc2(0.)
82 , lCovariance(AmgSymMatrix(2)::Identity())
83 {}
#define AmgSymMatrix(dim)
int nSigmas
allowed sigmas for chi2 boundary check
BoundaryCheckType bcType
double toleranceLoc2
absolute tolerance in local 2 coordinate
bool checkLoc2
check local 2 coordinate
bool checkLoc1
check local 1 coordinate
double toleranceLoc1
absolute tolerance in local 1 coordinate

◆ BoundaryCheck() [2/3]

Trk::BoundaryCheck::BoundaryCheck ( bool chkL1,
bool chkL2,
double tloc1 = 0.,
double tloc2 = 0. )
inline

Constructor for tolerance based check.

Definition at line 86 of file BoundaryCheck.h.

87 : checkLoc1(chkL1)
88 , checkLoc2(chkL2)
89 , nSigmas(-1)
90 , toleranceLoc1(tloc1)
91 , toleranceLoc2(tloc2)
93 , lCovariance(AmgSymMatrix(2)::Identity())
94 {}

◆ BoundaryCheck() [3/3]

Trk::BoundaryCheck::BoundaryCheck ( const AmgSymMatrix(2) & lCov,
int nsig = 1,
bool chkL1 = true,
bool chkL2 = true )
inline

Constructor for chi2 based check.

Definition at line 97 of file BoundaryCheck.h.

98 : checkLoc1(chkL1)
99 , checkLoc2(chkL2)
100 , nSigmas(nsig)
101 , toleranceLoc1(0.)
102 , toleranceLoc2(0.)
104 , lCovariance(lCov)
105 {}

Member Function Documentation

◆ AmgSymMatrix()

Trk::BoundaryCheck::AmgSymMatrix ( 2 )

local covariance matrix

◆ ComputeKDOP()

void Trk::BoundaryCheck::ComputeKDOP ( const std::vector< Amg::Vector2D > & v,
const std::vector< Amg::Vector2D > & KDOPAxes,
std::vector< KDOP > & kdop ) const

Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds.

Inside can be called without/with boundary check

◆ EllipseToPoly()

std::vector< Amg::Vector2D > Trk::BoundaryCheck::EllipseToPoly ( int resolution = 3) const

◆ FastArcTan()

double Trk::BoundaryCheck::FastArcTan ( double x) const

◆ FastSinCos()

sincosCache Trk::BoundaryCheck::FastSinCos ( double x) const

◆ operator bool()

Trk::BoundaryCheck::operator bool ( ) const
inline

Conversion operator to bool.

Definition at line 108 of file BoundaryCheck.h.

108{ return (checkLoc1 || checkLoc2); }

◆ TestKDOPKDOP()

bool Trk::BoundaryCheck::TestKDOPKDOP ( const std::vector< KDOP > & a,
const std::vector< KDOP > & b ) const

Member Data Documentation

◆ bcType

BoundaryCheckType Trk::BoundaryCheck::bcType

Definition at line 70 of file BoundaryCheck.h.

◆ checkLoc1

bool Trk::BoundaryCheck::checkLoc1

check local 1 coordinate

Definition at line 65 of file BoundaryCheck.h.

◆ checkLoc2

bool Trk::BoundaryCheck::checkLoc2

check local 2 coordinate

Definition at line 66 of file BoundaryCheck.h.

◆ nSigmas

int Trk::BoundaryCheck::nSigmas

allowed sigmas for chi2 boundary check

Definition at line 67 of file BoundaryCheck.h.

◆ s_cos22

double Trk::BoundaryCheck::s_cos22 = 0.923879532511286756128183189396788286822416625863642486115097
staticconstexprprivate

Definition at line 53 of file BoundaryCheck.h.

◆ s_cos45

double Trk::BoundaryCheck::s_cos45 = 0.707106781186547524400844362104849039284835937688474036588339
staticconstexprprivate

Definition at line 54 of file BoundaryCheck.h.

◆ s_cos67

double Trk::BoundaryCheck::s_cos67 = 0.382683432365089771728459984030398866761344562485627041433800
staticconstexprprivate

Definition at line 55 of file BoundaryCheck.h.

◆ toleranceLoc1

double Trk::BoundaryCheck::toleranceLoc1

absolute tolerance in local 1 coordinate

Definition at line 68 of file BoundaryCheck.h.

◆ toleranceLoc2

double Trk::BoundaryCheck::toleranceLoc2

absolute tolerance in local 2 coordinate

Definition at line 69 of file BoundaryCheck.h.


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