Belle II Software  release-08-01-10
UncertainParameters.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #pragma once
9 
10 #include <tracking/trackFindingCDC/numerics/CovarianceMatrix.h>
11 #include <tracking/trackFindingCDC/numerics/PrecisionMatrix.h>
12 #include <tracking/trackFindingCDC/numerics/JacobianMatrix.h>
13 #include <tracking/trackFindingCDC/numerics/ParameterVector.h>
14 
15 namespace Belle2 {
20  namespace TrackFindingCDC {
21 
23  template <class T, class AEParameters>
25 
27  using EParamaters = AEParameters;
28 
30  static const size_t c_N = EParamaters::c_N;
31 
34 
37 
40 
43 
45  static void transport(const JacobianMatrix& jacobian, CovarianceMatrix& cov);
46 
48  static CovarianceMatrix transported(const JacobianMatrix& jacobian,
49  const CovarianceMatrix& cov);
50 
53 
55  static void reverse(CovarianceMatrix& cov);
56 
58  static CovarianceMatrix reversed(const CovarianceMatrix& cov);
59 
61  static CovarianceMatrix identity();
62 
65 
68 
74 
80 
82  template <class AParameterVector, int I = 0>
83  static AParameterVector getSubParameterVector(const ParameterVector& par);
84 
86  template <class ACovarianceMatrix, int I = 0>
87  static ACovarianceMatrix getSubCovarianceMatrix(const CovarianceMatrix& cov);
88  };
89  }
91 }
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:40
Abstract base class for different kinds of events.
Utility struct to instantiate a couple of helper function related to a set of uncertain parameters.
static PrecisionMatrix precisionFromCovariance(const CovarianceMatrix &cov)
Convert the covariance matrix to the corresponding precision matrix.
static PrecisionMatrix precisionFromFullCovariance(const CovarianceMatrix &cov)
Convert the covariance matrix to the corresponding precision matrix.
static CovarianceMatrix transported(const JacobianMatrix &jacobian, const CovarianceMatrix &cov)
Return a copy of the covariance matrix transported with the given jacobian matrix.
static CovarianceMatrix covarianceFromPrecision(const PrecisionMatrix &prec)
Convert the precision matrix to the corresponding covariance matrix.
static void transport(const JacobianMatrix &jacobian, CovarianceMatrix &cov)
Transport the covariance matrix inplace with the given jacobian matrix.
static CovarianceMatrix identity()
Returns an identity 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 const size_t c_N
Number of elements.
static JacobianMatrix reversalJacobian()
Jacobian matrix needed in the reversal operation of the parameter vector.
AEParameters EParamaters
Indices of the parameters.
static void reverse(CovarianceMatrix &cov)
Reverse the covariance matrix inplace.
static CovarianceMatrix covarianceFromFullPrecision(const PrecisionMatrix &prec)
Convert the precision matrix to the corresponding covariance matrix.
static CovarianceMatrix reversed(const CovarianceMatrix &cov)
Return a copy of the reversed covariance matrix.