Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov. More...
#include <CbmRichRingFitterEllipseTau.h>
Public Member Functions | |
CbmRichRingFitterEllipseTau () | |
Default constructor. | |
virtual | ~CbmRichRingFitterEllipseTau () |
Destructor. | |
virtual void | DoFit (CbmRichRingLight *ring) |
Inherited from CbmRichRingFitterBase. | |
CbmRichRingFitterEllipseTau () | |
Default constructor. | |
virtual | ~CbmRichRingFitterEllipseTau () |
Destructor. | |
virtual void | DoFit (CbmRichRingLight *ring) |
Inherited from CbmRichRingFitterBase. | |
Protected Member Functions | |
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. | |
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 | |
static const int | MAX_NOF_HITS_IN_RING = 400 |
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. | |
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] |
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Definition at line 35 of file CbmRichRingFitterEllipseTau.h.
CbmRichRingFitterEllipseTau::CbmRichRingFitterEllipseTau | ( | ) |
Default constructor.
Definition at line 91 of file CbmRichRingFitterEllipseTau.cxx.
CbmRichRingFitterEllipseTau::~CbmRichRingFitterEllipseTau | ( | ) | [virtual] |
Destructor.
Definition at line 96 of file CbmRichRingFitterEllipseTau.cxx.
CbmRichRingFitterEllipseTau::CbmRichRingFitterEllipseTau | ( | ) |
Default constructor.
virtual CbmRichRingFitterEllipseTau::~CbmRichRingFitterEllipseTau | ( | ) | [virtual] |
Destructor.
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.
Referenced by InitMatrices(), and Taubin().
void CbmRichRingFitterEllipseTau::AMultB | ( | const double *const | ap, | |
int | na, | |||
int | ncolsa, | |||
const double *const | bp, | |||
int | nb, | |||
int | ncolsb, | |||
double * | cp | |||
) | [private] |
Matrices multiplication.
virtual void CbmRichRingFitterEllipseBase::CalcChi2 | ( | CbmRichRingLight * | ring | ) | [inline, protected, virtual, inherited] |
Calculate chi2 of the ellipse fit.
[in,out] | ring | Fitted RICH ring with ellipse fitter. |
Reimplemented from CbmRichRingFitterBase.
Definition at line 43 of file CbmRichRingFitterEllipseBase.h.
References CbmRichHitLight::fX, CbmRichHitLight::fY, CbmRichRingLight::GetAaxis(), CbmRichRingLight::GetBaxis(), CbmRichRingLight::GetHit(), CbmRichRingLight::GetNofHits(), CbmRichRingLight::GetXF1(), CbmRichRingLight::GetXF2(), CbmRichRingLight::GetYF1(), CbmRichRingLight::GetYF2(), and CbmRichRingLight::SetChi2().
Referenced by DoFit(), and TransformEllipse().
virtual void CbmRichRingFitterEllipseBase::CalcChi2 | ( | double | A, | |
double | B, | |||
double | C, | |||
double | D, | |||
double | E, | |||
double | F, | |||
CbmRichRingLight * | ring | |||
) | [inline, protected, virtual, inherited] |
Calculate chi2 of the ellipse fitting using parameters of 2D curve.
[in] | A | A parameter of curve. |
[in] | B | B parameter of curve. |
[in] | C | C parameter of curve. |
[in] | D | D parameter of curve. |
[in] | E | E parameter of curve. |
[in] | F | F parameter of curve. |
[in] | ring | Fitted RICH ring with ellipse fitter. |
Definition at line 90 of file CbmRichRingFitterEllipseBase.h.
References CbmRichHitLight::fX, CbmRichHitLight::fY, CbmRichRingLight::GetHit(), CbmRichRingLight::GetNofHits(), and CbmRichRingLight::SetChi2().
virtual void CbmRichRingFitterEllipseBase::CalcChi2 | ( | CbmRichRingLight * | ring | ) | [inline, protected, virtual, inherited] |
Calculate chi2 of the ellipse fit.
[in,out] | ring | Fitted RICH ring with ellipse fitter. |
Reimplemented from CbmRichRingFitterBase.
Definition at line 43 of file CbmRichRingFitterEllipseBase.h.
References CbmRichHitLight::fX, CbmRichHitLight::fY, CbmRichRingLight::GetAaxis(), CbmRichRingLight::GetBaxis(), CbmRichRingLight::GetHit(), CbmRichRingLight::GetNofHits(), CbmRichRingLight::GetXF1(), CbmRichRingLight::GetXF2(), CbmRichRingLight::GetYF1(), CbmRichRingLight::GetYF2(), and CbmRichRingLight::SetChi2().
virtual void CbmRichRingFitterEllipseBase::CalcChi2 | ( | double | A, | |
double | B, | |||
double | C, | |||
double | D, | |||
double | E, | |||
double | F, | |||
CbmRichRingLight * | ring | |||
) | [inline, protected, virtual, inherited] |
Calculate chi2 of the ellipse fitting using parameters of 2D curve.
[in] | A | A parameter of curve. |
[in] | B | B parameter of curve. |
[in] | C | C parameter of curve. |
[in] | D | D parameter of curve. |
[in] | E | E parameter of curve. |
[in] | F | F parameter of curve. |
[in] | ring | Fitted RICH ring with ellipse fitter. |
Definition at line 90 of file CbmRichRingFitterEllipseBase.h.
References CbmRichHitLight::fX, CbmRichHitLight::fY, CbmRichRingLight::GetHit(), CbmRichRingLight::GetNofHits(), and CbmRichRingLight::SetChi2().
virtual void CbmRichRingFitterEllipseTau::DoFit | ( | CbmRichRingLight * | ring | ) | [virtual] |
Inherited from CbmRichRingFitterBase.
Implements CbmRichRingFitterBase.
void CbmRichRingFitterEllipseTau::DoFit | ( | CbmRichRingLight * | ring | ) | [virtual] |
Inherited from CbmRichRingFitterBase.
Implements CbmRichRingFitterBase.
Definition at line 101 of file CbmRichRingFitterEllipseTau.cxx.
References CbmRichRingFitterEllipseBase::CalcChi2(), CbmRichRingLight::GetNofHits(), InitMatrices(), CbmRichRingLight::SetRadius(), CbmRichRingLight::SetXYABP(), Taubin(), and TransformEllipse().
void CbmRichRingFitterEllipseTau::Eigsrt | ( | double | d[5], | |
double | v[5][5] | |||
) | [private] |
Find eigenvalues.
Definition at line 616 of file CbmRichRingFitterEllipseTau.cxx.
void CbmRichRingFitterEllipseTau::Eigsrt | ( | double | d[5], | |
double | v[5][5] | |||
) | [private] |
Find eigenvalues.
void CbmRichRingFitterEllipseTau::InitMatrices | ( | CbmRichRingLight * | ring | ) | [private] |
Initialize all matrices.
void CbmRichRingFitterEllipseTau::InitMatrices | ( | CbmRichRingLight * | ring | ) | [private] |
Initialize all matrices.
Definition at line 170 of file CbmRichRingFitterEllipseTau.cxx.
References AMultB(), fM, fP, fQ, CbmRichHitLight::fX, CbmRichHitLight::fY, fZ, fZT, CbmRichRingLight::GetHit(), and CbmRichRingLight::GetNofHits().
Referenced by DoFit().
void CbmRichRingFitterEllipseTau::Inv5x5 | ( | ) | [private] |
Invert 5x5 matrix.
Definition at line 290 of file CbmRichRingFitterEllipseTau.cxx.
References fP.
Referenced by Taubin().
void CbmRichRingFitterEllipseTau::Inv5x5 | ( | ) | [private] |
Invert 5x5 matrix.
void CbmRichRingFitterEllipseTau::Jacobi | ( | double | a[5][5], | |
double | d[5], | |||
double | v[5][5] | |||
) | [private] |
Jacobi method.
void CbmRichRingFitterEllipseTau::Jacobi | ( | double | a[5][5], | |
double | d[5], | |||
double | v[5][5] | |||
) | [private] |
void CbmRichRingFitterEllipseTau::Taubin | ( | ) | [private] |
Perform Taubin method.
void CbmRichRingFitterEllipseTau::Taubin | ( | ) | [private] |
void CbmRichRingFitterEllipseTau::TransformEllipse | ( | CbmRichRingLight * | ring | ) | [private] |
Transform fitted curve to ellipse parameters.
[in,out] | ring | RICH ring. |
void CbmRichRingFitterEllipseTau::TransformEllipse | ( | CbmRichRingLight * | ring | ) | [private] |
Transform fitted curve to ellipse parameters.
[in,out] | ring | RICH ring. |
Definition at line 231 of file CbmRichRingFitterEllipseTau.cxx.
References CbmRichRingFitterEllipseBase::CalcChi2(), fAlgPar, CbmRichRingLight::GetAaxis(), CbmRichRingLight::GetBaxis(), CbmRichRingLight::GetPhi(), CbmRichRingLight::SetAaxis(), CbmRichRingLight::SetABCDEF(), CbmRichRingLight::SetBaxis(), CbmRichRingLight::SetPhi(), CbmRichRingLight::SetRadius(), and CbmRichRingLight::SetXYABP().
Referenced by DoFit().
double CbmRichRingFitterEllipseTau::fAlgPar [private] |
Definition at line 62 of file CbmRichRingFitterEllipseTau.h.
Referenced by Taubin(), and TransformEllipse().
double CbmRichRingFitterEllipseTau::fM [private] |
Definition at line 57 of file CbmRichRingFitterEllipseTau.h.
Referenced by InitMatrices(), and Taubin().
double CbmRichRingFitterEllipseTau::fP [private] |
Definition at line 58 of file CbmRichRingFitterEllipseTau.h.
Referenced by InitMatrices(), Inv5x5(), and Taubin().
double CbmRichRingFitterEllipseTau::fQ [private] |
Definition at line 59 of file CbmRichRingFitterEllipseTau.h.
Referenced by InitMatrices(), and Taubin().
double CbmRichRingFitterEllipseTau::fZ [private] |
Definition at line 60 of file CbmRichRingFitterEllipseTau.h.
Referenced by InitMatrices().
double CbmRichRingFitterEllipseTau::fZT [private] |
Definition at line 61 of file CbmRichRingFitterEllipseTau.h.
Referenced by InitMatrices().
static const int CbmRichRingFitterBase::MAX_NOF_HITS_IN_RING = 400 [static, protected, inherited] |
Definition at line 76 of file CbmRichRingFitterBase.h.
Referenced by CbmRichRingFitterCOP::FitRing().