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