Added methods for finding a given module in the DDL map (F. Prino)
[u/mrichter/AliRoot.git] / STEER / AliRieman.h
CommitLineData
049179df 1#ifndef ALIRIEMAN_H
2#define ALIRIEMAN_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id$ */
6// Class for global helix fit of a track
7// Author: M.Ivanov
8// This class uses decomposition of the chi2 based on the fact that
9// one can rotate the coordinate system and provide xi >> yi for each
10// space point
cabb917f 11
049179df 12
13#include <TMatrixDSymfwd.h>
cabb917f 14
15class AliRieman : public TObject{
16 public:
17 AliRieman();
18 AliRieman(Int_t capacity);
19 AliRieman(const AliRieman &rieman);
20 ~AliRieman();
21 void Reset();
049179df 22 void AddPoint(Double_t x, Double_t y, Double_t z, Double_t sy, Double_t sz);
cabb917f 23 Int_t GetN() const {return fN;}
24 Int_t GetCapacity() const {return fCapacity;}
5f3377a1 25 Double_t * GetX() const {return fX;}
26 Double_t * GetY() const {return fY;}
27 Double_t * GetZ() const {return fZ;}
28 Double_t * GetSy() const {return fSy;}
29 Double_t * GetSz() const {return fSz;}
cabb917f 30 void Update();
31 void UpdatePol();
32 Double_t* GetParam(){return fParams;}
049179df 33 const TMatrixDSym & GetCovariance() const {return *fCovar;}
34 Double_t GetC() const;
35 Double_t GetYat(Double_t x) const;
36 Double_t GetZat(Double_t x) const;
37 Double_t GetDYat(Double_t x) const;
38 Double_t GetDZat(Double_t x) const;
8849da04 39 Bool_t GetXYZat(Double_t r, Double_t alpha, Float_t *xyz) const;
049179df 40 //
8849da04 41 Bool_t IsValid(){ return fConv;}
049179df 42 Double_t GetChi2Y() const { return fChi2Y;}
43 Double_t GetChi2Z() const { return fChi2Z;}
44 Double_t GetChi2() const { return fChi2; }
049179df 45 Double_t CalcChi2Y() const;
46 Double_t CalcChi2Z() const;
47 Double_t CalcChi2() const;
48 AliRieman * MakeResiduals() const;
0100c5fc 49 Double_t GetErrY(Double_t x) const;
50 Double_t GetErrZ(Double_t x) const;
51 Bool_t GetExternalParameters(Double_t xref, Double_t *params, Double_t * covar);
049179df 52 //
cabb917f 53 protected:
0100c5fc 54 void UpdateCovariancePol(); // update covariance for error estimates
cabb917f 55 // public:
56 Int_t fCapacity; // capacity
57 Int_t fN; // numebr of points
049179df 58 Double_t *fX; //[fN] x coordinate
59 Double_t *fY; //[fN] y coordinate
60 Double_t *fZ; //[fN] z coordinate
61 Double_t *fSy; //[fN] sigma y coordinate
62 Double_t *fSz; //[fN] sigma z coordinate
cabb917f 63 Double_t fParams[6]; //Parameters
64 TMatrixDSym *fCovar; //Covariance
0100c5fc 65 TMatrixDSym *fCovarPolY; // covariance matrix for parabola fit in xy - used for error estimation
66 TMatrixDSym *fCovarPolZ; // covariance matrix for parabola fit in xy - used for error estimation
cabb917f 67 Double_t fSumXY[9]; //sums for XY part
68 Double_t fSumXZ[9]; //sums for XZ part
0100c5fc 69 Double_t fSumPolY[5]; //sums of polynoms X with weight Z
70 Double_t fSumPolZ[5]; //sums of polynoms X with weight Z
8849da04 71 Double_t fSumZZ; //sums of Z2
049179df 72 Double_t fChi2; //sums of chi2
73 Double_t fChi2Y; //sums of chi2 for y coord
74 Double_t fChi2Z; //sums of chi2 foz z coord
cabb917f 75 Bool_t fConv; // indicates convergation
049179df 76 protected:
cabb917f 77 private:
5f3377a1 78 AliRieman& operator=(const AliRieman &rieman);
0100c5fc 79 ClassDef(AliRieman,2) // Fast fit of helices on ITS RecPoints
cabb917f 80};
81
82
83
84#endif