1 #ifndef ALIKALMANTRACK_H
2 #define ALIKALMANTRACK_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //-------------------------------------------------------------------------
8 // Class AliKalmanTrack
10 // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
11 //-------------------------------------------------------------------------
17 class AliKalmanTrack : public TObject {
19 AliKalmanTrack() { fLab=-3141593; fChi2=0; fN=0; }
20 AliKalmanTrack(const AliKalmanTrack &t) {fLab=t.fLab;fChi2=t.fChi2;fN=t.fN;}
21 virtual ~AliKalmanTrack(){};
22 void SetLabel(Int_t lab) {fLab=lab;}
24 Bool_t IsSortable() const {return kTRUE;}
25 Int_t GetLabel() const {return fLab;}
26 Double_t GetChi2() const {return fChi2;}
27 Int_t GetNumberOfClusters() const {return fN;}
28 virtual Int_t GetClusterIndex(Int_t i) const { //reserved for AliTracker
29 printf("AliKalmanTrack::GetClusterIndex(Int_t i) must be overloaded !\n");
33 virtual Int_t Compare(const TObject *o) const=0;
35 virtual void GetExternalParameters(Double_t &xr, Double_t x[5]) const=0;
36 virtual void GetExternalCovariance(Double_t cov[15]) const=0;
38 virtual Double_t GetPredictedChi2(const AliCluster *cluster) const=0;
40 Int_t PropagateTo(Double_t xr,Double_t x0,Double_t rho,Double_t pm)=0;
41 virtual Int_t Update(const AliCluster* c, Double_t chi2, UInt_t i)=0;
43 static void SetConvConst(Double_t cc) {fConvConst=cc;}
44 Double_t GetConvConst() const {return fConvConst;}
47 void SetChi2(Double_t chi2) {fChi2=chi2;}
48 void SetNumberOfClusters(Int_t n) {fN=n;}
51 Int_t fLab; // track label
52 Double_t fChi2; // total chi2 value for this track
53 Int_t fN; // number of associated clusters
55 static Double_t fConvConst; //conversion constant cm -> GeV/c
57 ClassDef(AliKalmanTrack,1) // Reconstructed track