]>
Commit | Line | Data |
---|---|---|
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 | |
15 | class 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 |