Belle II Software development
PerigeeUtil Struct Reference

Utility struct for functions and types related to the perigee parameters. More...

#include <PerigeeParameters.h>

Inheritance diagram for PerigeeUtil:
UncertainParametersUtil< PerigeeUtil, EPerigeeParameter >

Public Types

using EParamaters = EPerigeeParameter
 Indices of the parameters.
 
using ParameterVector = TrackFindingCDC::ParameterVector< c_N >
 The vector type representing the n related parameters.
 
using CovarianceMatrix = TrackFindingCDC::CovarianceMatrix< c_N >
 The matrix type representing the covariance of the n related parameters.
 
using PrecisionMatrix = TrackFindingCDC::PrecisionMatrix< c_N >
 The matrix type representing the precision of the n related parameters.
 
using JacobianMatrix = TrackFindingCDC::JacobianMatrix< c_N >
 The matrix type used to translate covariances and precisions im auto mapping of the parameter space.
 

Static Public Member Functions

static ParameterVector reversalSigns ()
 Getter for the signs which have to be applied to reverse the traversal direction.
 
static double average (const PerigeeUtil::ParameterVector &fromPar, const PerigeeUtil::CovarianceMatrix &fromCov, const PerigeeUtil::ParameterVector &toPar, const PerigeeUtil::CovarianceMatrix &toCov, PerigeeUtil::ParameterVector &avgPar, PerigeeUtil::CovarianceMatrix &avgCov)
 Calculates the weighted average between two perigee parameter sets with their respective covariance matrix.
 
static void transport (const JacobianMatrix &jacobian, CovarianceMatrix &cov)
 Transport the covariance matrix inplace with the given jacobian matrix.
 
static CovarianceMatrix transported (const JacobianMatrix &jacobian, const CovarianceMatrix &cov)
 Return a copy of the covariance matrix transported with the given jacobian matrix.
 
static JacobianMatrix reversalJacobian ()
 Jacobian matrix needed in the reversal operation of the parameter vector.
 
static void reverse (CovarianceMatrix &cov)
 Reverse the covariance matrix inplace.
 
static CovarianceMatrix reversed (const CovarianceMatrix &cov)
 Return a copy of the reversed covariance matrix.
 
static CovarianceMatrix identity ()
 Returns an identity matrix.
 
static CovarianceMatrix covarianceFromPrecision (const PrecisionMatrix &prec)
 Convert the precision matrix to the corresponding covariance matrix.
 
static PrecisionMatrix precisionFromCovariance (const CovarianceMatrix &cov)
 Convert the covariance matrix to the corresponding precision matrix.
 
static CovarianceMatrix covarianceFromFullPrecision (const PrecisionMatrix &prec)
 Convert the precision matrix to the corresponding covariance matrix.
 
static PrecisionMatrix precisionFromFullCovariance (const CovarianceMatrix &cov)
 Convert the covariance matrix to the corresponding precision matrix.
 
static AParameterVector getSubParameterVector (const ParameterVector &par)
 Getter for a sub part of the covariance matrix.
 
static ACovarianceMatrix getSubCovarianceMatrix (const CovarianceMatrix &cov)
 Getter for a sub part of the covariance matrix.
 

Static Public Attributes

static const size_t c_N
 Number of elements.
 

Detailed Description

Utility struct for functions and types related to the perigee parameters.

Definition at line 47 of file PerigeeParameters.h.

Member Typedef Documentation

◆ CovarianceMatrix

The matrix type representing the covariance of the n related parameters.

Definition at line 36 of file UncertainParameters.h.

◆ EParamaters

using EParamaters = EPerigeeParameter
inherited

Indices of the parameters.

Definition at line 27 of file UncertainParameters.h.

◆ JacobianMatrix

The matrix type used to translate covariances and precisions im auto mapping of the parameter space.

Definition at line 42 of file UncertainParameters.h.

◆ ParameterVector

The vector type representing the n related parameters.

Definition at line 33 of file UncertainParameters.h.

◆ PrecisionMatrix

The matrix type representing the precision of the n related parameters.

Definition at line 39 of file UncertainParameters.h.

Member Function Documentation

◆ average()

double average ( const PerigeeUtil::ParameterVector fromPar,
const PerigeeUtil::CovarianceMatrix fromCov,
const PerigeeUtil::ParameterVector toPar,
const PerigeeUtil::CovarianceMatrix toCov,
PerigeeUtil::ParameterVector avgPar,
PerigeeUtil::CovarianceMatrix avgCov 
)
static

Calculates the weighted average between two perigee parameter sets with their respective covariance matrix.

Returns the chi2 value of the average.

Definition at line 19 of file PerigeeParameters.cc.

25{
26 using namespace NPerigeeParameterIndices;
27 PerigeeParameters refPar = (fromPar + toPar) / 2.0;
28 refPar(c_Phi0) = AngleUtil::average(fromPar(c_Phi0), toPar(c_Phi0));
29
30 PerigeeParameters relFromPar = fromPar - refPar;
31 AngleUtil::normalise(relFromPar(c_Phi0));
32
33 PerigeeParameters relToPar = toPar - refPar;
34 AngleUtil::normalise(relToPar(c_Phi0));
35
36 PerigeeParameters relAvgPar;
37
38 double chi2 =
39 CovarianceMatrixUtil::average(relFromPar, fromCov, relToPar, toCov, relAvgPar, avgCov);
40
41 avgPar = relAvgPar + refPar;
42 AngleUtil::normalise(avgPar(c_Phi0));
43
44 return chi2;
45}
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:40
static void normalise(double &angle)
Normalise an angle inplace to lie in the range from [-pi, pi].
Definition: Angle.h:41
static double average(const double angle1, double angle2)
Combines two angular values to the one that lies half way between them on the short arc.
Definition: Angle.h:27
static double average(const ParameterVector< N > &par1, const CovarianceMatrix< N > &cov1, const ParameterVector< N > &par2, const CovarianceMatrix< N > &cov2, ParameterVector< N > &par, CovarianceMatrix< N > &cov)
Averages two parameter vectors taking into account their respective covariances.

◆ covarianceFromFullPrecision()

auto covarianceFromFullPrecision ( const PrecisionMatrix prec)
staticinherited

Convert the precision matrix to the corresponding covariance matrix.

Faster version with foreknowledge that the precision is of full rank.

Definition at line 73 of file UncertainParameters.icc.h.

92 {
93 return CovarianceMatrixUtil::fromFullPrecision(prec);
94 }

◆ covarianceFromPrecision()

auto covarianceFromPrecision ( const PrecisionMatrix prec)
staticinherited

Convert the precision matrix to the corresponding covariance matrix.

Definition at line 64 of file UncertainParameters.icc.h.

78 {
79 return CovarianceMatrixUtil::fromPrecision(prec);
80 }

◆ getSubCovarianceMatrix()

ACovarianceMatrix getSubCovarianceMatrix ( const CovarianceMatrix cov)
staticinherited

Getter for a sub part of the covariance matrix.

Definition at line 87 of file UncertainParameters.icc.h.

71 {
72 return CovarianceMatrixUtil::getSub<ACovarianceMatrix, I>(cov);
73 }

◆ getSubParameterVector()

AParameterVector getSubParameterVector ( const ParameterVector par)
staticinherited

Getter for a sub part of the covariance matrix.

Definition at line 83 of file UncertainParameters.icc.h.

63 {
64 return ParameterVectorUtil::getSub<AParameterVector, I>(par);
65 }

◆ identity()

auto identity
staticinherited

Returns an identity matrix.

Definition at line 61 of file UncertainParameters.icc.h.

55 {
56 return CovarianceMatrixUtil::identity<c_N>();
57 }

◆ precisionFromCovariance()

auto precisionFromCovariance ( const CovarianceMatrix cov)
staticinherited

Convert the covariance matrix to the corresponding precision matrix.

Definition at line 67 of file UncertainParameters.icc.h.

85 {
86 return CovarianceMatrixUtil::toPrecision(cov);
87 }

◆ precisionFromFullCovariance()

auto precisionFromFullCovariance ( const CovarianceMatrix cov)
staticinherited

Convert the covariance matrix to the corresponding precision matrix.

Faster version with foreknowledge that the precision is of full rank.

Definition at line 79 of file UncertainParameters.icc.h.

99 {
100 return CovarianceMatrixUtil::fullToPrecision(cov);
101 }

◆ reversalJacobian()

auto reversalJacobian
staticinherited

Jacobian matrix needed in the reversal operation of the parameter vector.

Definition at line 52 of file UncertainParameters.icc.h.

38 {
39 return JacobianMatrixUtil::scale(T::reversalSigns());
40 }

◆ reversalSigns()

static ParameterVector reversalSigns ( )
inlinestatic

Getter for the signs which have to be applied to reverse the traversal direction.

Definition at line 50 of file PerigeeParameters.h.

51 {
52 return ParameterVector({ -1.0, 1.0, -1.0});
53 }
TrackFindingCDC::ParameterVector< c_N > ParameterVector
The vector type representing the n related parameters.

◆ reverse()

void reverse ( CovarianceMatrix cov)
staticinherited

Reverse the covariance matrix inplace.

Definition at line 55 of file UncertainParameters.icc.h.

44 {
45 return transport(reversalJacobian(), cov);
46 }
static void transport(const JacobianMatrix &jacobian, CovarianceMatrix &cov)
Transport the covariance matrix inplace with the given jacobian matrix.
static JacobianMatrix reversalJacobian()
Jacobian matrix needed in the reversal operation of the parameter vector.

◆ reversed()

auto reversed ( const CovarianceMatrix cov)
staticinherited

Return a copy of the reversed covariance matrix.

Definition at line 58 of file UncertainParameters.icc.h.

50 {
51 return transported(reversalJacobian(), cov);
52 }
static CovarianceMatrix transported(const JacobianMatrix &jacobian, const CovarianceMatrix &cov)
Return a copy of the covariance matrix transported with the given jacobian matrix.

◆ transport()

void transport ( const JacobianMatrix jacobian,
CovarianceMatrix cov 
)
staticinherited

Transport the covariance matrix inplace with the given jacobian matrix.

Definition at line 45 of file UncertainParameters.icc.h.

26 {
27 CovarianceMatrixUtil::transport(jacobian, cov);
28 }

◆ transported()

auto transported ( const JacobianMatrix jacobian,
const CovarianceMatrix cov 
)
staticinherited

Return a copy of the covariance matrix transported with the given jacobian matrix.

Definition at line 48 of file UncertainParameters.icc.h.

33 {
34 return CovarianceMatrixUtil::transported(jacobian, cov);
35 }

Member Data Documentation

◆ c_N

const size_t c_N
staticinherited

Number of elements.

Definition at line 30 of file UncertainParameters.h.


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