]>
Commit | Line | Data |
---|---|---|
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 | /* $Id$ */ | |
8 | ||
9 | //------------------------------------------------------------------------- | |
10 | // Class AliKalmanTrack | |
11 | // fixed the interface for the derived reconstructed track classes | |
12 | // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch | |
13 | //------------------------------------------------------------------------- | |
14 | ||
15 | #include <TObject.h> | |
16 | #include "AliPID.h" | |
17 | ||
18 | class AliCluster; | |
19 | ||
20 | class AliKalmanTrack : public TObject { | |
21 | public: | |
22 | AliKalmanTrack(); | |
23 | AliKalmanTrack(const AliKalmanTrack &t); | |
24 | ||
25 | virtual ~AliKalmanTrack(){}; | |
26 | void SetLabel(Int_t lab) {fLab=lab;} | |
27 | void SetFakeRatio(Float_t ratio) {fFakeRatio=ratio;} | |
28 | ||
29 | Bool_t IsSortable() const {return kTRUE;} | |
30 | Int_t GetLabel() const {return fLab;} | |
31 | Float_t GetFakeRatio() const {return fFakeRatio;} | |
32 | Double_t GetChi2() const {return fChi2;} | |
33 | Double_t GetMass() const {return fMass;} | |
34 | Int_t GetNumberOfClusters() const {return fN;} | |
35 | virtual Int_t GetClusterIndex(Int_t) const { //reserved for AliTracker | |
36 | Warning("GetClusterIndex(Int_t)","Method must be overloaded !\n"); | |
37 | return 0; | |
38 | } | |
39 | virtual Double_t GetPIDsignal() const { | |
40 | Warning("GetPIDsignal()","Method must be overloaded !\n"); | |
41 | return 0.; | |
42 | } | |
43 | ||
44 | virtual Double_t GetDCA(const AliKalmanTrack *p,Double_t &xthis,Double_t &xp) const; | |
45 | virtual | |
46 | Double_t PropagateToDCA(AliKalmanTrack *p, Double_t d=0., Double_t x0=0.); | |
47 | virtual Double_t GetAlpha() const { | |
48 | Warning("GetAlpha()","Method must be overloaded !\n"); | |
49 | return 0.; | |
50 | } | |
51 | virtual Double_t GetSigmaY2() const { | |
52 | Warning("GetSigmaY2()","Method must be overloaded !\n"); | |
53 | return 0.; | |
54 | } | |
55 | virtual Double_t GetSigmaZ2() const { | |
56 | Warning("GetSigmaZ2()","Method must be overloaded !\n"); | |
57 | return 0.; | |
58 | } | |
59 | ||
60 | virtual Int_t Compare(const TObject *) const {return 0;} | |
61 | ||
62 | virtual void GetExternalParameters(Double_t &/*xr*/, Double_t /*x*/[5]) const {} | |
63 | virtual void GetExternalCovariance(Double_t /*cov*/[15]) const {} | |
64 | ||
65 | virtual Double_t GetPredictedChi2(const AliCluster *) const {return 0.;} | |
66 | virtual Int_t | |
67 | PropagateTo(Double_t /*xr*/, Double_t /*x0*/, Double_t /*rho*/) {return 0;} | |
68 | virtual Int_t PropagateToVertex(Double_t /*d*/=0., Double_t /*x0*/=0.) | |
69 | {return 0;} | |
70 | virtual Int_t | |
71 | Update(const AliCluster*, Double_t /*chi2*/, UInt_t) {return 0;} | |
72 | ||
73 | static void SetConvConst(Double_t cc) {fgConvConst=cc;} | |
74 | static Double_t GetConvConst() {return fgConvConst;} | |
75 | ||
76 | static void SetMagneticField(Double_t f) {// f - Magnetic field in T | |
77 | fgConvConst=100/0.299792458/f; | |
78 | } | |
79 | Double_t GetMagneticField() const {return 100/0.299792458/fgConvConst;} | |
80 | ||
81 | // Time integration (S.Radomski@gsi.de) | |
82 | void StartTimeIntegral(); | |
83 | void SetIntegratedLength(Double_t l) {fIntegratedLength=l;} | |
84 | void SetIntegratedTimes(const Double_t *times); | |
85 | ||
86 | Bool_t IsStartedTimeIntegral() const {return fStartTimeIntegral;} | |
87 | void AddTimeStep(Double_t length); | |
88 | void GetIntegratedTimes(Double_t *times) const; | |
89 | Double_t GetIntegratedTime(Int_t pdg) const; | |
90 | Double_t GetIntegratedLength() const {return fIntegratedLength;} | |
91 | void PrintTime() const; | |
92 | ||
93 | protected: | |
94 | void SetChi2(Double_t chi2) {fChi2=chi2;} | |
95 | void SetMass(Double_t mass) {fMass=mass;} | |
96 | void SetNumberOfClusters(Int_t n) {fN=n;} | |
97 | ||
98 | Int_t fLab; // track label | |
99 | Float_t fFakeRatio; // fake ratio | |
100 | Double_t fChi2; // total chi2 value for this track | |
101 | Double_t fMass; // mass hypothesis | |
102 | Int_t fN; // number of associated clusters | |
103 | private: | |
104 | static Double_t fgConvConst; //conversion constant cm -> GeV/c | |
105 | ||
106 | // variables for time integration (S.Radomski@gsi.de) | |
107 | Bool_t fStartTimeIntegral; // indicator wether integrate time | |
108 | Double_t fIntegratedTime[AliPID::kSPECIES]; // integrated time | |
109 | Double_t fIntegratedLength; // integrated length | |
110 | ||
111 | ClassDef(AliKalmanTrack,3) // Reconstructed track | |
112 | }; | |
113 | ||
114 | #endif | |
115 | ||
116 |