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