]>
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 | ||
6c94f330 | 15 | #include "AliExternalTrackParam.h" |
c84a5e9e | 16 | #include "AliLog.h" |
304864ab | 17 | #include "AliPID.h" |
87594435 | 18 | |
19 | class AliCluster; | |
20 | ||
6c94f330 | 21 | class AliKalmanTrack : public AliExternalTrackParam { |
87594435 | 22 | public: |
e2afb3b6 | 23 | AliKalmanTrack(); |
24 | AliKalmanTrack(const AliKalmanTrack &t); | |
be9c5115 | 25 | virtual ~AliKalmanTrack(){}; |
6c94f330 | 26 | |
be9c5115 | 27 | void SetLabel(Int_t lab) {fLab=lab;} |
6c94f330 | 28 | |
29 | virtual Double_t GetPredictedChi2(const AliCluster *c) const = 0; | |
30 | virtual Bool_t PropagateTo(Double_t xr, Double_t x0, Double_t rho) = 0; | |
31 | virtual Bool_t Update(const AliCluster* c, Double_t chi2, Int_t index) = 0; | |
be9c5115 | 32 | |
33 | Bool_t IsSortable() const {return kTRUE;} | |
34 | Int_t GetLabel() const {return fLab;} | |
35 | Double_t GetChi2() const {return fChi2;} | |
7f6ddf58 | 36 | Double_t GetMass() const {return fMass;} |
be9c5115 | 37 | Int_t GetNumberOfClusters() const {return fN;} |
e2afb3b6 | 38 | virtual Int_t GetClusterIndex(Int_t) const { //reserved for AliTracker |
c84a5e9e | 39 | AliWarning("Method must be overloaded !\n"); |
be9c5115 | 40 | return 0; |
41 | } | |
ae982df3 | 42 | virtual Double_t GetPIDsignal() const { |
c84a5e9e | 43 | AliWarning("Method must be overloaded !\n"); |
ae982df3 | 44 | return 0.; |
45 | } | |
be9c5115 | 46 | |
e2afb3b6 | 47 | virtual Int_t Compare(const TObject *) const {return 0;} |
be9c5115 | 48 | |
6c94f330 | 49 | void GetExternalParameters(Double_t &xr,Double_t p[5]) const { |
50 | xr=GetX(); | |
51 | for (Int_t i=0; i<5; i++) p[i]=GetParameter()[i]; | |
52 | } | |
53 | void GetExternalCovariance(Double_t cov[15]) const { | |
54 | for (Int_t i=0; i<15; i++) cov[i]=GetCovariance()[i]; | |
55 | } | |
c7bafca9 | 56 | |
6c94f330 | 57 | static |
58 | Double_t MeanMaterialBudget(Double_t *start,Double_t *end,Double_t *mparam); | |
be9c5115 | 59 | |
49a7a79a | 60 | // Time integration (S.Radomski@gsi.de) |
6c94f330 | 61 | void StartTimeIntegral(); |
ae982df3 | 62 | void SetIntegratedLength(Double_t l) {fIntegratedLength=l;} |
63 | void SetIntegratedTimes(const Double_t *times); | |
64 | ||
74f9526e | 65 | Bool_t IsStartedTimeIntegral() const {return fStartTimeIntegral;} |
6c94f330 | 66 | void AddTimeStep(Double_t length); |
ae982df3 | 67 | void GetIntegratedTimes(Double_t *times) const; |
74f9526e | 68 | Double_t GetIntegratedTime(Int_t pdg) const; |
69 | Double_t GetIntegratedLength() const {return fIntegratedLength;} | |
7d0f8548 | 70 | |
eb9891bc | 71 | void SetNumberOfClusters(Int_t n) {fN=n;} |
c84a5e9e | 72 | |
6c94f330 | 73 | void SetFakeRatio(Float_t ratio) {fFakeRatio=ratio;} |
74 | Float_t GetFakeRatio() const {return fFakeRatio;} | |
b9671574 | 75 | void SetMass(Double_t mass) {fMass=mass;} |
c84a5e9e | 76 | |
6c94f330 | 77 | protected: |
be9c5115 | 78 | void SetChi2(Double_t chi2) {fChi2=chi2;} |
be9c5115 | 79 | |
87594435 | 80 | Int_t fLab; // track label |
babd135a | 81 | Float_t fFakeRatio; // fake ratio |
87594435 | 82 | Double_t fChi2; // total chi2 value for this track |
7f6ddf58 | 83 | Double_t fMass; // mass hypothesis |
be9c5115 | 84 | Int_t fN; // number of associated clusters |
c84a5e9e | 85 | |
86 | private: | |
49a7a79a | 87 | // variables for time integration (S.Radomski@gsi.de) |
74f9526e | 88 | Bool_t fStartTimeIntegral; // indicator wether integrate time |
304864ab | 89 | Double_t fIntegratedTime[AliPID::kSPECIES]; // integrated time |
9c75d176 | 90 | Double_t fIntegratedLength; // integrated length |
74f9526e | 91 | |
6c94f330 | 92 | ClassDef(AliKalmanTrack,6) // Reconstructed track |
87594435 | 93 | }; |
94 | ||
95 | #endif | |
96 | ||
97 |