Belle II Software development
UncertainParameters.icc.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/trackingUtilities/geometry/UncertainParameters.h>
11
12#include <tracking/trackingUtilities/numerics/CovarianceMatrixUtil.h>
13#include <tracking/trackingUtilities/numerics/JacobianMatrixUtil.h>
14#include <tracking/trackingUtilities/numerics/ParameterVectorUtil.h>
15
16namespace Belle2 {
21 namespace TrackingUtilities {
22
23 template <class T, class AEParameters>
29
30 template <class T, class AEParameters>
37
38 template <class T, class AEParameters>
43
44 template <class T, class AEParameters>
49
50 template <class T, class AEParameters>
53 {
54 return transported(reversalJacobian(), cov);
55 }
56
57 template <class T, class AEParameters>
62
63 template <class T, class AEParameters>
64 template <class AParameterVector, int I>
65 AParameterVector
67 {
69 }
70
71 template <class T, class AEParameters>
72 template <class ACovarianceMatrix, int I>
73 ACovarianceMatrix
78
79 template <class T, class AEParameters>
80 auto
83 {
85 }
86
87 template <class T, class AEParameters>
88 auto
94
95 template <class T, class AEParameters>
96 auto
102
103 template <class T, class AEParameters>
104 auto
110 }
112}
Abstract base class for different kinds of events.
static CovarianceMatrix< N > fromPrecision(const PrecisionMatrix< N > &prec)
Convert precision matrix to covariance matrix - allows for reduced rank.
static CovarianceMatrix< M > transported(const JacobianMatrix< M, N > &jacobian, const CovarianceMatrix< N > &cov)
Return a copy of the covariance matrix transported with the given jacobian matrix.
static void transport(const JacobianMatrix< N, N > &jacobian, CovarianceMatrix< N > &cov)
Transport the covariance matrix inplace with the given jacobian matrix.
static PrecisionMatrix< N > fullToPrecision(const CovarianceMatrix< N > &cov)
Convert precision matrix to covariance matrix - assumes full rank.
static CovarianceMatrix< N > fromFullPrecision(const PrecisionMatrix< N > &prec)
Convert covariance matrix to precision matrix - assumes full rank.
static PrecisionMatrix< N > toPrecision(const CovarianceMatrix< N > &cov)
Convert covariance matrix to precision matrix - allows for reduced rank.
static CovarianceMatrix< N > identity()
Constructs an identity matrix.
static ACovarianceMatrix getSub(const CovarianceMatrix< N > &cov)
Gets a subcovariance from a covariance matrix.
static JacobianMatrix< N > scale(const ParameterVector< N > &scales)
Calculates the jacobian matrix for a scaling in each parameter.
static AParameterVector getSub(const ParameterVector< N > &par)
Gets a sub vector from a parameter vector.
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.
TrackingUtilities::JacobianMatrix< c_N > JacobianMatrix
The matrix type used to translate covariances and precisions im auto mapping of the parameter space.
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 JacobianMatrix reversalJacobian()
Jacobian matrix needed in the reversal operation of the parameter vector.
TrackingUtilities::CovarianceMatrix< c_N > CovarianceMatrix
The matrix type representing the covariance of the n related parameters.
TrackingUtilities::PrecisionMatrix< c_N > PrecisionMatrix
The matrix type representing the precision of the n related 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.
TrackingUtilities::ParameterVector< c_N > ParameterVector
The vector type representing the n related parameters.