CbmRoot
Loading...
Searching...
No Matches
CbmRichRingFitterEllipseTau.h
Go to the documentation of this file.
1/* Copyright (C) 2009-2012 UGiessen/JINR-LIT, Giessen/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Alexander Ayriyan, Semen Lebedev [committer] */
4
14
15#ifndef CBM_RICH_RING_FITTER_ELLIPSE_TAU
16#define CBM_RICH_RING_FITTER_ELLIPSE_TAU
17
19#include "TMath.h"
20#include "TMatrixD.h"
21#include "TMatrixDEigen.h"
22#include "TVectorD.h"
23
24#include <iostream>
25#include <vector>
26
27using std::vector;
28
29
40 public:
45
50
54 virtual void DoFit(CbmRichRingLight* ring);
55
56 private:
57 double fM[36];
58 double fP[25];
59 double fQ[25];
62 double fAlgPar[6];
63
69
74
78 void Taubin();
79
83 void Inv5x5();
84
88 void AMultB(const double* const ap, int na, int ncolsa, const double* const bp, int nb, int ncolsb, double* cp);
89
93 void Jacobi(double a[5][5], double d[5], double v[5][5]);
94
98 void Eigsrt(double d[5], double v[5][5]);
99};
100
101#endif
Base class for concrete ellipse fitting algorithms. Each derived class must implement the method DoFi...
fscal v[fmask::Size]
Definition KfSimdPseudo.h:4
static const int MAX_NOF_HITS_IN_RING
CbmRichRingFitterEllipseBase()
Default constructor.
CbmRichRingFitterEllipseTau()
Default constructor.
virtual void DoFit(CbmRichRingLight *ring)
Inherited from CbmRichRingFitterBase.
void AMultB(const double *const ap, int na, int ncolsa, const double *const bp, int nb, int ncolsb, double *cp)
Matrices multiplication.
void TransformEllipse(CbmRichRingLight *ring)
Transform fitted curve to ellipse parameters.
double fZT[MAX_NOF_HITS_IN_RING *6]
double fZ[MAX_NOF_HITS_IN_RING *6]
void Jacobi(double a[5][5], double d[5], double v[5][5])
Jacobi method.
void Eigsrt(double d[5], double v[5][5])
Find eigenvalues.
void InitMatrices(CbmRichRingLight *ring)
Initialize all matrices.