ATLAS Offline Software
Public Types | Public Member Functions | Public Attributes | Static Private Attributes | List of all members
Trk::BoundaryCheck Class Reference

#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 More...
 
 BoundaryCheck (bool sCheck)
 Constructor for single boolean behavious. More...
 
 BoundaryCheck (bool chkL1, bool chkL2, double tloc1=0., double tloc2=0.)
 Constructor for tolerance based check. More...
 
 BoundaryCheck (const AmgSymMatrix(2) &lCov, int nsig=1, bool chkL1=true, bool chkL2=true)
 Constructor for chi2 based check. More...
 
 operator bool () const
 Conversion operator to bool. More...
 
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. More...
 
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 More...
 
bool checkLoc2
 check local 2 coordinate More...
 
int nSigmas
 allowed sigmas for chi2 boundary check More...
 
double toleranceLoc1
 absolute tolerance in local 1 coordinate More...
 
double toleranceLoc2
 absolute tolerance in local 2 coordinate More...
 
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:

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  };

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.)
81  , bcType(absolute)
82  , lCovariance(AmgSymMatrix(2)::Identity())
83  {}

◆ 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)
92  , bcType(absolute)
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.)
103  , bcType(chi2corr)
104  , lCovariance(lCov)
105  {}

Member Function Documentation

◆ AmgSymMatrix()

Trk::BoundaryCheck::AmgSymMatrix ( )

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

constexpr double Trk::BoundaryCheck::s_cos22 = 0.923879532511286756128183189396788286822416625863642486115097
staticconstexprprivate

Definition at line 53 of file BoundaryCheck.h.

◆ s_cos45

constexpr double Trk::BoundaryCheck::s_cos45 = 0.707106781186547524400844362104849039284835937688474036588339
staticconstexprprivate

Definition at line 54 of file BoundaryCheck.h.

◆ s_cos67

constexpr 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:
Trk::BoundaryCheck::AmgSymMatrix
AmgSymMatrix(2) lCovariance
local covariance matrix
Trk::BoundaryCheck::chi2corr
@ chi2corr
relative (chi2 based) with full correlations
Definition: BoundaryCheck.h:61
Trk::BoundaryCheck::checkLoc2
bool checkLoc2
check local 2 coordinate
Definition: BoundaryCheck.h:66
Trk::BoundaryCheck::toleranceLoc1
double toleranceLoc1
absolute tolerance in local 1 coordinate
Definition: BoundaryCheck.h:68
Trk::BoundaryCheck::bcType
BoundaryCheckType bcType
Definition: BoundaryCheck.h:70
Trk::BoundaryCheck::nSigmas
int nSigmas
allowed sigmas for chi2 boundary check
Definition: BoundaryCheck.h:67
Trk::BoundaryCheck::absolute
@ absolute
absolute check including tolerances
Definition: BoundaryCheck.h:60
Trk::BoundaryCheck::checkLoc1
bool checkLoc1
check local 1 coordinate
Definition: BoundaryCheck.h:65
Trk::BoundaryCheck::toleranceLoc2
double toleranceLoc2
absolute tolerance in local 2 coordinate
Definition: BoundaryCheck.h:69