1 #ifndef ALITPCPOLYTRACK_H
2 #define ALITPCPOLYTRACK_H
4 //-------------------------------------------------------
6 // track fitting using the polynom
7 // allows bending in both direction
9 // Origin: Marian Ivanov
10 //-------------------------------------------------------
14 //_____________________________________________________________________________
15 class AliTPCpolyTrack : public TObject {
19 void AddPoint(Double_t x, Double_t y, Double_t z, Double_t sy=1, Double_t sz=1);
20 inline void GetFitPoint(Double_t x, Double_t &y, Double_t &z) const;
21 inline void GetFitDerivation(Double_t x, Double_t &y, Double_t &z) const;
22 inline void GetFitDerivation2(Double_t &y, Double_t &z) const;
23 void UpdateParameters(Int_t ny, Int_t nz);
24 void UpdateParameters();
25 Int_t GetN() const {return fNPoints;}
26 void GetBoundaries(Double_t &xmin, Double_t &xmax) const
27 {xmin = fMinX;xmax=fMaxX;}
28 void Refit(AliTPCpolyTrack & track, Double_t deltay, Double_t deltaz);
29 void Refit(AliTPCpolyTrack & track, Double_t deltay, Double_t deltaz, Int_t nfirst, Int_t ny, Int_t nz);
31 void Fit2(Double_t fSumY, Double_t fSumYX, Double_t fSumYX2,
32 Double_t fSumX, Double_t fSumX2, Double_t fSumX3,
33 Double_t fSumX4, Double_t fSumW, Double_t &a, Double_t &b, Double_t &c);
34 void Fit1(Double_t fSumY, Double_t fSumYX,
35 Double_t fSumX, Double_t fSumX2,
36 Double_t fSumW, Double_t &a, Double_t &b, Double_t &c);
38 Double_t fA; // parameter
39 Double_t fB; // parameter
40 Double_t fC; // parameter
41 Double_t fD; // parameter
42 Double_t fE; // parameter
43 Double_t fF; // parameter
44 Double_t fMaxX; // X range
45 Double_t fMinX; // X range
47 Double_t fSumW; // sum of the weight
49 Double_t fSumX; // weighted summ of X
50 Double_t fSumX2; // weighted summ of X**2
51 Double_t fSumX3; // weighted summ of X**3
52 Double_t fSumX4; // weighted summ of X**4
53 Double_t fSumY; // as X
54 Double_t fSumYX; // summ of X*Y
55 Double_t fSumYX2; // summ of X**2*Y
56 Double_t fSumZ; // summ of Z
57 Double_t fSumZX; // summ of Z*X
58 Double_t fSumZX2; // summ of Z*X**2
60 Double_t fX[200]; // array of coordinates
61 Double_t fY[200]; // array of coordinates
62 Double_t fSY[200]; // array of coordinates
63 Double_t fZ[200]; // array of coordinates
64 Double_t fSZ[200]; // array of coordinates
66 Int_t fNPoints; // No of points
68 ClassDef(AliTPCpolyTrack,1) // Time Projection "polynomial track"
71 void AliTPCpolyTrack::GetFitPoint(Double_t x, Double_t &y, Double_t &z) const
78 void AliTPCpolyTrack::GetFitDerivation(Double_t x, Double_t &y, Double_t &z) const
86 void AliTPCpolyTrack::GetFitDerivation2(Double_t &y, Double_t &z) const