Fixes for bug #52499: Field polarities inconsistiency
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterKalman.h
1 #ifndef ALITRACKFITTERKALMAN_H
2 #define ALITRACKFITTERKALMAN_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 //
8 //                        Kalman-Filter-like fit 
9 //   to a straight-line crossing a set of arbitrarily oriented planes.
10 //           (See AliTrackFitterKalman.cxx for the details)
11 //
12 //          Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
13 //
14 //////////////////////////////////////////////////////////////////////////////
15
16 #include "AliTrackFitter.h"
17
18 class AliTrackFitterKalman : public AliTrackFitter {
19 public:
20   AliTrackFitterKalman() : 
21      AliTrackFitter(), 
22      fMaxChi2(fgkMaxChi2) {}
23
24   AliTrackFitterKalman(AliTrackPointArray *array, Bool_t owner = kTRUE);
25   virtual ~AliTrackFitterKalman() {}
26
27   void SetMaxChi2(Double_t chi2) {fMaxChi2=chi2;}
28
29   void   SetSeed(const Double_t par[6], const Double_t cov[15]);
30   Bool_t MakeSeed(const AliTrackPoint *p, const AliTrackPoint *p2);
31
32   Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const;
33
34   Bool_t Begin(Int_t first, Int_t last);
35   Bool_t AddPoint(const AliTrackPoint *p);
36   Bool_t Update() {return kTRUE;}
37
38 private:
39   AliTrackFitterKalman(const AliTrackFitterKalman &kalman);
40   AliTrackFitterKalman &operator=(const AliTrackFitterKalman& kalman);
41
42   Bool_t Propagate(const AliTrackPoint *p);
43   Double_t GetPredictedChi2(const AliTrackPoint *p) const;
44   Bool_t Update(const AliTrackPoint *p,Double_t chi2);
45
46
47   static const Double_t fgkMaxChi2;  // Default maximal allowed chi2 
48
49   Double_t fMaxChi2;                 // A point is added if chi2 < fMaxChi2 
50
51   ClassDef(AliTrackFitterKalman,3)   // Kalman-Filter fit to a straight line
52
53 };
54
55 #endif