EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CbmRichRingFitterEllipseTau Class Reference

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

#include <EicRoot/blob/master/rich/fitter/CbmRichRingFitterEllipseTau.h>

+ Inheritance diagram for CbmRichRingFitterEllipseTau:
+ Collaboration diagram for CbmRichRingFitterEllipseTau:

Public Member Functions

 CbmRichRingFitterEllipseTau ()
 Default constructor.
 
virtual ~CbmRichRingFitterEllipseTau ()
 Destructor.
 
virtual void DoFit (CbmRichRingLight *ring)
 Inherited from CbmRichRingFitterBase.
 
- Public Member Functions inherited from CbmRichRingFitterEllipseBase
 CbmRichRingFitterEllipseBase ()
 Default constructor.
 
virtual ~CbmRichRingFitterEllipseBase ()
 Destructor.
 
- Public Member Functions inherited from CbmRichRingFitterBase
 CbmRichRingFitterBase ()
 Default constructor.
 
virtual ~CbmRichRingFitterBase ()
 Destructor.
 

Private Member Functions

void TransformEllipse (CbmRichRingLight *ring)
 Transform fitted curve to ellipse parameters.
 
void InitMatrices (CbmRichRingLight *ring)
 Initialize all matrices.
 
void Taubin ()
 Perform Taubin method.
 
void Inv5x5 ()
 Invert 5x5 matrix.
 
void AMultB (const double *const ap, int na, int ncolsa, const double *const bp, int nb, int ncolsb, double *cp)
 Matrices multiplication.
 
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.
 

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]
 

Additional Inherited Members

- Protected Member Functions inherited from CbmRichRingFitterEllipseBase
virtual void CalcChi2 (CbmRichRingLight *ring)
 Calculate chi2 of the ellipse fit.
 
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.
 
- Static Protected Attributes inherited from CbmRichRingFitterBase
static const int MAX_NOF_HITS_IN_RING = 400
 

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.

View newest version in sPHENIX GitHub at line 35 of file CbmRichRingFitterEllipseTau.h

Constructor & Destructor Documentation

CbmRichRingFitterEllipseTau::CbmRichRingFitterEllipseTau ( )

Default constructor.

Definition at line 91 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 91 of file CbmRichRingFitterEllipseTau.cxx

CbmRichRingFitterEllipseTau::~CbmRichRingFitterEllipseTau ( )
virtual

Destructor.

Definition at line 96 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 96 of file CbmRichRingFitterEllipseTau.cxx

Member Function Documentation

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 503 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 503 of file CbmRichRingFitterEllipseTau.cxx

Referenced by InitMatrices(), and Taubin().

+ Here is the caller graph for this function:

void CbmRichRingFitterEllipseTau::DoFit ( CbmRichRingLight ring)
virtual

Inherited from CbmRichRingFitterBase.

Implements CbmRichRingFitterBase.

Definition at line 101 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 101 of file CbmRichRingFitterEllipseTau.cxx

References CbmRichRingFitterEllipseBase::CalcChi2(), CbmRichRingLight::GetNofHits(), InitMatrices(), CbmRichRingLight::SetRadius(), CbmRichRingLight::SetXYABP(), Taubin(), and TransformEllipse().

Referenced by CbmRichGeoTest::FitAndFillHistEllipse(), and CbmRichRingFitterQa::GenerateEllipse().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Find eigenvalues.

Definition at line 616 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 616 of file CbmRichRingFitterEllipseTau.cxx

References k, and p.

void CbmRichRingFitterEllipseTau::InitMatrices ( CbmRichRingLight ring)
private

Initialize all matrices.

Definition at line 170 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 170 of file CbmRichRingFitterEllipseTau.cxx

References AMultB(), fM, fP, fQ, CbmRichHitLight::fX, CbmRichHitLight::fY, fZ, fZT, GA00, GA01, GA02, GA03, GA04, GA05, GA11, GA12, GA13, GA14, GA15, GA22, GA23, GA24, GA25, GA33, GA34, GA35, GA44, GA45, GA50, GA51, GA52, GA53, GA54, CbmRichRingLight::GetHit(), CbmRichRingLight::GetNofHits(), GM00, GM01, GM02, GM03, GM04, GM10, GM11, GM12, GM13, GM14, GM20, GM21, GM22, GM23, GM24, GM30, GM31, GM32, GM33, GM34, GM40, GM41, GM42, GM43, GM44, x, and y.

Referenced by DoFit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void CbmRichRingFitterEllipseTau::Inv5x5 ( )
private

Invert 5x5 matrix.

Definition at line 290 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 290 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().

+ Here is the caller graph for this function:

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

Jacobi method.

Definition at line 532 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 532 of file CbmRichRingFitterEllipseTau.cxx

References c, g(), Acts::UnitConstants::h, ip(), MAXSWEEP, ROTATE, Acts::UnitConstants::s, t, theta(), and z.

+ Here is the call graph for this function:

void CbmRichRingFitterEllipseTau::Taubin ( )
private

Perform Taubin method.

Definition at line 124 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 124 of file CbmRichRingFitterEllipseTau.cxx

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

Referenced by DoFit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void CbmRichRingFitterEllipseTau::TransformEllipse ( CbmRichRingLight ring)
private

Transform fitted curve to ellipse parameters.

Parameters
[in,out]ringRICH ring.

Definition at line 231 of file CbmRichRingFitterEllipseTau.cxx.

View newest version in sPHENIX GitHub at line 231 of file CbmRichRingFitterEllipseTau.cxx

References starlightConstants::alpha, CbmRichRingFitterEllipseBase::CalcChi2(), cos(), Acts::UnitConstants::e, fAlgPar, CbmRichRingLight::GetAaxis(), CbmRichRingLight::GetBaxis(), CbmRichRingLight::GetPhi(), CbmRichRingLight::SetAaxis(), CbmRichRingLight::SetABCDEF(), CbmRichRingLight::SetBaxis(), CbmRichRingLight::SetPhi(), CbmRichRingLight::SetRadius(), and CbmRichRingLight::SetXYABP().

Referenced by DoFit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

double CbmRichRingFitterEllipseTau::fAlgPar[6]
private

Definition at line 62 of file CbmRichRingFitterEllipseTau.h.

View newest version in sPHENIX GitHub at line 62 of file CbmRichRingFitterEllipseTau.h

Referenced by Taubin(), and TransformEllipse().

double CbmRichRingFitterEllipseTau::fM[36]
private

Definition at line 57 of file CbmRichRingFitterEllipseTau.h.

View newest version in sPHENIX GitHub at line 57 of file CbmRichRingFitterEllipseTau.h

Referenced by InitMatrices(), and Taubin().

double CbmRichRingFitterEllipseTau::fP[25]
private

Definition at line 58 of file CbmRichRingFitterEllipseTau.h.

View newest version in sPHENIX GitHub at line 58 of file CbmRichRingFitterEllipseTau.h

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

double CbmRichRingFitterEllipseTau::fQ[25]
private

Definition at line 59 of file CbmRichRingFitterEllipseTau.h.

View newest version in sPHENIX GitHub at line 59 of file CbmRichRingFitterEllipseTau.h

Referenced by InitMatrices(), and Taubin().

double CbmRichRingFitterEllipseTau::fZ[MAX_NOF_HITS_IN_RING *6]
private

Definition at line 60 of file CbmRichRingFitterEllipseTau.h.

View newest version in sPHENIX GitHub at line 60 of file CbmRichRingFitterEllipseTau.h

Referenced by InitMatrices().

double CbmRichRingFitterEllipseTau::fZT[MAX_NOF_HITS_IN_RING *6]
private

Definition at line 61 of file CbmRichRingFitterEllipseTau.h.

View newest version in sPHENIX GitHub at line 61 of file CbmRichRingFitterEllipseTau.h

Referenced by InitMatrices().


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