Preparation to use ITS tracking in HLT (C.Cheshkov)
[u/mrichter/AliRoot.git] / STEER / AliESDHLTtrack.h
1 #ifndef ALIESDHLTTRACK_H
2 #define ALIESDHLTTRACK_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 //-------------------------------------------------------------------------
6 //                          Class AliESDHLTtrack
7 //   This is the class to handle HLT reconstruted TPC tracks
8 //-------------------------------------------------------------------------
9 #include "TObject.h"
10
11 class AliKalmanTrack;
12
13 class AliESDHLTtrack : public TObject {
14 public:
15   AliESDHLTtrack();
16   virtual ~AliESDHLTtrack() {}
17
18   // getters
19   Int_t GetNHits() const {return fNHits;}
20
21   Int_t GetMCid() const {return fMCid;}
22
23   Int_t GetWeight() const {return fWeight;}
24
25   Bool_t ComesFromMainVertex() const {return fFromMainVertex;}
26
27   Int_t GetFirstRow() const {return fRowRange[0];}
28   Int_t GetLastRow()  const {return fRowRange[1];}
29   Int_t GetSector()   const {return fSector;}
30
31   Double_t GetFirstPointX() const {return fFirstPoint[0];}
32   Double_t GetFirstPointY() const {return fFirstPoint[1];}
33   Double_t GetFirstPointZ() const {return fFirstPoint[2];}
34   Double_t GetLastPointX() const {return fLastPoint[0];}
35   Double_t GetLastPointY() const {return fLastPoint[1];}
36   Double_t GetLastPointZ() const {return fLastPoint[2];}
37
38   Int_t GetCharge() const {return fQ;}
39   Double_t GetPt() const {return fPt;}
40   Double_t GetTgl() const {return fTanl;}
41   Double_t GetPsi() const {return fPsi;}
42
43   Double_t GetPterr()  const {return fPterr;}
44   Double_t GetPsierr() const {return fPsierr;}
45   Double_t GetTglerr() const {return fTanlerr;}
46
47   Float_t    GetBinX()   const {return fBinX;}
48   Float_t    GetBinY()   const {return fBinY;}
49   Float_t    GetSizeX()  const {return fSizeX;}
50   Float_t    GetSizeY()  const {return fSizeY;}
51
52   Double_t GetPx() const {return fPt*cos(fPsi);}
53   Double_t GetPy() const {return fPt*sin(fPsi);}
54   Double_t GetPz() const {return fPt*fTanl;}
55
56   Double_t GetP() const;
57   Double_t GetPseudoRapidity() const;
58
59   Float_t GetPID() const {return fPID;}
60
61   // setters
62   void SetNHits(Int_t f) {fNHits = f;}
63
64   void SetMCid(Int_t f) {fMCid = f;}
65
66   void SetWeight(Int_t f) {fWeight = f;}
67   
68   void ComesFromMainVertex(Bool_t f) {fFromMainVertex = f;}
69   
70   void SetRowRange(Int_t f,Int_t g) {fRowRange[0]=f; fRowRange[1]=g;}
71   void SetSector(Int_t f) {fSector = f;}
72
73   void SetFirstPoint(Double_t f,Double_t g,Double_t h) {fFirstPoint[0]=f; fFirstPoint[1]=g; fFirstPoint[2]=h;}
74   void SetLastPoint(Double_t f,Double_t g,Double_t h) {fLastPoint[0]=f; fLastPoint[1]=g; fLastPoint[2]=h;}
75
76   void SetCharge(Int_t f) {fQ = f;}
77   void SetTgl(Double_t f) {fTanl =f;}
78   void SetPsi(Double_t f) {fPsi = f;}
79   void SetPt(Double_t f) {fPt = f;}
80
81   void SetPterr(Double_t f) {fPterr = f;}
82   void SetPsierr(Double_t f) {fPsierr = f;}
83   void SetTglerr(Double_t f) {fTanlerr = f;}
84
85   void SetBinXY(Float_t binx,Float_t biny,Float_t sizex,Float_t sizey) {fBinX = binx; fBinY = biny; fSizeX = sizex; fSizeY = sizey;}
86
87   void SetPID(Float_t pid) {fPID = pid;}
88
89   Bool_t UpdateTrackParams(const AliKalmanTrack *t);
90
91 protected:
92   UShort_t fNHits;  // Number of assigned clusters
93
94   Int_t fMCid;  //Assigned id from MC data.
95
96   UShort_t fWeight; //Weight associated to Hough Transform
97
98   Bool_t   fFromMainVertex; // true if tracks origin is the main vertex, otherwise false
99   
100   Int_t fRowRange[2]; //Subsector where this track was build
101   UShort_t fSector;      //Sector # where  this track was build
102
103   Float_t fFirstPoint[3]; //First and last track point in TPC
104   Float_t fLastPoint[3];
105
106   Int_t    fQ;    //track charge
107   Float_t fTanl; //tan of dipangle
108   Float_t fPsi;  //azimuthal angle of the momentum 
109   Float_t fPt;   //transverse momentum
110
111   Float_t fPterr;
112   Float_t fPsierr;
113   Float_t fTanlerr;
114
115   Float_t fBinX;
116   Float_t fBinY;
117   Float_t fSizeX;
118   Float_t fSizeY;
119   
120   Float_t fPID; //so far filled only for conformal mapper tracks
121
122   ClassDef(AliESDHLTtrack,3) //ESD HLT track class
123 };
124
125 #endif