CbmRoot
CbmRichRingFitterEllipseTau.h
Go to the documentation of this file.
1 
11 #ifndef CBM_RICH_RING_FITTER_ELLIPSE_TAU
12 #define CBM_RICH_RING_FITTER_ELLIPSE_TAU
13 
15 #include "TMath.h"
16 #include "TMatrixD.h"
17 #include "TMatrixDEigen.h"
18 #include "TVectorD.h"
19 #include <vector>
20 
21 #include <iostream>
22 
23 using std::vector;
24 
25 
36 public:
41 
46 
50  virtual void DoFit(CbmRichRingLight* ring);
51 
52 private:
53  double fM[36];
54  double fP[25];
55  double fQ[25];
56  double fZ[MAX_NOF_HITS_IN_RING * 6];
58  double fAlgPar[6];
59 
65 
69  void InitMatrices(CbmRichRingLight* ring);
70 
74  void Taubin();
75 
79  void Inv5x5();
80 
84  void AMultB(const double* const ap,
85  int na,
86  int ncolsa,
87  const double* const bp,
88  int nb,
89  int ncolsb,
90  double* cp);
91 
95  void Jacobi(double a[5][5], double d[5], double v[5][5]);
96 
100  void Eigsrt(double d[5], double v[5][5]);
101 };
102 
103 #endif
CbmRichRingFitterEllipseTau::TransformEllipse
void TransformEllipse(CbmRichRingLight *ring)
Transform fitted curve to ellipse parameters.
Definition: CbmRichRingFitterEllipseTau.cxx:231
CbmRichRingFitterEllipseTau::fM
double fM[36]
Definition: CbmRichRingFitterEllipseTau.h:53
CbmRichRingFitterEllipseTau::InitMatrices
void InitMatrices(CbmRichRingLight *ring)
Initialize all matrices.
Definition: CbmRichRingFitterEllipseTau.cxx:169
CbmRichRingFitterEllipseBase.h
Base class for concrete ellipse fitting algorithms. Each derived class must implement the method DoFi...
CbmRichRingFitterEllipseTau
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Definition: CbmRichRingFitterEllipseTau.h:35
CbmRichRingFitterEllipseTau::Inv5x5
void Inv5x5()
Invert 5x5 matrix.
Definition: CbmRichRingFitterEllipseTau.cxx:288
CbmRichRingFitterEllipseTau::Eigsrt
void Eigsrt(double d[5], double v[5][5])
Find eigenvalues.
Definition: CbmRichRingFitterEllipseTau.cxx:639
CbmRichRingFitterEllipseBase
Base class for concrete ellipse fitting algorithms. Each derived class must implement the method DoFi...
Definition: CbmRichRingFitterEllipseBase.h:25
CbmRichRingFitterEllipseTau::fP
double fP[25]
Definition: CbmRichRingFitterEllipseTau.h:54
CbmRichRingFitterEllipseTau::fAlgPar
double fAlgPar[6]
Definition: CbmRichRingFitterEllipseTau.h:58
CbmRichRingFitterEllipseTau::fQ
double fQ[25]
Definition: CbmRichRingFitterEllipseTau.h:55
d
double d
Definition: P4_F64vec2.h:24
CbmRichRingFitterEllipseTau::Taubin
void Taubin()
Perform Taubin method.
Definition: CbmRichRingFitterEllipseTau.cxx:124
CbmRichRingFitterEllipseTau::AMultB
void AMultB(const double *const ap, int na, int ncolsa, const double *const bp, int nb, int ncolsb, double *cp)
Matrices multiplication.
Definition: CbmRichRingFitterEllipseTau.cxx:525
CbmRichRingFitterEllipseTau::fZ
double fZ[MAX_NOF_HITS_IN_RING *6]
Definition: CbmRichRingFitterEllipseTau.h:56
CbmRichRingFitterEllipseTau::CbmRichRingFitterEllipseTau
CbmRichRingFitterEllipseTau()
Default constructor.
Definition: CbmRichRingFitterEllipseTau.cxx:90
CbmRichRingFitterBase::MAX_NOF_HITS_IN_RING
static const int MAX_NOF_HITS_IN_RING
Definition: CbmRichRingFitterBase.h:70
v
__m128 v
Definition: L1/vectors/P4_F32vec4.h:1
CbmRichRingFitterEllipseTau::fZT
double fZT[MAX_NOF_HITS_IN_RING *6]
Definition: CbmRichRingFitterEllipseTau.h:57
CbmRichRingFitterEllipseTau::~CbmRichRingFitterEllipseTau
virtual ~CbmRichRingFitterEllipseTau()
Destructor.
Definition: CbmRichRingFitterEllipseTau.cxx:92
CbmRichRingFitterEllipseTau::DoFit
virtual void DoFit(CbmRichRingLight *ring)
Inherited from CbmRichRingFitterBase.
Definition: CbmRichRingFitterEllipseTau.cxx:94
CbmRichRingLight
Definition: CbmRichRingLight.h:39
CbmRichRingFitterEllipseTau::Jacobi
void Jacobi(double a[5][5], double d[5], double v[5][5])
Jacobi method.
Definition: CbmRichRingFitterEllipseTau.cxx:560