AliRoot Core  3dc7879 (3dc7879)
AliKalmanTrack.h
Go to the documentation of this file.
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 "AliExternalTrackParam.h"
16 #include "AliLog.h"
17 #include "AliPID.h"
18 
19 class AliCluster;
20 
22 public:
25  virtual ~AliKalmanTrack(){};
27  void SetLabel(Int_t lab) {fLab=lab;}
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;
32 
33  Bool_t IsSortable() const {return kTRUE;}
34  Int_t GetLabel() const {return fLab;}
35  Double_t GetChi2() const {return fChi2;}
36  Double_t GetMass() const {return fMass;}
37  Int_t GetNumberOfClusters() const {return fN;}
38  virtual Int_t GetClusterIndex(Int_t) const { //reserved for AliTracker
39  AliWarning("Method must be overloaded !\n");
40  return 0;
41  }
42  virtual Int_t GetNumberOfTracklets() const {
43  AliWarning("Method must be overloaded !");
44  return 0;
45  }
46  virtual Int_t GetTrackletIndex(Int_t) const { //reserved for AliTracker
47  AliWarning("Method must be overloaded !");
48  return -1;
49  }
50  virtual Double_t GetPIDsignal() const {
51  AliWarning("Method must be overloaded !\n");
52  return 0.;
53  }
54 
55  virtual Int_t Compare(const TObject *) const {return 0;}
56 
57  void GetExternalParameters(Double_t &xr,Double_t p[5]) const {
58  xr=GetX();
59  for (Int_t i=0; i<5; i++) p[i]=GetParameter()[i];
60  }
61  void GetExternalCovariance(Double_t cov[15]) const {
62  for (Int_t i=0; i<15; i++) cov[i]=GetCovariance()[i];
63  }
64 
65  // Time integration (S.Radomski@gsi.de)
66  void StartTimeIntegral();
67  void SetIntegratedLength(Double_t l) {fIntegratedLength=l;}
68  void SetIntegratedTimes(const Double_t *times);
69 
70  virtual Bool_t IsStartedTimeIntegral() const {return fStartTimeIntegral;}
71  virtual void AddTimeStep(Double_t length);
72  void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIESC) const;
73  Double_t GetIntegratedTime(Int_t pdg) const;
74  Double_t GetIntegratedLength() const {return fIntegratedLength;}
75 
76  void SetNumberOfClusters(Int_t n) {fN=n;}
77 
78  void SetFakeRatio(Float_t ratio) {fFakeRatio=ratio;}
79  Float_t GetFakeRatio() const {return fFakeRatio;}
80  void SetMass(Double_t mass) {fMass=mass;}
81  void SetChi2(Double_t chi2) {fChi2=chi2;}
82 
83 protected:
84 
85  Double32_t fFakeRatio; // fake ratio
86  Double32_t fChi2; // total chi2 value for this track
87  Double32_t fMass; // mass hypothesis
88  Int_t fLab; // track label
89  Int_t fN; // number of associated clusters
90 
91 private:
92  Bool_t fStartTimeIntegral; // indicator wether integrate time
93  // variables for time integration (S.Radomski@gsi.de)
94  Double32_t fIntegratedTime[AliPID::kSPECIESC]; // integrated time
95  Double32_t fIntegratedLength; // integrated length
96 
97  ClassDef(AliKalmanTrack,8) // Reconstructed track
98 };
99 
100 #endif
101 
102 
Double_t GetChi2() const
void GetExternalParameters(Double_t &xr, Double_t p[5]) const
virtual Int_t GetTrackletIndex(Int_t) const
Double32_t fMass
virtual Int_t GetClusterIndex(Int_t) const
Double_t GetMass() const
Double_t GetIntegratedTime(Int_t pdg) const
virtual Bool_t Update(const AliCluster *c, Double_t chi2, Int_t index)=0
void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIESC) const
Double32_t fIntegratedTime[AliPID::kSPECIESC]
void GetExternalCovariance(Double_t cov[15]) const
Double_t GetIntegratedLength() const
Double32_t fChi2
Float_t p[]
Definition: kNNTest.C:133
AliKalmanTrack & operator=(const AliKalmanTrack &o)
Double32_t fFakeRatio
void SetFakeRatio(Float_t ratio)
Double32_t fIntegratedLength
virtual Double_t GetPredictedChi2(const AliCluster *c) const =0
void StartTimeIntegral()
const Double_t * GetParameter() const
virtual Double_t GetPIDsignal() const
virtual ~AliKalmanTrack()
#define AliWarning(message)
Definition: AliLog.h:541
virtual Bool_t IsStartedTimeIntegral() const
void SetIntegratedLength(Double_t l)
Double_t chi2
Definition: AnalyzeLaser.C:7
void SetMass(Double_t mass)
Float_t GetFakeRatio() const
void SetNumberOfClusters(Int_t n)
const Double_t * GetCovariance() const
Bool_t fStartTimeIntegral
virtual Int_t Compare(const TObject *) const
void SetIntegratedTimes(const Double_t *times)
virtual Bool_t PropagateTo(Double_t xr, Double_t x0, Double_t rho)=0
void SetLabel(Int_t lab)
void SetChi2(Double_t chi2)
Int_t GetLabel() const
virtual Int_t GetNumberOfTracklets() const
Bool_t IsSortable() const
Int_t GetNumberOfClusters() const
virtual void AddTimeStep(Double_t length)