]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITStrack.h
Include forward declaration of AliITSRad
[u/mrichter/AliRoot.git] / ITS / AliITStrack.h
CommitLineData
dce1757b 1#ifndef ALIITSTRACK_H
2#define ALIITSTRACK_H
3
4#include <TObject.h>
5#include <TMatrix.h>
6#include <TVector.h>
7
8#include "../TPC/AliTPCtrack.h"
9
10class TObjArray;
ed72c89a 11class AliITSRad;
12
dce1757b 13// ITS Track Class
14//Origin A. Badala' and G.S. Pappalardo: e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it
15//
16class AliITStrack : public TObject {
17
18public:
19
20 AliITStrack() ;
21 AliITStrack(AliTPCtrack &obj);
22 AliITStrack(const AliITStrack &cobj);
23 AliITStrack &operator=(AliITStrack obj);
24 ~AliITStrack();
dce1757b 25 Int_t GetNumClust() { return fNumClustInTrack;}
26 void AddClustInTrack() { fNumClustInTrack++;}
27 TObjArray *GetListOfCluster() { return flistCluster;}
28 void SetChi2(Double_t chi2) { fChi2 = chi2;}
29 Double_t GetChi2() { return fChi2;}
53e7090a 30 Double_t GetZ() const {return fX1;}
31 Double_t GetTgl() const {return fX3;}
dce1757b 32 Double_t Getrtrack() const{return rtrack;}
53e7090a 33 Double_t Getphi() const{return fX0;}
34 Double_t GetC() const {return fX4;}
35 Double_t GetD() const{return fX2;}
36 Double_t GetPt() const {return 0.299792458*0.2/(fX4*100.);}
dce1757b 37 void SetVertex(TVector &vert) { for(Int_t i=0;i<3;i++) fVertex(i) = vert(i);}
38 void SetErrorVertex(TVector &evert) {for(Int_t i=0;i<3;i++) fErrorVertex(i) = evert(i);}
39
40 void LmTPC(); // trasform state vector and covariance matrix from local TPC to master
41 TVector GetVertex() { return fVertex;}
42 TVector GetErrorVertex() { return fErrorVertex;}
43 Long_t GetLabel() { return flabel;}
44 void SetLabel(Long_t label) { flabel = label;}
45 Int_t GetLayer() { return fLayer;}
53e7090a 46
47
48 void PutCElements(Double_t C00, Double_t C10, Double_t C11, Double_t C20, Double_t C21,
49 Double_t C22, Double_t C30, Double_t C31, Double_t C32, Double_t C33, Double_t C40,
50 Double_t C41, Double_t C42, Double_t C43, Double_t C44);
51
52 void GetCElements(Double_t &C00, Double_t &C10, Double_t &C11, Double_t &C20, Double_t &C21,
53 Double_t &C22, Double_t &C30, Double_t &C31, Double_t &C32, Double_t &C33, Double_t &C40,
54 Double_t &C41, Double_t &C42, Double_t &C43, Double_t &C44);
55
56 void GetXElements(Double_t &X0, Double_t &X1, Double_t &X2, Double_t &X3, Double_t &X4);
57 void PutXElements(Double_t X0, Double_t X1, Double_t X2, Double_t X3, Double_t X4);
58
dce1757b 59 void SetLayer(Int_t layer) { fLayer = layer;}
60 AliTPCtrack *GetTPCtrack() { return fTPCtrack;}
61
62 void PutCluster(Int_t layerc, TVector vecclust);
63 TVector GetLabTrack(Int_t lay);
64 void Search(TVector VecTotLabref, Long_t &labref, Int_t &freq);
65 Float_t GetZclusterTrack(Int_t lay) {return ((Float_t) (*ClusterInTrack)(lay,2));}
66 void GetClusters();
67 Int_t GetLabTPC() {return (*fTPCtrack).GetLabel();}
68 Int_t GetIdPoint(Int_t lay) {return ((Int_t) (*ClusterInTrack)(lay,4));}
69 Int_t GetIdModule(Int_t lay) {return ((Int_t) (*ClusterInTrack)(lay,5));}
53e7090a 70 Float_t GetIdParticle(Int_t lay) {return (*ClusterInTrack)(lay,3);}
dce1757b 71
72
73 Int_t DoNotCross(Double_t rk) const;
74 Double_t argA(Double_t rk) const;
75 Double_t arga(Double_t rk) const;
76 Double_t argB(Double_t rk) const;
77 Double_t argC(Double_t rk) const;
78 void Propagation(Double_t rk) ;
79
53e7090a 80 Double_t GetSigmaphi() const{return fC00;}
81 Double_t GetSigmaZ() const{return fC11;}
8af13b4b 82 void AddEL(AliITSRad *rl,Double_t signdE, Bool_t flagtot, Double_t mass=0.1396);
83 void AddMS(AliITSRad *rl);
dce1757b 84 void Correct(Double_t rk);
85 void SetDv(Double_t x) {Dv=x;}
86 void SetZv(Double_t x) {Zv=x;}
87 Double_t GetDv() {return Dv;}
88 Double_t GetZv() {return Zv;}
89 void SetsigmaDv( Double_t x) {sigmaDv=x;}
90 void SetsigmaZv( Double_t x) {sigmaZv=x;}
91 Double_t GetsigmaDv() {return sigmaDv;}
92 Double_t GetsigmaZv() {return sigmaZv;}
8af13b4b 93 void PrimaryTrack(AliITSRad *rl);
dce1757b 94 void Setd2(TVector &x) {for(Int_t i=0; i<6; i++){d2(i)=x(i);}}
95 void Settgl2(TVector &x) {for(Int_t i=0; i<6; i++){tgl2(i)=x(i);}}
96 void Setdtgl(TVector &x) {for(Int_t i=0; i<6; i++){dtgl(i)=x(i);}}
97 TVector Getd2() { return d2;}
98 TVector Gettgl2() { return tgl2;}
99 TVector Getdtgl() { return dtgl;}
100 Double_t Getd2(Int_t i){return (Double_t)d2(i);}
101 Double_t Gettgl2(Int_t i){return (Double_t)tgl2(i);}
102 Double_t Getdtgl(Int_t i){return (Double_t)dtgl(i);}
103 Double_t GetxoTPC() {return xoTPC;}
53e7090a 104 Double_t PhiDef(Double_t x, Double_t y);
105 //Int_t Getfreq(){return freq;} //provvisorio
106 // void Setfreq(Int_t xfreq){freq=xfreq;} //provvisorio
dce1757b 107////////////////////////////////////////////////////////////////////////////////////////
108
109 private:
110
111 AliTPCtrack *fTPCtrack; // reference to TPC track
53e7090a 112
113 Double_t fX0,fX1,fX2,fX3,fX4; // state vector: |phi/z/D/tgl/C
dce1757b 114 Double_t rtrack; // radius of courrent layer
53e7090a 115
116 Double_t fC00, fC10, fC11, // Covariance Matrix
117 fC20, fC21, fC22, // " "
118 fC30, fC31, fC32, // " "
119 fC33, fC40, fC41, // " "
120 fC42, fC43, fC44; // " "
dce1757b 121
122 Double_t fChi2; // fChi^2 of track
123 TObjArray *flistCluster; // list of clusters of the track
124 Int_t fNumClustInTrack; // total number of clusters
125 Long_t flabel; // label of the track
126 TVector fVertex; // vertex coordinates of the track
127 TVector fErrorVertex; // error on the vertex coordinates
128 Int_t fLayer; // current Layer of the track
129 TMatrix *ClusterInTrack; // matrix of clusters belonging to the track
130 // row index = layer-1;
131 // cols index = master coordinates of the clusters
132
133
134 Double_t Dv; // radial impact parameter for vertex constraint
135 Double_t Zv; // longitudinal impact parameter for vertex constraint
136 Double_t sigmaDv; // sigma for Dv extraction
137 Double_t sigmaZv; // sigma for Zv extraction
138 TVector d2; // C(2,2) per primary track
139 TVector tgl2; // C(3,3) per primary track
140 TVector dtgl; // C(2,3) per primary track
141
142 Double_t xoTPC;
143
53e7090a 144 // Int_t freq; //provvisorio
dce1757b 145
146
147 ClassDef(AliITStrack, 1)
148
149};
150
151#endif
152