]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliComplexCluster.h
Pad gains from CDB were not used in the reconstruction of the raw data! Further check...
[u/mrichter/AliRoot.git] / TPC / AliComplexCluster.h
CommitLineData
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$ */
7fc8a284 7//
8// this is a class
9// AliComplexCluster
10// by M. Ivanov
11//
c9787763 12
13#include "TObject.h"
1c53abe2 14#include "TMath.h"
41cfdca1 15#include "AliTPCclusterMI.h"
018a927a 16//
c9787763 17
18class AliComplexCluster : public TObject {
835b3d81 19 friend class AliTPC;
20 friend class AliTPCClusterFinder;
21 friend class AliClusters;
6d75e4b6 22 friend class AliTPCFast;
7fc8a284 23public:
835b3d81 24
25 AliComplexCluster() {
26 fTracks[0]=fTracks[1]=fTracks[2]=0;
27 fX=fY=fQ=fSigmaX2=fSigmaY2=fSigmaXY=fArea=fMax=0.;
28 }
29 virtual ~AliComplexCluster() {;}
30 Bool_t IsSortable() const;
31 Int_t Compare(const TObject *o) const;
75bb2a28 32 // the following getters are needed by HLT
33 // please dont remove... C. Loizides
4fc2da50 34 Int_t GetTrack(Int_t i)const {return fTracks[i];} //labels of overlapped tracks
35 Float_t GetX()const {return fX;}
36 Float_t GetY()const {return fY;}
37 Float_t GetQ()const {return fQ;}
38 Float_t GetSigmaX2()const {return fSigmaX2;}
39 Float_t GetSigmaY2()const {return fSigmaY2;}
40 Float_t GetSigmaXY()const {return fSigmaXY;}
41 Float_t GetArea()const {return fArea;}
42 Float_t GetMax()const {return fMax;}
835b3d81 43private:
c9787763 44 Int_t fTracks[3];//labels of overlapped tracks
45 Float_t fX ; //Y of cluster
46 Float_t fY ; //Z of cluster
47 Float_t fQ ; //Q of cluster (in ADC counts)
48 Float_t fSigmaX2; //Sigma Y square of cluster
49 Float_t fSigmaY2; //Sigma Z square of cluster
50 Float_t fSigmaXY; // XY moment
51 Float_t fArea; //area of cluster
52 Float_t fMax; //amplitude at maximum
835b3d81 53
54 ClassDef(AliComplexCluster,1)
55 // Cluster manager
c9787763 56};
57
1c53abe2 58
59
60class AliTPCTrackerPoint {
7fc8a284 61 friend class AliTPCtrackerMI;
62 friend class AliTPCseed;
1c53abe2 63 public:
41cfdca1 64
ed23b388 65 AliTPCTrackerPoint():
66 fTX(0),
67 fTZ(0),
68 fTY(0),
69 fTAngleZ(0),
70 fTAngleY(0),
71 fSigmaZ(0),
72 fSigmaY(0),
73 fErrZ(0),
74 fErrY(0),
75 fIsShared(0){}
f77f13c8 76 virtual ~AliTPCTrackerPoint(){}
835b3d81 77 Float_t GetX() const {return (fTX*0.01);}
78 Float_t GetZ() const {return (fTZ*0.01);}
79 Float_t GetY() const {return (fTY*0.01);}
80 Float_t GetAngleZ() const {return (Float_t(fTAngleZ)*0.02);}
81 Float_t GetAngleY() const {return (Float_t(fTAngleY)*0.02);}
1c53abe2 82 //
835b3d81 83 void SetX(Float_t x) { fTX = Short_t(TMath::Nint(x*100.));}
84 void SetY(Float_t y) { fTY = Short_t(TMath::Nint(y*100.));}
85 void SetZ(Float_t z) { fTZ = Short_t(TMath::Nint(z*100.));}
1c53abe2 86 void SetAngleZ(Float_t anglez) {fTAngleZ = Char_t(TMath::Nint(anglez*50.));}
87 void SetAngleY(Float_t angley) {fTAngleY = Char_t(TMath::Nint(angley*50.));}
835b3d81 88 Float_t GetSigmaZ() const {return (fSigmaZ*0.02);}
89 Float_t GetSigmaY() const {return (fSigmaY*0.02);}
90 Float_t GetErrZ() const {return (fErrZ*0.005);}
91 Float_t GetErrY() const {return (fErrY*0.005);}
41cfdca1 92 void SetErrZ(Float_t errz) {fErrZ = UChar_t(TMath::Nint(errz*200.));}
93 void SetErrY(Float_t erry) {fErrY = UChar_t(TMath::Nint(erry*200.));}
94
95 void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));}
96 void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));}
1c53abe2 97 //
835b3d81 98 private:
99 Short_t fTX; // x position of the cluster in cm - 10 mum prec
100 Short_t fTZ; // current prolongation in Z in cm - 10 mum prec.
101 Short_t fTY; // current prolongation in Y in cm - 10 mum prec.
102 Char_t fTAngleZ; // angle
103 Char_t fTAngleY; // angle
104 UShort_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent
105 UShort_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent
106 UShort_t fErrZ; // z error estimate - in mm - 50 mum precision
107 UShort_t fErrY; // y error estimate - in mm - 50 mum precision
7fc8a284 108 Char_t fIsShared; // indicate sharing of the point between several tracks
835b3d81 109
1c53abe2 110 ClassDef(AliTPCTrackerPoint,1)
c9787763 111};
112
1c53abe2 113class AliTPCClusterPoint {
1c53abe2 114 public:
41cfdca1 115 AliTPCClusterPoint(){fCZ=fCY=fSigmaZ=fSigmaY=fQ=fMax=fCType=0;}
f77f13c8 116 virtual ~AliTPCClusterPoint(){}
7fc8a284 117 Float_t GetZ() const {return (fCZ*0.01);}
118 Float_t GetY() const {return (fCY*0.01);}
119 Float_t GetSigmaZ() const {return (fSigmaZ*0.02);}
120 Float_t GetSigmaY() const {return (fSigmaY*0.02);}
121 Int_t GetType() const {return fCType;}
122 Int_t GetMax() const {return fMax;}
123 Float_t GetQ() const {return fQ;}
1c53abe2 124
125 //
126 void SetY(Float_t y){ fCY = Short_t(TMath::Nint(y*100.));}
127 void SetZ(Float_t z){ fCZ = Short_t(TMath::Nint(z*100.));}
1c53abe2 128 void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));}
129 void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));}
130 void SetQ(Float_t q) {fQ = UShort_t(q);}
131 void SetMax(Float_t max) {fMax = UShort_t(max);}
132 void SetType(Char_t type) {fCType = type;}
835b3d81 133 private:
134 Short_t fCZ; // current cluster position Z in cm - 100 mum precision
135 Short_t fCY; // current cluster position Y in cm - 100 mum precision
136 UChar_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent
137 UChar_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent
138 UShort_t fQ; // total charge in cluster
139 UShort_t fMax; // charge at maximum
140 Char_t fCType; // type of the cluster
1c53abe2 141
142 //
1c53abe2 143 ClassDef(AliTPCClusterPoint,1)
144};
145
146
147class AliTPCExactPoint : public TObject{
7fc8a284 148 friend class AliTPCtrackerMI;
1c53abe2 149 public:
150 AliTPCExactPoint(){fEZ=fEY=fEAngleZ=fEAngleY=fEAmp=fEPrim=fTrackID=0;}
835b3d81 151 private:
1c53abe2 152 Float_t fEZ; // current "exact" position according simulation
153 Float_t fEY; // current "exact" position according simulation
41cfdca1 154 Float_t fEX; // x poistion of the cluster
1c53abe2 155 Float_t fEAngleZ; // angle Z
156 Float_t fEAngleY; // angle Y
157 Float_t fEAmp; // total charge deposited in row
158 Float_t fEPrim; // primary charge deposited in row
159 Int_t fTrackID; // id of the track
41cfdca1 160 Int_t fRow; // row
161 Int_t fSec; //sector
1c53abe2 162 ClassDef(AliTPCExactPoint,1)
163};
164
165
166class AliTPCTrackPoint: public TObject{
835b3d81 167 friend class AliTPCtrackerMI;
7fc8a284 168 public:
41cfdca1 169 AliTPCTrackPoint(){}
170 // AliTPCClusterPoint & GetCPoint(){return fCPoint;}
1c53abe2 171 AliTPCTrackerPoint & GetTPoint(){return fTPoint;}
41cfdca1 172 AliTPCclusterMI & GetCPoint(){return fCPoint;}
835b3d81 173 private:
41cfdca1 174 // AliTPCClusterPoint fCPoint;
175 //Char_t fIsShared;
835b3d81 176 AliTPCTrackerPoint fTPoint; // track point
177 AliTPCclusterMI fCPoint; // cluster point
1c53abe2 178 ClassDef(AliTPCTrackPoint,1)
179};
180
41cfdca1 181class AliTPCTrackPoint2: public AliTPCTrackPoint{
835b3d81 182 friend class AliTPCtrackerMI;
7fc8a284 183 public:
41cfdca1 184 AliTPCTrackPoint2(){}
835b3d81 185 private:
41cfdca1 186 Float_t fGX; //global poition of the point
187 Float_t fGY; //global poition of the point
188 Float_t fGZ; //global poition of the point
189 //
190 Float_t fDY; //distortion of the clusters from the global helix (3 point interpolation)
191 Float_t fDZ; //distortion of the clusters from the global helix (3 point interpolation)
192 //
193 Float_t fDYU; //derivation in y up
194 Float_t fDYD; //distortion of y down
195 //
196 Float_t fDZU; //derivation in y up
197 Float_t fDZD; //distortion of y down
198 //
199 Float_t fDDY; //derivation in y,z up-down
200 Float_t fDDZ; //derivation in y,z up-down
201 //
202 Int_t fID; //id of the corresponding track
203 Int_t fLab; //MC label of the track
41cfdca1 204 ClassDef(AliTPCTrackPoint2,1)
205};
206
207
208
1c53abe2 209
210class AliTPCTrackPointRef: public AliTPCTrackPoint{
835b3d81 211 friend class AliTPCtrackerMI;
7fc8a284 212 public:
1c53abe2 213 AliTPCExactPoint & GetExactPoint(){return fEPoint;}
214 AliTPCExactPoint & GetNearestPoint(){return fNPoint;}
835b3d81 215 private:
1c53abe2 216 AliTPCExactPoint fEPoint; //exact point belonging to track
217 AliTPCExactPoint fNPoint; //nearest point
218 ClassDef(AliTPCTrackPointRef,1)
219};
220
221
c9787763 222#endif //ALICOMPLEXCLUSTER_H