Splitting of the ITS libraries (M.Masera & E.Crescio)
[u/mrichter/AliRoot.git] / ITS / AliITSIOTrack.h
1 #ifndef ALIITSIOTRACK_H
2 #define ALIITSIOTRACK_H 
3
4 ////////////////////////////////////////////////////
5 //  Reconstructed space point class for set:ITS   //
6 ////////////////////////////////////////////////////
7
8 #include <TObject.h>
9
10 class TMatrix;
11 class AliITSIOTrack : public TObject {
12
13
14  public:
15
16   AliITSIOTrack();                        // constructor
17   virtual ~AliITSIOTrack() {};            // distructor
18   Int_t   GetLabel() const {return fLab;} // get track label
19   Int_t   GetTPCLabel() const {return fTPCLab;} // get TPC track label   
20   Int_t   GetIdPoint(Int_t i) const {return fIdPoints[i];}   // get the identification number for the point
21   Int_t   GetIdModule(Int_t i) const {return fIdModules[i];} // get the module number for the point
22
23  void GetCovMatrix(Double_t &C00, Double_t &C10, Double_t &C11, Double_t &C20,
24                    Double_t &C21, Double_t &C22, Double_t &C30, Double_t &C31,
25                    Double_t &C32, Double_t &C33, Double_t &C40, Double_t &C41,
26                    Double_t &C42, Double_t &C43, Double_t &C44) const;
27   Double_t GetStatePhi() const {return fStateVPhi;}  // gets the Phi angle of the state vector
28   Double_t GetStateZ() const {return fStateVZ;}      // gets the Z cohordinate of the state vector
29   Double_t GetStateD() const {return fStateVD;}      // gets the radial impact parameter of the state vector
30   Double_t GetStateC() const {return fStateVC;}      // gets the curvature C of the state vector
31   Double_t GetStateTgl() const {return fStateVTgl;}  // gets the dip angle tangent of the state vector
32   Double_t GetRadius() const {return fRadius;}       // gets the radius corresponding to the state vector
33   Int_t     GetCharge() const {return fCharge;}      // gets the particle charge
34   Float_t GetX() const {return fX;}     // gets the x cohordinate of the track point nearest to primary vertex
35   Float_t GetZ() const {return fZ;}     // gets the z cohordinate of the track point nearest to primary vertex
36   Float_t GetY() const {return fY;}     // gets the y cohordinate of the track point nearest to primary vertex
37   Float_t GetPx() const {return fPx;}   // gets the x momentum component at the fX,fY,fZ point  
38   Float_t GetPy() const {return fPy;}   // gets the y momentum component at the fX,fY,fZ point  
39   Float_t GetPz() const {return fPz;}    // gets the z momentum component at the fX,fY,fZ point  
40   Double_t GetDz() const {return fDz;}   // gets the longitudinal impact parameter
41   Int_t    GetPid() const {return fPid;} // gets the identified particle code
42   Double_t GetMass()  const {return fMass;}                             // get the tracking mass  
43   Float_t GetdEdx() const {return fdEdx;}                              //get the track energy loss
44   void SetMass(Double_t mass) {fMass=mass;}                      // put the tracking mass
45   void SetPid(Int_t pid) {fPid=pid;}                             // put the identified particle code
46   
47   void SetCovMatrix(Double_t C00, Double_t C10, Double_t C11, Double_t C20, Double_t C21, 
48        Double_t C22, Double_t C30, Double_t C31, Double_t C32, Double_t C33, Double_t C40, 
49        Double_t C41, Double_t C42, Double_t C43, Double_t C44);
50   
51   void SetLabel(Int_t lab) {fLab=lab;}  // sets the track label
52   void SetTPCLabel(Int_t lab) {fTPCLab=lab;}  // sets the TPC track label    
53   void SetIdPoint(Int_t i,Int_t pnt) {fIdPoints[i]=pnt;}   // set the identification number for the point
54   void SetIdModule(Int_t i,Int_t mod) {fIdModules[i]=mod;} // set the module number for the point
55    
56   void SetStatePhi(Double_t phi) {fStateVPhi=phi;}   // sets the Phi angle of the state vector 
57   void SetStateZ(Double_t z) {fStateVZ=z;}           // sets the Z cohordinate of the state vector
58   void SetStateD(Double_t d) {fStateVD=d;}           // sets the radial impact parameter of the state vector 
59   void SetStateTgl(Double_t tgl) {fStateVTgl=tgl;}   // sets the dip angle tangent of the state vector
60   void SetStateC(Double_t c) {fStateVC=c;}           // sets the curvature C of the state vector
61   void SetRadius(Double_t r) {fRadius= r;}           // sets the radius corresponding to the state vector
62   void SetCharge(Int_t charge) {fCharge=charge;}     // sets the particle charge
63
64   void SetX(Float_t x){fX=x;}        // sets the x position of the track point nearest to primary vertex
65   void SetZ(Float_t z){fZ=z;}        // sets the z position of the track point nearest to primary vertex
66   void SetY(Float_t y){fY=y;}        // sets the y position of the track point nearest to primary vertex
67   void SetPx(Float_t px) {fPx=px;}   // sets the x momentum component at the fX,fY,fZ point 
68   void SetPy(Float_t py) {fPy=py;}   // sets the y momentum component at the fX,fY,fZ point
69   void SetPz(Float_t pz) {fPz=pz;}   // sets the z momentum component at the fX,fY,fZ point
70   void SetDz(Double_t dz) {fDz=dz;}  //sets the longitudinal impact parameter
71   void SetdEdx(Float_t dedx) {fdEdx=dedx;} //sets the de/dx
72
73
74  private:
75     
76   Int_t     fLab;       // label of reconstructed track
77   Int_t     fTPCLab;       // label of TPC track  
78   Float_t   fX ;        // x cohordinate of the track point nearest to primary vertex
79   Float_t   fY ;        // y cohordinate of the track point nearest to primary vertex
80   Float_t   fZ ;        // z cohordinate of the track point nearest to primary vertex
81   Float_t   fPx;        // x component of track momentum at the fX,fY,fZ point 
82   Float_t   fPy;        // y component of track momentum at the fX,fY,fZ point 
83   Float_t   fPz;        // z component of track momentum at the fX,fY,fZ point 
84
85    
86   //
87   Int_t     fIdPoints[6];   // points assigned to the track (entry # in fRecPoints is given by module #)
88   Int_t     fIdModules[6];  // module # corresponding to each point belonging to the track
89
90   Double_t  fStateVPhi;          //  state vector component Phi to beam pipe
91   Double_t  fStateVZ;            //  state vector component Z   to beam pipe
92   Double_t  fStateVD;            //  state vector component D
93   Double_t  fStateVTgl;          //  state vector component Tgl
94   Double_t  fStateVC;            //  state vector component C
95          
96   Double_t  fRadius;             //  distance of the point from the origin
97   Int_t     fPid;                //  identified particle code
98   Int_t     fCharge;             //  particle charge 
99   
100   Double_t  fMass;               //  tracking mass
101   
102   Double_t  fDz;                 // longitudinal impact parameter 
103   
104   Float_t fdEdx;             //track energy loss by trouncated method
105
106
107 //  Covariance matrix
108   Double_t  fC00;                                   // first row elements of the covariance matrix
109   Double_t  fC10, fC11;                             // second row elements of the covariance matrix
110   Double_t  fC20, fC21, fC22;                       // third row elements of the covariance matrix 
111   Double_t  fC30, fC31, fC32, fC33;                 // fourth row elements of the covariance matrix
112   Double_t  fC40, fC41, fC42, fC43, fC44;           // fiveth row elements of the covariance matrix 
113          
114   ClassDef(AliITSIOTrack,1)  // AliITSIOTrack class
115 };
116
117 #endif