SND@LHC Software
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
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 {
35namespace tools {
36
40 void invertMatrix(const TMatrixDSym& mat, TMatrixDSym& inv, double* determinant = NULL);
43 void invertMatrix(TMatrixDSym& mat, double* determinant = NULL);
44
48 bool transposedForwardSubstitution(const TMatrixD& R, TVectorD& b);
50 bool transposedForwardSubstitution(const TMatrixD& R, TMatrixD& b, int nCol);
52 bool transposedInvert(const TMatrixD& R, TMatrixD& inv);
53
58void QR(TMatrixD& A);
59
64void safeAverage(const TMatrixDSym& C1, const TMatrixDSym& C2,
65 TMatrixDSym& result);
66
67} /* End of namespace tools */
68} /* End of namespace genfit */
71#endif // genfit_Tools_h
void QR(TMatrixD &A)
Replaces A with an upper right matrix connected to A by an orthongonal transformation....
Definition Tools.cc:249
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:199
bool transposedInvert(const TMatrixD &R, TMatrixD &inv)
Inverts the transpose of the upper right matrix R into inv.
Definition Tools.cc:231
void invertMatrix(const TMatrixDSym &mat, TMatrixDSym &inv, double *determinant=NULL)
Invert a matrix, throwing an Exception when inversion fails. Optional calculation of determinant.
Definition Tools.cc:38
void safeAverage(const TMatrixDSym &C1, const TMatrixDSym &C2, TMatrixDSym &result)
This averages the covariance matrices C1, C2 in a numerically stable way by using matrix square roots...
Definition Tools.cc:303
Matrix inversion tools.
Definition AbsBField.h:29