]>
Commit | Line | Data |
---|---|---|
9c4c8863 | 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: | |
57c8a1c2 | 20 | AliTrackFitterKalman() : |
21 | AliTrackFitter(), | |
22 | fMaxChi2(fgkMaxChi2), | |
23 | fSeed(kFALSE) {} | |
9c4c8863 | 24 | |
25 | AliTrackFitterKalman(AliTrackPointArray *array, Bool_t owner = kTRUE); | |
26 | virtual ~AliTrackFitterKalman() {} | |
27 | ||
28 | void SetMaxChi2(Double_t chi2) {fMaxChi2=chi2;} | |
29 | ||
57c8a1c2 | 30 | void SetSeed(const Double_t par[6], const Double_t cov[15]); |
31 | Bool_t MakeSeed(const AliTrackPoint *p, const AliTrackPoint *p2); | |
9c4c8863 | 32 | |
33 | Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const; | |
34 | ||
57c8a1c2 | 35 | Bool_t Begin(Int_t first, Int_t last); |
9c4c8863 | 36 | Bool_t AddPoint(const AliTrackPoint *p); |
57c8a1c2 | 37 | Bool_t Update() {fSeed=kFALSE; return kTRUE;} |
9c4c8863 | 38 | |
39 | private: | |
40 | AliTrackFitterKalman(const AliTrackFitterKalman &kalman); | |
41 | AliTrackFitterKalman &operator=(const AliTrackFitterKalman& kalman); | |
42 | ||
43 | Bool_t Propagate(const AliTrackPoint *p); | |
44 | Double_t GetPredictedChi2(const AliTrackPoint *p) const; | |
45 | Bool_t Update(const AliTrackPoint *p,Double_t chi2); | |
57c8a1c2 | 46 | |
9c4c8863 | 47 | |
48 | static const Double_t fgkMaxChi2; // Default maximal allowed chi2 | |
49 | ||
50 | Double_t fMaxChi2; // A point is added if chi2 < fMaxChi2 | |
57c8a1c2 | 51 | Bool_t fSeed; // True, if the fitter is already "seeded" |
9c4c8863 | 52 | |
57c8a1c2 | 53 | ClassDef(AliTrackFitterKalman,2) // Kalman-Filter fit to a straight line |
9c4c8863 | 54 | |
55 | }; | |
56 | ||
57 | #endif |