]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTrackFitterRieman.h
New version of the alignment framework (for details see offline week 6-10 Mar 2006)
[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(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0,
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) const;
28   Double_t GetDYat(Double_t x) const;
29   Double_t GetDZat(Double_t x) const;
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   Float_t      *fX;
42   Float_t      *fY;
43   Float_t      *fZ;
44   Float_t      *fSy;
45   Float_t      *fSz;
46
47  private:
48
49   ClassDef(AliTrackFitterRieman,1)  // Fast fit of helices on ITS RecPoints
50
51 };
52
53 #endif