PandaRoot
RKTools.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 /* Copyright 2008-2009, Technische Universitaet Muenchen,
14  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
15 
16  This file is part of GENFIT.
17 
18  GENFIT is free software: you can redistribute it and/or modify
19  it under the terms of the GNU Lesser General Public License as published
20  by the Free Software Foundation, either version 3 of the License, or
21  (at your option) any later version.
22 
23  GENFIT is distributed in the hope that it will be useful,
24  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  GNU Lesser General Public License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public License
29  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
30 */
31 
36 #ifndef genfit_RKTools_h
37 #define genfit_RKTools_h
38 
39 namespace genfit {
40 
45 typedef double M1x3[1 * 3];
46 typedef double M1x4[1 * 4];
47 typedef double M1x6[1 * 6];
48 typedef double M1x7[1 * 7];
49 typedef double M5x5[5 * 5];
50 typedef double M6x6[6 * 6];
51 typedef double M7x7[7 * 7];
52 typedef double M8x7[8 * 7];
53 typedef double M6x5[6 * 5];
54 typedef double M7x5[7 * 5];
55 typedef double M5x6[5 * 6];
56 typedef double M5x7[5 * 7];
57 
61 namespace RKTools {
62 
63 void J_pMTxcov5xJ_pM(const M5x7 &J_pM, const M5x5 &cov5, M7x7 &out7);
64 void J_pMTxcov5xJ_pM(const M5x6 &J_pM, const M5x5 &cov5, M6x6 &out6);
65 
66 void J_MpTxcov7xJ_Mp(const M7x5 &J_Mp, const M7x7 &cov7, M5x5 &out5);
67 void J_MpTxcov6xJ_Mp(const M6x5 &J_Mp, const M6x6 &cov6, M5x5 &out5);
68 
69 void J_MMTxcov7xJ_MM(const M7x7 &J_MM, M7x7 &cov7);
70 
71 void J_MMxJ_MM(M7x7 &J_MM, const M7x7 &J_MM_old);
72 
73 void J_pMTTxJ_MMTTxJ_MpTT(const M7x5 &J_pMT, const M7x7 &J_MMT, const M5x7 &J_MpT, M5x5 &J_pp);
74 
75 void Np_N_NpT(const M7x7 &Np, M7x7 &N);
76 
77 void printDim(const double *mat, unsigned int dimX, unsigned int dimY);
78 
79 } // namespace RKTools
80 
81 } /* End of namespace genfit */
84 #endif // genfit_RKTools_h
double M5x5[5 *5]
Definition: RKTools.h:49
double M6x6[6 *6]
Definition: RKTools.h:50
double M1x4[1 *4]
Definition: RKTools.h:46
double M1x6[1 *6]
Definition: RKTools.h:47
double M7x5[7 *5]
Definition: RKTools.h:54
void Np_N_NpT(const M7x7 &Np, M7x7 &N)
double M6x5[6 *5]
Definition: RKTools.h:53
double M1x7[1 *7]
Definition: RKTools.h:48
void J_MpTxcov6xJ_Mp(const M6x5 &J_Mp, const M6x6 &cov6, M5x5 &out5)
void J_MpTxcov7xJ_Mp(const M7x5 &J_Mp, const M7x7 &cov7, M5x5 &out5)
double M5x6[5 *6]
Definition: RKTools.h:55
double M5x7[5 *7]
Definition: RKTools.h:56
double M8x7[8 *7]
Definition: RKTools.h:52
void J_MMTxcov7xJ_MM(const M7x7 &J_MM, M7x7 &cov7)
void J_pMTxcov5xJ_pM(const M5x7 &J_pM, const M5x5 &cov5, M7x7 &out7)
double M1x3[1 *3]
Definition: RKTools.h:45
void J_pMTTxJ_MMTTxJ_MpTT(const M7x5 &J_pMT, const M7x7 &J_MMT, const M5x7 &J_MpT, M5x5 &J_pp)
double M7x7[7 *7]
Definition: RKTools.h:51
void J_MMxJ_MM(M7x7 &J_MM, const M7x7 &J_MM_old)
void printDim(const double *mat, unsigned int dimX, unsigned int dimY)
Matrix inversion tools.
Definition: AbsBField.h:40