]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliComplexCluster.h
MC-dependent part of AliRun extracted in AliMC (F.Carminati)
[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$ */
7
8#include "TObject.h"
1c53abe2 9#include "TMath.h"
41cfdca1 10#include "AliTPCclusterMI.h"
c9787763 11
12class AliComplexCluster : public TObject {
13public:
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
23public:
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
34class AliDigitCluster : public AliComplexCluster {
35public:
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
40public:
41 ClassDef(AliDigitCluster,1) // Tclusters
42};
43
1c53abe2 44
45
46class 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 86class 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
120class 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
137class 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 151class 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
179class 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