]>
Commit | Line | Data |
---|---|---|
98937d93 | 1 | #ifndef ALITRACKFITTER_H |
2 | #define ALITRACKFITTER_H | |
3 | ||
4 | /************************************************************************* | |
5 | * AliTrackFitter: base class for the fast track fitters * | |
6 | * * | |
339fbe23 | 7 | * Supposed to be used for alignment framework * |
8 | * More information is available in | |
9 | * http://agenda.cern.ch/askArchive.php?base=agenda&categ=a057717&id=a057717s1t6/transparencies | |
10 | * Author: C.Cheskov * | |
98937d93 | 11 | * * |
12 | * * | |
13 | *************************************************************************/ | |
14 | ||
e8d02863 | 15 | #include <TObject.h> |
16 | #include <TMatrixDSymfwd.h> | |
98937d93 | 17 | |
18 | #include "AliTrackPointArray.h" | |
19 | #include "AliAlignObj.h" | |
20 | ||
cc345ce3 | 21 | class TArrayI; |
98937d93 | 22 | |
23 | class AliTrackFitter : public TObject { | |
24 | ||
25 | public: | |
26 | ||
27 | AliTrackFitter(); | |
28 | AliTrackFitter(AliTrackPointArray *array, Bool_t owner = kTRUE); | |
29 | AliTrackFitter(const AliTrackFitter &fitter); | |
30 | AliTrackFitter& operator= (const AliTrackFitter& fitter); | |
31 | virtual ~AliTrackFitter(); | |
32 | ||
33 | virtual void Reset(); | |
34 | virtual void SetTrackPointArray(AliTrackPointArray *array, Bool_t owner = kTRUE); | |
cc345ce3 | 35 | virtual Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0, |
25be1e5c | 36 | AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, |
37 | AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer); | |
57c8a1c2 | 38 | |
39 | virtual Bool_t Begin(Int_t, Int_t) = 0; | |
9c4c8863 | 40 | virtual Bool_t AddPoint(const AliTrackPoint *p) = 0; |
41 | virtual Bool_t Update() = 0; | |
57c8a1c2 | 42 | |
98937d93 | 43 | virtual Bool_t GetPCA(const AliTrackPoint &pIn, AliTrackPoint &pOut) const = 0; |
44 | ||
cc345ce3 | 45 | Bool_t FindVolId(const TArrayI *array, UShort_t volid) const; |
46 | ||
47 | void SetMinNPoints(Int_t n) { fMinNPoints = n;} | |
48 | ||
98937d93 | 49 | const Float_t* GetX() const {return fPoints->GetX();} |
50 | const Float_t* GetY() const {return fPoints->GetY();} | |
51 | const Float_t* GetZ() const {return fPoints->GetZ();} | |
52 | const Double_t* GetParam() const {return &fParams[0];} | |
53 | const TMatrixDSym & GetCovariance() const {return *fCov;} | |
46ae650f | 54 | Float_t GetChi2() const {return fChi2;} |
55 | Int_t GetNdf() const {return fNdf;} | |
cc345ce3 | 56 | Int_t GetMinNPoints() const {return fMinNPoints;} |
46ae650f | 57 | Float_t GetNormChi2() const { return (fNdf != 0) ? fChi2/fNdf : 0; } |
58 | void GetTrackResiduals(AliTrackPointArray*& pVolId, AliTrackPointArray*& pTrack) const | |
59 | { pVolId = fPVolId; pTrack = fPTrack; } | |
98937d93 | 60 | |
61 | protected: | |
62 | ||
63 | Double_t fParams[6]; // Track parameters | |
46ae650f | 64 | TMatrixDSym *fCov; // Track cov matrix |
98937d93 | 65 | AliTrackPointArray *fPoints; // Pointer to the array with track space points |
46ae650f | 66 | AliTrackPointArray *fPVolId; // Pointer to the array with space-points in volId |
67 | AliTrackPointArray *fPTrack; // Pointer to the array with track extrapolation points in volId | |
68 | Float_t fChi2; // Chi squared of the fit | |
69 | Int_t fNdf; // Number of degrees of freedom | |
cc345ce3 | 70 | Int_t fMinNPoints; // Minimum allowed number of points |
98937d93 | 71 | Bool_t fIsOwner; // Is the object owner of the space points array |
72 | ||
73 | private: | |
74 | ||
75 | ClassDef(AliTrackFitter,1) // Abstract class of fast track fitters | |
76 | ||
77 | }; | |
78 | ||
79 | #endif |