Adding Cluster and KalmanTrack classes from J.Belikov
[u/mrichter/AliRoot.git] / STEER / AliKalmanTrack.h
CommitLineData
87594435 1#ifndef ALIKALMANTRACK_H
2#define ALIKALMANTRACK_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//-------------------------------------------------------------------------
8// Class AliKalmanTrack
9//
10// Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
11//-------------------------------------------------------------------------
12
13#include <TObject.h>
14
15class AliCluster;
16
17class AliKalmanTrack : public TObject {
18public:
19 AliKalmanTrack() {fN=0; fChi2=0; fLab=-3141593;}
20 AliKalmanTrack(const AliKalmanTrack& t);
21 Int_t Compare(TObject *o);
22 void SetLabel(Int_t lab) {fLab=lab;}
23
24 Double_t GetPredictedChi2(const AliCluster *cluster) const;
25 Bool_t IsSortable() const {return kTRUE;}
26 Int_t GetLabel() const {return fLab;}
27 void GetCovariance(Double_t cov[15]) const;
28 Double_t GetChi2() const {return fChi2;}
29 Int_t GetNumberOfClusters() const {return fN;}
30
31 virtual Double_t GetPt() const=0;
32 virtual Double_t GetP() const=0;
33 virtual void GetPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const=0;
34 virtual Int_t PropagateTo(Double_t xr,Double_t x0,Double_t rho,Double_t pm)=0;
35 virtual void Update(const AliCluster* c, Double_t chi2, UInt_t i)=0;
36
37protected:
38 Int_t fLab; // track label
39
40 Double_t fP0; //
41 Double_t fP1; //
42 Double_t fP2; // track parameters
43 Double_t fP3; //
44 Double_t fP4; //
45
46 Double_t fC00; // covariance
47 Double_t fC10, fC11; // matrix
48 Double_t fC20, fC21, fC22; // of the
49 Double_t fC30, fC31, fC32, fC33; // track
50 Double_t fC40, fC41, fC42, fC43, fC44; // parameters
51
52 Double_t fChi2; // total chi2 value for this track
53 Short_t fN; // number of clusters
54
55 ClassDef(AliKalmanTrack,1) // Reconstructed track
56};
57
58#endif
59
60