]>
Commit | Line | Data |
---|---|---|
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 | ||
10 | class TObjArray; | |
11 | // ITS Track Class | |
12 | //Origin A. Badala' and G.S. Pappalardo: e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it | |
13 | // | |
14 | class AliITStrack : public TObject { | |
15 | ||
16 | public: | |
17 | ||
18 | AliITStrack() ; | |
19 | AliITStrack(AliTPCtrack &obj); | |
20 | AliITStrack(const AliITStrack &cobj); | |
21 | AliITStrack &operator=(AliITStrack obj); | |
22 | ~AliITStrack(); | |
23 | Float_t &operator()(Int_t i) const { return fvTrack(i);} | |
24 | Float_t &operator()(Int_t r, Int_t c) const {return (*fmCovariance)(r,c);} | |
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;} | |
30 | Double_t GetZ() const {return fvTrack(1);} | |
31 | Double_t GetTgl() const {return fvTrack(3);} | |
32 | Double_t Getrtrack() const{return rtrack;} | |
33 | Double_t Getphi() const{return fvTrack(0);} | |
34 | Double_t GetC() const {return fvTrack(4);} | |
35 | Double_t GetD() const{return fvTrack(2);} | |
36 | Double_t GetPt() const {return 0.3*0.2/(fvTrack(4)*100.);} | |
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;} | |
46 | TMatrix &GetCMatrix() { return *fmCovariance;} | |
47 | TVector &GetVector() { return fvTrack;} | |
48 | void SetLayer(Int_t layer) { fLayer = layer;} | |
49 | AliTPCtrack *GetTPCtrack() { return fTPCtrack;} | |
50 | ||
51 | void PutCluster(Int_t layerc, TVector vecclust); | |
52 | TVector GetLabTrack(Int_t lay); | |
53 | void Search(TVector VecTotLabref, Long_t &labref, Int_t &freq); | |
54 | Float_t GetZclusterTrack(Int_t lay) {return ((Float_t) (*ClusterInTrack)(lay,2));} | |
55 | void GetClusters(); | |
56 | Int_t GetLabTPC() {return (*fTPCtrack).GetLabel();} | |
57 | Int_t GetIdPoint(Int_t lay) {return ((Int_t) (*ClusterInTrack)(lay,4));} | |
58 | Int_t GetIdModule(Int_t lay) {return ((Int_t) (*ClusterInTrack)(lay,5));} | |
59 | ||
60 | ||
61 | Int_t DoNotCross(Double_t rk) const; | |
62 | Double_t argA(Double_t rk) const; | |
63 | Double_t arga(Double_t rk) const; | |
64 | Double_t argB(Double_t rk) const; | |
65 | Double_t argC(Double_t rk) const; | |
66 | void Propagation(Double_t rk) ; | |
67 | ||
68 | Double_t GetSigmaphi() const{return ((Double_t)(*fmCovariance)(0,0));} | |
69 | Double_t GetSigmaZ() const{return ((Double_t)(*fmCovariance)(1,1));} | |
70 | void AddEL(Double_t signdE, Bool_t flagtot, Double_t mass=0.1396); | |
71 | void AddMS(); | |
72 | void Correct(Double_t rk); | |
73 | void SetDv(Double_t x) {Dv=x;} | |
74 | void SetZv(Double_t x) {Zv=x;} | |
75 | Double_t GetDv() {return Dv;} | |
76 | Double_t GetZv() {return Zv;} | |
77 | void SetsigmaDv( Double_t x) {sigmaDv=x;} | |
78 | void SetsigmaZv( Double_t x) {sigmaZv=x;} | |
79 | Double_t GetsigmaDv() {return sigmaDv;} | |
80 | Double_t GetsigmaZv() {return sigmaZv;} | |
81 | void PrimaryTrack(); | |
82 | void Setd2(TVector &x) {for(Int_t i=0; i<6; i++){d2(i)=x(i);}} | |
83 | void Settgl2(TVector &x) {for(Int_t i=0; i<6; i++){tgl2(i)=x(i);}} | |
84 | void Setdtgl(TVector &x) {for(Int_t i=0; i<6; i++){dtgl(i)=x(i);}} | |
85 | TVector Getd2() { return d2;} | |
86 | TVector Gettgl2() { return tgl2;} | |
87 | TVector Getdtgl() { return dtgl;} | |
88 | Double_t Getd2(Int_t i){return (Double_t)d2(i);} | |
89 | Double_t Gettgl2(Int_t i){return (Double_t)tgl2(i);} | |
90 | Double_t Getdtgl(Int_t i){return (Double_t)dtgl(i);} | |
91 | Double_t GetxoTPC() {return xoTPC;} | |
92 | // Double_t PhiDef(Double_t x, Double_t y); | |
93 | // Double_t Getalphaprov(){return alphaprov;} //provvirio | |
94 | //////////////////////////////////////////////////////////////////////////////////////// | |
95 | ||
96 | private: | |
97 | ||
98 | AliTPCtrack *fTPCtrack; // reference to TPC track | |
99 | ||
100 | TVector fvTrack; // state vector: |phi/z/D/tgl/C | |
101 | Double_t rtrack; // radius of courrent layer | |
102 | TMatrix *fmCovariance; // Covariance Matrix | |
103 | ||
104 | Double_t fChi2; // fChi^2 of track | |
105 | TObjArray *flistCluster; // list of clusters of the track | |
106 | Int_t fNumClustInTrack; // total number of clusters | |
107 | Long_t flabel; // label of the track | |
108 | TVector fVertex; // vertex coordinates of the track | |
109 | TVector fErrorVertex; // error on the vertex coordinates | |
110 | Int_t fLayer; // current Layer of the track | |
111 | TMatrix *ClusterInTrack; // matrix of clusters belonging to the track | |
112 | // row index = layer-1; | |
113 | // cols index = master coordinates of the clusters | |
114 | ||
115 | ||
116 | Double_t Dv; // radial impact parameter for vertex constraint | |
117 | Double_t Zv; // longitudinal impact parameter for vertex constraint | |
118 | Double_t sigmaDv; // sigma for Dv extraction | |
119 | Double_t sigmaZv; // sigma for Zv extraction | |
120 | TVector d2; // C(2,2) per primary track | |
121 | TVector tgl2; // C(3,3) per primary track | |
122 | TVector dtgl; // C(2,3) per primary track | |
123 | ||
124 | Double_t xoTPC; | |
125 | ||
126 | //Double_t alphaprov; //provviosorio | |
127 | ||
128 | ||
129 | ClassDef(AliITStrack, 1) | |
130 | ||
131 | }; | |
132 | ||
133 | #endif | |
134 |