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
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
Base class for concrete ellipse fitting algorithms. Each derived class must implement the method DoFi...
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
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.