ROOT logo
#ifndef ALIRIEMAN_H
#define ALIRIEMAN_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
/* $Id$ */
// Class for global helix fit of a track
// Author: M.Ivanov
// This class uses decomposition of the chi2 based on the fact that
// one can rotate the coordinate system and provide xi >> yi for each
// space point


#include <TMatrixDSymfwd.h>

class AliRieman : public TObject{
 public:
  AliRieman();
  AliRieman(Int_t capacity);
  AliRieman(const AliRieman &rieman);
  ~AliRieman();
  void Reset();
  void AddPoint(Double_t x, Double_t y, Double_t z, Double_t sy, Double_t sz);
  Int_t GetN() const {return fN;}
  Int_t GetCapacity() const {return fCapacity;}
  Double_t * GetX()  const {return fX;}
  Double_t * GetY()  const {return fY;}
  Double_t * GetZ()  const {return fZ;}
  Double_t * GetSy() const {return fSy;}
  Double_t * GetSz() const {return fSz;}
  void Update();
  void UpdatePol();
  Double_t*  GetParam(){return fParams;}
  const TMatrixDSym &  GetCovariance() const {return *fCovar;}
  Double_t GetC() const;
  Double_t GetYat(Double_t x) const;
  Double_t GetZat(Double_t x) const; 
  Double_t GetDYat(Double_t x) const;
  Double_t GetDZat(Double_t x) const;
  Bool_t   GetXYZat(Double_t r, Double_t alpha, Float_t *xyz) const;
  //
  Bool_t   IsValid(){ return fConv;}
  Double_t GetChi2Y() const { return fChi2Y;}
  Double_t GetChi2Z() const { return fChi2Z;}
  Double_t GetChi2() const  { return fChi2; }
  Double_t CalcChi2Y() const;  
  Double_t CalcChi2Z() const;
  Double_t CalcChi2() const;
  AliRieman * MakeResiduals() const;
  Double_t    GetErrY(Double_t x) const; 
  Double_t    GetErrZ(Double_t x) const;
  Bool_t GetExternalParameters(Double_t xref, Double_t *params, Double_t * covar);
  //
 protected:
  void          UpdateCovariancePol();  // update covariance for error estimates
  // public:
  Int_t         fCapacity;  // capacity
  Int_t         fN;         // numebr of points
  Double_t      *fX;         //[fN] x coordinate
  Double_t      *fY;         //[fN] y coordinate
  Double_t      *fZ;         //[fN] z coordinate
  Double_t      *fSy;        //[fN] sigma y coordinate
  Double_t      *fSz;        //[fN] sigma z coordinate
  Double_t      fParams[6]; //Parameters
  TMatrixDSym  *fCovar;     //Covariance
  TMatrixDSym  *fCovarPolY; // covariance matrix for parabola fit in xy - used for error estimation
  TMatrixDSym  *fCovarPolZ; // covariance matrix for parabola fit in xy - used for error estimation
  Double_t      fSumXY[9];  //sums for XY part
  Double_t      fSumXZ[9];  //sums for XZ part
  Double_t      fSumPolY[5]; //sums of polynoms X with weight Z
  Double_t      fSumPolZ[5]; //sums of polynoms X with weight Z
  Double_t      fSumZZ;     //sums of Z2 
  Double_t      fChi2;      //sums of chi2
  Double_t      fChi2Y;     //sums of chi2 for y coord
  Double_t      fChi2Z;     //sums of chi2 foz z coord 
  Bool_t        fConv;      // indicates convergation
 protected:  
 private:
  AliRieman& operator=(const AliRieman &rieman);
  ClassDef(AliRieman,2)  // Fast fit of helices on ITS RecPoints
};



#endif
 AliRieman.h:1
 AliRieman.h:2
 AliRieman.h:3
 AliRieman.h:4
 AliRieman.h:5
 AliRieman.h:6
 AliRieman.h:7
 AliRieman.h:8
 AliRieman.h:9
 AliRieman.h:10
 AliRieman.h:11
 AliRieman.h:12
 AliRieman.h:13
 AliRieman.h:14
 AliRieman.h:15
 AliRieman.h:16
 AliRieman.h:17
 AliRieman.h:18
 AliRieman.h:19
 AliRieman.h:20
 AliRieman.h:21
 AliRieman.h:22
 AliRieman.h:23
 AliRieman.h:24
 AliRieman.h:25
 AliRieman.h:26
 AliRieman.h:27
 AliRieman.h:28
 AliRieman.h:29
 AliRieman.h:30
 AliRieman.h:31
 AliRieman.h:32
 AliRieman.h:33
 AliRieman.h:34
 AliRieman.h:35
 AliRieman.h:36
 AliRieman.h:37
 AliRieman.h:38
 AliRieman.h:39
 AliRieman.h:40
 AliRieman.h:41
 AliRieman.h:42
 AliRieman.h:43
 AliRieman.h:44
 AliRieman.h:45
 AliRieman.h:46
 AliRieman.h:47
 AliRieman.h:48
 AliRieman.h:49
 AliRieman.h:50
 AliRieman.h:51
 AliRieman.h:52
 AliRieman.h:53
 AliRieman.h:54
 AliRieman.h:55
 AliRieman.h:56
 AliRieman.h:57
 AliRieman.h:58
 AliRieman.h:59
 AliRieman.h:60
 AliRieman.h:61
 AliRieman.h:62
 AliRieman.h:63
 AliRieman.h:64
 AliRieman.h:65
 AliRieman.h:66
 AliRieman.h:67
 AliRieman.h:68
 AliRieman.h:69
 AliRieman.h:70
 AliRieman.h:71
 AliRieman.h:72
 AliRieman.h:73
 AliRieman.h:74
 AliRieman.h:75
 AliRieman.h:76
 AliRieman.h:77
 AliRieman.h:78
 AliRieman.h:79
 AliRieman.h:80
 AliRieman.h:81
 AliRieman.h:82
 AliRieman.h:83
 AliRieman.h:84