]>
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 | |
9b859005 | 11 | // fixed the interface for the derived reconstructed track classes |
12 | // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch | |
87594435 | 13 | //------------------------------------------------------------------------- |
14 | ||
15 | #include <TObject.h> | |
c84a5e9e | 16 | #include "AliLog.h" |
304864ab | 17 | #include "AliPID.h" |
87594435 | 18 | |
19 | class AliCluster; | |
20 | ||
21 | class AliKalmanTrack : public TObject { | |
22 | public: | |
e2afb3b6 | 23 | AliKalmanTrack(); |
24 | AliKalmanTrack(const AliKalmanTrack &t); | |
25 | ||
be9c5115 | 26 | virtual ~AliKalmanTrack(){}; |
27 | void SetLabel(Int_t lab) {fLab=lab;} | |
babd135a | 28 | void SetFakeRatio(Float_t ratio) {fFakeRatio=ratio;} |
be9c5115 | 29 | |
30 | Bool_t IsSortable() const {return kTRUE;} | |
31 | Int_t GetLabel() const {return fLab;} | |
babd135a | 32 | Float_t GetFakeRatio() const {return fFakeRatio;} |
be9c5115 | 33 | Double_t GetChi2() const {return fChi2;} |
7f6ddf58 | 34 | Double_t GetMass() const {return fMass;} |
be9c5115 | 35 | Int_t GetNumberOfClusters() const {return fN;} |
e2afb3b6 | 36 | virtual Int_t GetClusterIndex(Int_t) const { //reserved for AliTracker |
c84a5e9e | 37 | AliWarning("Method must be overloaded !\n"); |
be9c5115 | 38 | return 0; |
39 | } | |
ae982df3 | 40 | virtual Double_t GetPIDsignal() const { |
c84a5e9e | 41 | AliWarning("Method must be overloaded !\n"); |
ae982df3 | 42 | return 0.; |
43 | } | |
be9c5115 | 44 | |
49a7a79a | 45 | virtual Double_t GetAlpha() const { |
c84a5e9e | 46 | AliWarning("Method must be overloaded !\n"); |
49a7a79a | 47 | return 0.; |
48 | } | |
49 | virtual Double_t GetSigmaY2() const { | |
c84a5e9e | 50 | AliWarning("Method must be overloaded !\n"); |
49a7a79a | 51 | return 0.; |
52 | } | |
53 | virtual Double_t GetSigmaZ2() const { | |
c84a5e9e | 54 | AliWarning("Method must be overloaded !\n"); |
49a7a79a | 55 | return 0.; |
56 | } | |
57 | ||
e2afb3b6 | 58 | virtual Int_t Compare(const TObject *) const {return 0;} |
be9c5115 | 59 | |
c84a5e9e | 60 | virtual void GetExternalParameters(Double_t&/*xr*/,Double_t/*x*/[5]) const=0; |
61 | virtual void GetExternalCovariance(Double_t /*cov*/[15]) const = 0; | |
be9c5115 | 62 | |
c84a5e9e | 63 | virtual Double_t GetPredictedChi2(const AliCluster *) const = 0; |
64 | virtual Int_t PropagateTo(Double_t/*xr*/,Double_t/*x0*/,Double_t/*rho*/) = 0; | |
c7bafca9 | 65 | |
c84a5e9e | 66 | virtual Int_t Update(const AliCluster*, Double_t /*chi2*/, UInt_t) = 0; |
be9c5115 | 67 | |
4557b520 | 68 | static Double_t MeanMaterialBudget(Double_t *start, Double_t *end, Double_t *mparam); |
c84a5e9e | 69 | |
49a7a79a | 70 | // Time integration (S.Radomski@gsi.de) |
74f9526e | 71 | void StartTimeIntegral(); |
ae982df3 | 72 | void SetIntegratedLength(Double_t l) {fIntegratedLength=l;} |
73 | void SetIntegratedTimes(const Double_t *times); | |
74 | ||
74f9526e | 75 | Bool_t IsStartedTimeIntegral() const {return fStartTimeIntegral;} |
76 | void AddTimeStep(Double_t length); | |
ae982df3 | 77 | void GetIntegratedTimes(Double_t *times) const; |
74f9526e | 78 | Double_t GetIntegratedTime(Int_t pdg) const; |
79 | Double_t GetIntegratedLength() const {return fIntegratedLength;} | |
7d0f8548 | 80 | virtual void GetXYZ(Float_t r[3]) const = 0; |
81 | ||
82 | static Double_t GetConvConst(); | |
eb9891bc | 83 | void SetNumberOfClusters(Int_t n) {fN=n;} |
be9c5115 | 84 | protected: |
c84a5e9e | 85 | void SaveLocalConvConst(); |
7d0f8548 | 86 | Double_t GetLocalConvConst() const {return fLocalConvConst;} |
c84a5e9e | 87 | |
88 | void External2Helix(Double_t helix[6]) const; | |
89 | ||
be9c5115 | 90 | void SetChi2(Double_t chi2) {fChi2=chi2;} |
7f6ddf58 | 91 | void SetMass(Double_t mass) {fMass=mass;} |
be9c5115 | 92 | |
87594435 | 93 | Int_t fLab; // track label |
babd135a | 94 | Float_t fFakeRatio; // fake ratio |
87594435 | 95 | Double_t fChi2; // total chi2 value for this track |
7f6ddf58 | 96 | Double_t fMass; // mass hypothesis |
be9c5115 | 97 | Int_t fN; // number of associated clusters |
c84a5e9e | 98 | |
99 | private: | |
c84a5e9e | 100 | Double_t fLocalConvConst; //local conversion "curvature(1/cm) -> pt(GeV/c)" |
9b280d80 | 101 | |
49a7a79a | 102 | // variables for time integration (S.Radomski@gsi.de) |
74f9526e | 103 | Bool_t fStartTimeIntegral; // indicator wether integrate time |
304864ab | 104 | Double_t fIntegratedTime[AliPID::kSPECIES]; // integrated time |
9c75d176 | 105 | Double_t fIntegratedLength; // integrated length |
74f9526e | 106 | |
7d0f8548 | 107 | ClassDef(AliKalmanTrack,5) // Reconstructed track |
87594435 | 108 | }; |
109 | ||
110 | #endif | |
111 | ||
112 |