CbmRoot
CbmRichRingFitterEllipseTau Class Reference

Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov. More...

#include <CbmRichRingFitterEllipseTau.h>

Inheritance diagram for CbmRichRingFitterEllipseTau:
[legend]
Collaboration diagram for CbmRichRingFitterEllipseTau:
[legend]

Public Member Functions

 CbmRichRingFitterEllipseTau ()
 Default constructor. More...
 
virtual ~CbmRichRingFitterEllipseTau ()
 Destructor. More...
 
virtual void DoFit (CbmRichRingLight *ring)
 Inherited from CbmRichRingFitterBase. More...
 

Protected Member Functions

virtual void CalcChi2 (CbmRichRingLight *ring)
 Calculate chi2 of the ellipse fit. More...
 
virtual void CalcChi2 (double A, double B, double C, double D, double E, double F, CbmRichRingLight *ring)
 Calculate chi2 of the ellipse fitting using parameters of 2D curve. More...
 

Static Protected Attributes

static const int MAX_NOF_HITS_IN_RING
 

Private Member Functions

void TransformEllipse (CbmRichRingLight *ring)
 Transform fitted curve to ellipse parameters. More...
 
void InitMatrices (CbmRichRingLight *ring)
 Initialize all matrices. More...
 
void Taubin ()
 Perform Taubin method. More...
 
void Inv5x5 ()
 Invert 5x5 matrix. More...
 
void AMultB (const double *const ap, int na, int ncolsa, const double *const bp, int nb, int ncolsb, double *cp)
 Matrices multiplication. More...
 
void Jacobi (double a[5][5], double d[5], double v[5][5])
 Jacobi method. More...
 
void Eigsrt (double d[5], double v[5][5])
 Find eigenvalues. More...
 

Private Attributes

double fM [36]
 
double fP [25]
 
double fQ [25]
 
double fZ [MAX_NOF_HITS_IN_RING *6]
 
double fZT [MAX_NOF_HITS_IN_RING *6]
 
double fAlgPar [6]
 

Detailed Description

Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.

Author
Alexander Ayriyan and Semen Lebedev s.leb.nosp@m.edev.nosp@m.@gsi..nosp@m.de
Date
2011

Definition at line 35 of file CbmRichRingFitterEllipseTau.h.

Constructor & Destructor Documentation

◆ CbmRichRingFitterEllipseTau()

CbmRichRingFitterEllipseTau::CbmRichRingFitterEllipseTau ( )

Default constructor.

Definition at line 90 of file CbmRichRingFitterEllipseTau.cxx.

◆ ~CbmRichRingFitterEllipseTau()

CbmRichRingFitterEllipseTau::~CbmRichRingFitterEllipseTau ( )
virtual

Destructor.

Definition at line 92 of file CbmRichRingFitterEllipseTau.cxx.

Member Function Documentation

◆ AMultB()

void CbmRichRingFitterEllipseTau::AMultB ( const double *const  ap,
int  na,
int  ncolsa,
const double *const  bp,
int  nb,
int  ncolsb,
double *  cp 
)
private

Matrices multiplication.

Definition at line 525 of file CbmRichRingFitterEllipseTau.cxx.

Referenced by InitMatrices(), and Taubin().

◆ CalcChi2() [1/2]

virtual void CbmRichRingFitterEllipseBase::CalcChi2 ( CbmRichRingLight ring)
inlineprotectedvirtualinherited

◆ CalcChi2() [2/2]

virtual void CbmRichRingFitterEllipseBase::CalcChi2 ( double  A,
double  B,
double  C,
double  D,
double  E,
double  F,
CbmRichRingLight ring 
)
inlineprotectedvirtualinherited

Calculate chi2 of the ellipse fitting using parameters of 2D curve.

Parameters
[in]AA parameter of curve.
[in]BB parameter of curve.
[in]CC parameter of curve.
[in]DD parameter of curve.
[in]EE parameter of curve.
[in]FF parameter of curve.
[in]ringFitted RICH ring with ellipse fitter.

Definition at line 87 of file CbmRichRingFitterEllipseBase.h.

References fabs(), CbmRichHitLight::fX, CbmRichHitLight::fY, CbmRichRingLight::GetHit(), CbmRichRingLight::GetNofHits(), CbmRichRingLight::SetChi2(), sqrt(), x, and y.

◆ DoFit()

◆ Eigsrt()

void CbmRichRingFitterEllipseTau::Eigsrt ( double  d[5],
double  v[5][5] 
)
private

Find eigenvalues.

Definition at line 639 of file CbmRichRingFitterEllipseTau.cxx.

References d, i, and v.

◆ InitMatrices()

void CbmRichRingFitterEllipseTau::InitMatrices ( CbmRichRingLight ring)
private

◆ Inv5x5()

void CbmRichRingFitterEllipseTau::Inv5x5 ( )
private

Invert 5x5 matrix.

Definition at line 288 of file CbmRichRingFitterEllipseTau.cxx.

References fP, GM00, GM01, GM02, GM03, GM04, GM10, GM11, GM12, GM13, GM14, GM20, GM21, GM22, GM23, GM24, GM30, GM31, GM32, GM33, GM34, GM40, GM41, GM42, GM43, and GM44.

Referenced by Taubin().

◆ Jacobi()

void CbmRichRingFitterEllipseTau::Jacobi ( double  a[5][5],
double  d[5],
double  v[5][5] 
)
private

Jacobi method.

Definition at line 560 of file CbmRichRingFitterEllipseTau.cxx.

◆ Taubin()

void CbmRichRingFitterEllipseTau::Taubin ( )
private

Perform Taubin method.

Definition at line 124 of file CbmRichRingFitterEllipseTau.cxx.

References AMultB(), fAlgPar, fM, fP, fQ, GA05, GA15, GA25, GA35, GA45, and Inv5x5().

Referenced by DoFit().

◆ TransformEllipse()

Member Data Documentation

◆ fAlgPar

double CbmRichRingFitterEllipseTau::fAlgPar[6]
private

Definition at line 58 of file CbmRichRingFitterEllipseTau.h.

Referenced by Taubin(), and TransformEllipse().

◆ fM

double CbmRichRingFitterEllipseTau::fM[36]
private

Definition at line 53 of file CbmRichRingFitterEllipseTau.h.

Referenced by InitMatrices(), and Taubin().

◆ fP

double CbmRichRingFitterEllipseTau::fP[25]
private

Definition at line 54 of file CbmRichRingFitterEllipseTau.h.

Referenced by InitMatrices(), Inv5x5(), and Taubin().

◆ fQ

double CbmRichRingFitterEllipseTau::fQ[25]
private

Definition at line 55 of file CbmRichRingFitterEllipseTau.h.

Referenced by InitMatrices(), and Taubin().

◆ fZ

double CbmRichRingFitterEllipseTau::fZ[MAX_NOF_HITS_IN_RING *6]
private

Definition at line 56 of file CbmRichRingFitterEllipseTau.h.

Referenced by InitMatrices().

◆ fZT

double CbmRichRingFitterEllipseTau::fZT[MAX_NOF_HITS_IN_RING *6]
private

Definition at line 57 of file CbmRichRingFitterEllipseTau.h.

Referenced by InitMatrices().

◆ MAX_NOF_HITS_IN_RING

const int CbmRichRingFitterBase::MAX_NOF_HITS_IN_RING
staticprotectedinherited
Initial value:
=
400

Definition at line 70 of file CbmRichRingFitterBase.h.

Referenced by DoFit().


The documentation for this class was generated from the following files: