]>
Commit | Line | Data |
---|---|---|
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 | ||
fb17acd4 | 7 | /* $Id$ */ |
8 | ||
87594435 | 9 | //------------------------------------------------------------------------- |
10 | // Class AliKalmanTrack | |
11 | // | |
12 | // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch | |
13 | //------------------------------------------------------------------------- | |
14 | ||
15 | #include <TObject.h> | |
16 | ||
17 | class AliCluster; | |
18 | ||
19 | class AliKalmanTrack : public TObject { | |
20 | public: | |
e2afb3b6 | 21 | AliKalmanTrack(); |
22 | AliKalmanTrack(const AliKalmanTrack &t); | |
23 | ||
be9c5115 | 24 | virtual ~AliKalmanTrack(){}; |
25 | void SetLabel(Int_t lab) {fLab=lab;} | |
26 | ||
27 | Bool_t IsSortable() const {return kTRUE;} | |
28 | Int_t GetLabel() const {return fLab;} | |
29 | Double_t GetChi2() const {return fChi2;} | |
7f6ddf58 | 30 | Double_t GetMass() const {return fMass;} |
be9c5115 | 31 | Int_t GetNumberOfClusters() const {return fN;} |
e2afb3b6 | 32 | virtual Int_t GetClusterIndex(Int_t) const { //reserved for AliTracker |
33 | Warning("GetClusterIndex(Int_t)","Method must be overloaded !\n"); | |
be9c5115 | 34 | return 0; |
35 | } | |
ae982df3 | 36 | virtual Double_t GetPIDsignal() const { |
37 | Warning("GetPIDsignal()","Method must be overloaded !\n"); | |
38 | return 0.; | |
39 | } | |
be9c5115 | 40 | |
49a7a79a | 41 | virtual Double_t GetDCA(const AliKalmanTrack *,Double_t &,Double_t &) const; |
42 | virtual | |
43 | Double_t PropagateToDCA(AliKalmanTrack *, Double_t d=0., Double_t x0=0.); | |
44 | virtual Double_t GetAlpha() const { | |
45 | Warning("GetAlpha()","Method must be overloaded !\n"); | |
46 | return 0.; | |
47 | } | |
48 | virtual Double_t GetSigmaY2() const { | |
49 | Warning("GetSigmaY2()","Method must be overloaded !\n"); | |
50 | return 0.; | |
51 | } | |
52 | virtual Double_t GetSigmaZ2() const { | |
53 | Warning("GetSigmaZ2()","Method must be overloaded !\n"); | |
54 | return 0.; | |
55 | } | |
56 | ||
e2afb3b6 | 57 | virtual Int_t Compare(const TObject *) const {return 0;} |
be9c5115 | 58 | |
e2afb3b6 | 59 | virtual void GetExternalParameters(Double_t &/*xr*/, Double_t /*x*/[5]) const {} |
60 | virtual void GetExternalCovariance(Double_t /*cov*/[15]) const {} | |
be9c5115 | 61 | |
c5507f6d | 62 | virtual Double_t GetX() const; |
63 | virtual Double_t GetdEdx() const; | |
64 | ||
65 | virtual Double_t GetY() const; | |
66 | virtual Double_t GetZ() const; | |
67 | virtual Double_t GetSnp() const; | |
68 | virtual Double_t GetTgl() const; | |
69 | virtual Double_t Get1Pt() const; | |
70 | ||
71 | virtual Double_t Phi() const; | |
72 | virtual Double_t SigmaPhi() const; | |
73 | virtual Double_t Theta() const; | |
74 | virtual Double_t SigmaTheta() const; | |
8de97894 | 75 | virtual Double_t Eta() const; |
c5507f6d | 76 | virtual Double_t Px() const; |
77 | virtual Double_t Py() const; | |
78 | virtual Double_t Pz() const; | |
79 | virtual Double_t Pt() const; | |
80 | virtual Double_t SigmaPt() const; | |
81 | virtual Double_t P() const; | |
c5507f6d | 82 | |
e2afb3b6 | 83 | virtual Double_t GetPredictedChi2(const AliCluster *) const {return 0.;} |
be9c5115 | 84 | virtual |
e2afb3b6 | 85 | Int_t PropagateTo(Double_t /*xr*/, Double_t /*x0*/, Double_t /*rho*/) {return 0;} |
86 | virtual Int_t Update(const AliCluster*, Double_t /*chi2*/, UInt_t) {return 0;} | |
be9c5115 | 87 | |
116cbefd | 88 | static void SetConvConst(Double_t cc) {fgConvConst=cc;} |
8de97894 | 89 | static void SetConvConst(); |
e23730c7 | 90 | static Double_t GetConvConst() {return fgConvConst;} |
9b280d80 | 91 | |
e1a65e92 | 92 | static void SetMagneticField(Double_t f) {// f - Magnetic field in T |
116cbefd | 93 | fgConvConst=100/0.299792458/f; |
e1a65e92 | 94 | } |
116cbefd | 95 | Double_t GetMagneticField() const {return 100/0.299792458/fgConvConst;} |
e1a65e92 | 96 | |
49a7a79a | 97 | // Time integration (S.Radomski@gsi.de) |
74f9526e | 98 | void StartTimeIntegral(); |
ae982df3 | 99 | void SetIntegratedLength(Double_t l) {fIntegratedLength=l;} |
100 | void SetIntegratedTimes(const Double_t *times); | |
101 | ||
74f9526e | 102 | Bool_t IsStartedTimeIntegral() const {return fStartTimeIntegral;} |
103 | void AddTimeStep(Double_t length); | |
ae982df3 | 104 | void GetIntegratedTimes(Double_t *times) const; |
74f9526e | 105 | Double_t GetIntegratedTime(Int_t pdg) const; |
106 | Double_t GetIntegratedLength() const {return fIntegratedLength;} | |
107 | void PrintTime() const; | |
108 | ||
109 | ||
be9c5115 | 110 | protected: |
111 | void SetChi2(Double_t chi2) {fChi2=chi2;} | |
7f6ddf58 | 112 | void SetMass(Double_t mass) {fMass=mass;} |
be9c5115 | 113 | void SetNumberOfClusters(Int_t n) {fN=n;} |
114 | ||
ae982df3 | 115 | private: |
87594435 | 116 | Int_t fLab; // track label |
87594435 | 117 | Double_t fChi2; // total chi2 value for this track |
7f6ddf58 | 118 | Double_t fMass; // mass hypothesis |
be9c5115 | 119 | Int_t fN; // number of associated clusters |
87594435 | 120 | |
116cbefd | 121 | static Double_t fgConvConst; //conversion constant cm -> GeV/c |
9b280d80 | 122 | |
49a7a79a | 123 | // variables for time integration (S.Radomski@gsi.de) |
5d8718b8 | 124 | static const Int_t fgkTypes = 5; // Number of track types (e,mu,pi,k,p) |
74f9526e | 125 | Bool_t fStartTimeIntegral; // indicator wether integrate time |
9c75d176 | 126 | Double_t fIntegratedTime[5]; // integrated time |
127 | Double_t fIntegratedLength; // integrated length | |
74f9526e | 128 | |
129 | ClassDef(AliKalmanTrack,2) // Reconstructed track | |
87594435 | 130 | }; |
131 | ||
132 | #endif | |
133 | ||
134 |