1c9c1fb48e14d4fe1e82ec8c355fbb09636eb27a
[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,
17              AliTrackPointArray *pVolId, AliTrackPointArray *pTrack,
18              AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
19              AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer);
20   Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const;
21
22   void Reset();
23   void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz);
24   void Update();
25
26   Double_t GetC(); 
27   Double_t GetYat(Double_t x);
28   Double_t GetZat(Double_t x);
29   Double_t GetDYat(Double_t x);
30   Double_t GetDZat(Double_t x);
31   Bool_t   GetXYZat(Double_t r, Float_t *xyz);
32
33  protected:
34
35   Double_t      fAlpha;     //angle to transform to the fitting coordinate system
36   Double_t      fSumXY[9];  //sums for XY part
37   Double_t      fSumXZ[9];  //sums for XZ part
38   Bool_t        fConv;      // indicates convergation
39
40  private:
41
42   ClassDef(AliTrackFitterRieman,1)  // Fast fit of helices on ITS RecPoints
43
44 };
45
46 #endif