]>
Commit | Line | Data |
---|---|---|
c9787763 | 1 | #ifndef ALICOMPLEXCLUSTER_H |
2 | #define ALICOMPLEXCLUSTER_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | #include "TObject.h" | |
1c53abe2 | 9 | #include "TMath.h" |
41cfdca1 | 10 | #include "AliTPCclusterMI.h" |
c9787763 | 11 | |
12 | class AliComplexCluster : public TObject { | |
13 | public: | |
14 | Int_t fTracks[3];//labels of overlapped tracks | |
15 | Float_t fX ; //Y of cluster | |
16 | Float_t fY ; //Z of cluster | |
17 | Float_t fQ ; //Q of cluster (in ADC counts) | |
18 | Float_t fSigmaX2; //Sigma Y square of cluster | |
19 | Float_t fSigmaY2; //Sigma Z square of cluster | |
20 | Float_t fSigmaXY; // XY moment | |
21 | Float_t fArea; //area of cluster | |
22 | Float_t fMax; //amplitude at maximum | |
23 | public: | |
24 | AliComplexCluster() { | |
25 | fTracks[0]=fTracks[1]=fTracks[2]=0; | |
1c53abe2 | 26 | fX=fY=fQ=fSigmaX2=fSigmaY2=fSigmaXY=fArea=fMax=0.; |
c9787763 | 27 | } |
28 | virtual ~AliComplexCluster() {;} | |
29 | Bool_t IsSortable() const; | |
5c84b1d4 | 30 | Int_t Compare(const TObject *o) const; |
c9787763 | 31 | ClassDef(AliComplexCluster,1) // Cluster manager |
32 | }; | |
33 | ||
34 | class AliDigitCluster : public AliComplexCluster { | |
35 | public: | |
36 | Int_t fNx; //number of accepted x bins | |
37 | Int_t fNy; //number of accepted y bins | |
38 | Float_t fMaxX; //maximum x bin | |
39 | Float_t fMaxY; //maximum y bin | |
40 | public: | |
41 | ClassDef(AliDigitCluster,1) // Tclusters | |
42 | }; | |
43 | ||
1c53abe2 | 44 | |
45 | ||
46 | class AliTPCTrackerPoint { | |
47 | private: | |
48 | Short_t fTX; // x position of the cluster in cm - 10 mum prec | |
49 | Short_t fTZ; // current prolongation in Z in cm - 10 mum prec. | |
50 | Short_t fTY; // current prolongation in Y in cm - 10 mum prec. | |
41cfdca1 | 51 | Char_t fTAngleZ; // angle |
52 | Char_t fTAngleY; // angle | |
53 | UShort_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent | |
54 | UShort_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent | |
55 | UShort_t fErrZ; // z error estimate - in mm - 50 mum precision | |
56 | UShort_t fErrY; // y error estimate - in mm - 50 mum precision | |
1c53abe2 | 57 | public: |
41cfdca1 | 58 | Char_t fIsShared; // indicate sharing of the point between several tracks |
59 | ||
60 | AliTPCTrackerPoint(){fTX=0; fTY=0; fTZ=0; fTAngleZ=0; fTAngleY=0; fIsShared = 0;} | |
1c53abe2 | 61 | inline Float_t GetX() {return (fTX*0.01);} |
62 | inline Float_t GetZ() {return (fTZ*0.01);} | |
63 | inline Float_t GetY() {return (fTY*0.01);} | |
64 | inline Float_t GetAngleZ() {return (Float_t(fTAngleZ)*0.02);} | |
65 | inline Float_t GetAngleY() {return (Float_t(fTAngleY)*0.02);} | |
66 | // | |
67 | void SetX(Float_t x){ fTX = Short_t(TMath::Nint(x*100.));} | |
68 | void SetY(Float_t y){ fTY = Short_t(TMath::Nint(y*100.));} | |
69 | void SetZ(Float_t z){ fTZ = Short_t(TMath::Nint(z*100.));} | |
70 | void SetAngleZ(Float_t anglez) {fTAngleZ = Char_t(TMath::Nint(anglez*50.));} | |
71 | void SetAngleY(Float_t angley) {fTAngleY = Char_t(TMath::Nint(angley*50.));} | |
41cfdca1 | 72 | inline Float_t GetSigmaZ() {return (fSigmaZ*0.02);} |
73 | inline Float_t GetSigmaY() {return (fSigmaY*0.02);} | |
74 | inline Float_t GetErrZ() {return (fErrZ*0.005);} | |
75 | inline Float_t GetErrY() {return (fErrY*0.005);} | |
76 | void SetErrZ(Float_t errz) {fErrZ = UChar_t(TMath::Nint(errz*200.));} | |
77 | void SetErrY(Float_t erry) {fErrY = UChar_t(TMath::Nint(erry*200.));} | |
78 | ||
79 | void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));} | |
80 | void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));} | |
1c53abe2 | 81 | // |
82 | public: | |
83 | ClassDef(AliTPCTrackerPoint,1) | |
c9787763 | 84 | }; |
85 | ||
1c53abe2 | 86 | class AliTPCClusterPoint { |
87 | private: | |
88 | Short_t fCZ; // current cluster position Z in cm - 100 mum precision | |
89 | Short_t fCY; // current cluster position Y in cm - 100 mum precision | |
1c53abe2 | 90 | UChar_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent |
91 | UChar_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent | |
92 | UShort_t fQ; // total charge in cluster | |
93 | UShort_t fMax; // charge at maximum | |
94 | Char_t fCType; // type of the cluster | |
95 | public: | |
41cfdca1 | 96 | AliTPCClusterPoint(){fCZ=fCY=fSigmaZ=fSigmaY=fQ=fMax=fCType=0;} |
1c53abe2 | 97 | inline Float_t GetZ() {return (fCZ*0.01);} |
98 | inline Float_t GetY() {return (fCY*0.01);} | |
1c53abe2 | 99 | inline Float_t GetSigmaZ() {return (fSigmaZ*0.02);} |
100 | inline Float_t GetSigmaY() {return (fSigmaY*0.02);} | |
101 | inline Int_t GetType() {return fCType;} | |
102 | inline Int_t GetMax() {return fMax;} | |
103 | inline Float_t GetQ() {return fQ;} | |
104 | ||
105 | // | |
106 | void SetY(Float_t y){ fCY = Short_t(TMath::Nint(y*100.));} | |
107 | void SetZ(Float_t z){ fCZ = Short_t(TMath::Nint(z*100.));} | |
1c53abe2 | 108 | void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));} |
109 | void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));} | |
110 | void SetQ(Float_t q) {fQ = UShort_t(q);} | |
111 | void SetMax(Float_t max) {fMax = UShort_t(max);} | |
112 | void SetType(Char_t type) {fCType = type;} | |
113 | ||
114 | // | |
115 | public: | |
116 | ClassDef(AliTPCClusterPoint,1) | |
117 | }; | |
118 | ||
119 | ||
120 | class AliTPCExactPoint : public TObject{ | |
121 | public: | |
122 | AliTPCExactPoint(){fEZ=fEY=fEAngleZ=fEAngleY=fEAmp=fEPrim=fTrackID=0;} | |
123 | Float_t fEZ; // current "exact" position according simulation | |
124 | Float_t fEY; // current "exact" position according simulation | |
41cfdca1 | 125 | Float_t fEX; // x poistion of the cluster |
1c53abe2 | 126 | Float_t fEAngleZ; // angle Z |
127 | Float_t fEAngleY; // angle Y | |
128 | Float_t fEAmp; // total charge deposited in row | |
129 | Float_t fEPrim; // primary charge deposited in row | |
130 | Int_t fTrackID; // id of the track | |
41cfdca1 | 131 | Int_t fRow; // row |
132 | Int_t fSec; //sector | |
1c53abe2 | 133 | ClassDef(AliTPCExactPoint,1) |
134 | }; | |
135 | ||
136 | ||
137 | class AliTPCTrackPoint: public TObject{ | |
138 | public: | |
41cfdca1 | 139 | AliTPCTrackPoint(){} |
140 | // AliTPCClusterPoint & GetCPoint(){return fCPoint;} | |
1c53abe2 | 141 | AliTPCTrackerPoint & GetTPoint(){return fTPoint;} |
41cfdca1 | 142 | AliTPCclusterMI & GetCPoint(){return fCPoint;} |
1c53abe2 | 143 | public: |
41cfdca1 | 144 | // AliTPCClusterPoint fCPoint; |
145 | //Char_t fIsShared; | |
1c53abe2 | 146 | AliTPCTrackerPoint fTPoint; |
41cfdca1 | 147 | AliTPCclusterMI fCPoint; |
1c53abe2 | 148 | ClassDef(AliTPCTrackPoint,1) |
149 | }; | |
150 | ||
41cfdca1 | 151 | class AliTPCTrackPoint2: public AliTPCTrackPoint{ |
152 | public: | |
153 | AliTPCTrackPoint2(){} | |
154 | Float_t fGX; //global poition of the point | |
155 | Float_t fGY; //global poition of the point | |
156 | Float_t fGZ; //global poition of the point | |
157 | // | |
158 | Float_t fDY; //distortion of the clusters from the global helix (3 point interpolation) | |
159 | Float_t fDZ; //distortion of the clusters from the global helix (3 point interpolation) | |
160 | // | |
161 | Float_t fDYU; //derivation in y up | |
162 | Float_t fDYD; //distortion of y down | |
163 | // | |
164 | Float_t fDZU; //derivation in y up | |
165 | Float_t fDZD; //distortion of y down | |
166 | // | |
167 | Float_t fDDY; //derivation in y,z up-down | |
168 | Float_t fDDZ; //derivation in y,z up-down | |
169 | // | |
170 | Int_t fID; //id of the corresponding track | |
171 | Int_t fLab; //MC label of the track | |
172 | public: | |
173 | ClassDef(AliTPCTrackPoint2,1) | |
174 | }; | |
175 | ||
176 | ||
177 | ||
1c53abe2 | 178 | |
179 | class AliTPCTrackPointRef: public AliTPCTrackPoint{ | |
180 | public: | |
181 | AliTPCExactPoint & GetExactPoint(){return fEPoint;} | |
182 | AliTPCExactPoint & GetNearestPoint(){return fNPoint;} | |
183 | public: | |
184 | AliTPCExactPoint fEPoint; //exact point belonging to track | |
185 | AliTPCExactPoint fNPoint; //nearest point | |
186 | ClassDef(AliTPCTrackPointRef,1) | |
187 | }; | |
188 | ||
189 | ||
c9787763 | 190 | #endif //ALICOMPLEXCLUSTER_H |