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