New version of alignment framework.
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterRieman.h
1 #ifndef ALITRACKFITTERRIEMAN_H
2 #define ALITRACKFITTERRIEMAN_H
3
4 #include "TMatrixDSym.h"
5
6 #include "AliTrackFitter.h"
7
8 class AliTrackFitterRieman : public AliTrackFitter{
9  public:
10   AliTrackFitterRieman();
11   AliTrackFitterRieman(AliTrackPointArray *array, Bool_t owner = kTRUE);
12   AliTrackFitterRieman(const AliTrackFitterRieman &rieman);
13   AliTrackFitterRieman &operator =(const AliTrackFitterRieman& rieman);
14   virtual ~AliTrackFitterRieman();
15
16   Bool_t Fit(UShort_t volId,UShort_t volIdFit = 0,
17              AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
18              AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer);
19   Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const;
20
21   void Reset();
22   void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz);
23   void Update();
24
25   Double_t GetC(); 
26   Double_t GetYat(Double_t x);
27   Double_t GetZat(Double_t x);
28   Double_t GetDYat(Double_t x);
29   Double_t GetDZat(Double_t x);
30   Bool_t   GetXYZat(Double_t r, Float_t *xyz);
31
32  protected:
33
34   Double_t      fAlpha;     //angle to transform to the fitting coordinate system
35   Double_t      fSumXY[9];  //sums for XY part
36   Double_t      fSumYY;     //sum for YY part
37   Double_t      fSumXZ[9];  //sums for XZ part
38   Double_t      fSumZZ;     //sum for ZZ part
39   Int_t         fNUsed;     //actual number of space-points used in the fit
40   Bool_t        fConv;      // indicates convergation
41
42  private:
43
44   ClassDef(AliTrackFitterRieman,1)  // Fast fit of helices on ITS RecPoints
45
46 };
47
48 #endif