GENFIT Rev: NoNumberAvailable
Loading...
Searching...
No Matches
Tools.h
Go to the documentation of this file.
1/* Copyright 2008-2010, Technische Universitaet Muenchen,
2 Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3
4 This file is part of GENFIT.
5
6 GENFIT is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 GENFIT is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18*/
19
23
24#ifndef genfit_Tools_h
25#define genfit_Tools_h
26
27#include <TVectorD.h>
28#include <TMatrixD.h>
29#include <TMatrixDSym.h>
30
34namespace genfit {
35
36class AbsHMatrix;
37
38namespace tools {
39
43void invertMatrix(const TMatrixDSym& mat, TMatrixDSym& inv, double* determinant = nullptr);
46void invertMatrix(TMatrixDSym& mat, double* determinant = nullptr);
47
51bool transposedForwardSubstitution(const TMatrixD& R, TVectorD& b);
53bool transposedForwardSubstitution(const TMatrixD& R, TMatrixD& b, int nCol);
55bool transposedInvert(const TMatrixD& R, TMatrixD& inv);
56
61void QR(TMatrixD& A);
62
68void QR(TMatrixD& A, TVectorD& b);
69
75void
76noiseMatrixSqrt(const TMatrixDSym& noise,
77 TMatrixD& noiseSqrt);
78
83void
84kalmanPredictionCovSqrt(const TMatrixD& S,
85 const TMatrixD& F, const TMatrixD& Q,
86 TMatrixD& Snew);
87
92void
93kalmanUpdateSqrt(const TMatrixD& S,
94 const TVectorD& res, const TMatrixD& R, const AbsHMatrix* H,
95 TVectorD& update, TMatrixD& SNew);
96
97} /* End of namespace tools */
98} /* End of namespace genfit */
100
101#endif // genfit_Tools_h
HMatrix for projecting from AbsTrackRep parameters to measured parameters in a DetPlane.
Definition AbsHMatrix.h:37
void QR(TMatrixD &A)
Replaces A with an upper right matrix connected to A by an orthongonal transformation....
Definition Tools.cc:209
bool transposedForwardSubstitution(const TMatrixD &R, TVectorD &b)
Solves R^t x = b, replacing b with the solution for x. R is assumed to be upper diagonal.
Definition Tools.cc:150
bool transposedInvert(const TMatrixD &R, TMatrixD &inv)
Inverts the transpose of the upper right matrix R into inv.
Definition Tools.cc:189
void noiseMatrixSqrt(const TMatrixDSym &noise, TMatrixD &noiseSqrt)
Calculate a sqrt for the positive semidefinite noise matrix. Rows corresponding to zero eigenvalues a...
Definition Tools.cc:338
void kalmanPredictionCovSqrt(const TMatrixD &S, const TMatrixD &F, const TMatrixD &Q, TMatrixD &Snew)
Calculates the square root of the covariance matrix after the Kalman prediction (i....
Definition Tools.cc:377
void invertMatrix(const TMatrixDSym &mat, TMatrixDSym &inv, double *determinant=nullptr)
Invert a matrix, throwing an Exception when inversion fails. Optional calculation of determinant.
Definition Tools.cc:38
void kalmanUpdateSqrt(const TMatrixD &S, const TVectorD &res, const TMatrixD &R, const AbsHMatrix *H, TVectorD &update, TMatrixD &SNew)
Calculate the Kalman measurement update with no transport. x, S : state prediction,...
Definition Tools.cc:402
Defines for I/O streams used for error and debug printing.