]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITStrack.h
Recpoint sigma values re-set to their original values
[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;
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//
14class AliITStrack : public TObject {
15
16public:
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);}
8ab89103 36 Double_t GetPt() const {return 0.299792458*0.2/(fvTrack(4)*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;}
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));}
8af13b4b 70 void AddEL(AliITSRad *rl,Double_t signdE, Bool_t flagtot, Double_t mass=0.1396);
71 void AddMS(AliITSRad *rl);
dce1757b 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;}
8af13b4b 81 void PrimaryTrack(AliITSRad *rl);
dce1757b 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