]>
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" |
c9787763 | 10 | |
11 | class AliComplexCluster : public TObject { | |
12 | public: | |
13 | Int_t fTracks[3];//labels of overlapped tracks | |
14 | Float_t fX ; //Y of cluster | |
15 | Float_t fY ; //Z of cluster | |
16 | Float_t fQ ; //Q of cluster (in ADC counts) | |
17 | Float_t fSigmaX2; //Sigma Y square of cluster | |
18 | Float_t fSigmaY2; //Sigma Z square of cluster | |
19 | Float_t fSigmaXY; // XY moment | |
20 | Float_t fArea; //area of cluster | |
21 | Float_t fMax; //amplitude at maximum | |
22 | public: | |
23 | AliComplexCluster() { | |
24 | fTracks[0]=fTracks[1]=fTracks[2]=0; | |
1c53abe2 | 25 | fX=fY=fQ=fSigmaX2=fSigmaY2=fSigmaXY=fArea=fMax=0.; |
c9787763 | 26 | } |
27 | virtual ~AliComplexCluster() {;} | |
28 | Bool_t IsSortable() const; | |
5c84b1d4 | 29 | Int_t Compare(const TObject *o) const; |
c9787763 | 30 | ClassDef(AliComplexCluster,1) // Cluster manager |
31 | }; | |
32 | ||
33 | class AliDigitCluster : public AliComplexCluster { | |
34 | public: | |
35 | Int_t fNx; //number of accepted x bins | |
36 | Int_t fNy; //number of accepted y bins | |
37 | Float_t fMaxX; //maximum x bin | |
38 | Float_t fMaxY; //maximum y bin | |
39 | public: | |
40 | ClassDef(AliDigitCluster,1) // Tclusters | |
41 | }; | |
42 | ||
1c53abe2 | 43 | |
44 | ||
45 | class AliTPCTrackerPoint { | |
46 | private: | |
47 | Short_t fTX; // x position of the cluster in cm - 10 mum prec | |
48 | Short_t fTZ; // current prolongation in Z in cm - 10 mum prec. | |
49 | Short_t fTY; // current prolongation in Y in cm - 10 mum prec. | |
50 | Char_t fTAngleZ; // angle | |
51 | Char_t fTAngleY; // angle | |
52 | public: | |
53 | AliTPCTrackerPoint(){fTX=0; fTY=0; fTZ=0; fTAngleZ=0; fTAngleY=0;} | |
54 | inline Float_t GetX() {return (fTX*0.01);} | |
55 | inline Float_t GetZ() {return (fTZ*0.01);} | |
56 | inline Float_t GetY() {return (fTY*0.01);} | |
57 | inline Float_t GetAngleZ() {return (Float_t(fTAngleZ)*0.02);} | |
58 | inline Float_t GetAngleY() {return (Float_t(fTAngleY)*0.02);} | |
59 | // | |
60 | void SetX(Float_t x){ fTX = Short_t(TMath::Nint(x*100.));} | |
61 | void SetY(Float_t y){ fTY = Short_t(TMath::Nint(y*100.));} | |
62 | void SetZ(Float_t z){ fTZ = Short_t(TMath::Nint(z*100.));} | |
63 | void SetAngleZ(Float_t anglez) {fTAngleZ = Char_t(TMath::Nint(anglez*50.));} | |
64 | void SetAngleY(Float_t angley) {fTAngleY = Char_t(TMath::Nint(angley*50.));} | |
65 | // | |
66 | public: | |
67 | ClassDef(AliTPCTrackerPoint,1) | |
c9787763 | 68 | }; |
69 | ||
1c53abe2 | 70 | class AliTPCClusterPoint { |
71 | private: | |
72 | Short_t fCZ; // current cluster position Z in cm - 100 mum precision | |
73 | Short_t fCY; // current cluster position Y in cm - 100 mum precision | |
74 | UChar_t fErrZ; // z error estimate - in mm - 50 mum precision | |
75 | UChar_t fErrY; // y error estimate - in mm - 50 mum precision | |
76 | UChar_t fSigmaZ; // shape Z - normalised shape - normaliziation 1 - precision 2 percent | |
77 | UChar_t fSigmaY; // shape Y - normalised shape - normaliziation 1 - precision 2 percent | |
78 | UShort_t fQ; // total charge in cluster | |
79 | UShort_t fMax; // charge at maximum | |
80 | Char_t fCType; // type of the cluster | |
81 | public: | |
82 | AliTPCClusterPoint(){fCZ=fCY=fSigmaZ=fSigmaY=fErrZ=fErrY=fQ=fMax=fCType=0;} | |
83 | inline Float_t GetZ() {return (fCZ*0.01);} | |
84 | inline Float_t GetY() {return (fCY*0.01);} | |
85 | inline Float_t GetErrZ() {return (fErrZ*0.005);} | |
86 | inline Float_t GetErrY() {return (fErrY*0.005);} | |
87 | inline Float_t GetSigmaZ() {return (fSigmaZ*0.02);} | |
88 | inline Float_t GetSigmaY() {return (fSigmaY*0.02);} | |
89 | inline Int_t GetType() {return fCType;} | |
90 | inline Int_t GetMax() {return fMax;} | |
91 | inline Float_t GetQ() {return fQ;} | |
92 | ||
93 | // | |
94 | void SetY(Float_t y){ fCY = Short_t(TMath::Nint(y*100.));} | |
95 | void SetZ(Float_t z){ fCZ = Short_t(TMath::Nint(z*100.));} | |
96 | void SetErrZ(Float_t errz) {fErrZ = UChar_t(TMath::Nint(errz*200.));} | |
97 | void SetErrY(Float_t erry) {fErrY = UChar_t(TMath::Nint(erry*200.));} | |
98 | void SetSigmaZ(Float_t sigmaz) {fSigmaZ = UChar_t(TMath::Nint(sigmaz*50.));} | |
99 | void SetSigmaY(Float_t sigmay) {fSigmaY = UChar_t(TMath::Nint(sigmay*50.));} | |
100 | void SetQ(Float_t q) {fQ = UShort_t(q);} | |
101 | void SetMax(Float_t max) {fMax = UShort_t(max);} | |
102 | void SetType(Char_t type) {fCType = type;} | |
103 | ||
104 | // | |
105 | public: | |
106 | ClassDef(AliTPCClusterPoint,1) | |
107 | }; | |
108 | ||
109 | ||
110 | class AliTPCExactPoint : public TObject{ | |
111 | public: | |
112 | AliTPCExactPoint(){fEZ=fEY=fEAngleZ=fEAngleY=fEAmp=fEPrim=fTrackID=0;} | |
113 | Float_t fEZ; // current "exact" position according simulation | |
114 | Float_t fEY; // current "exact" position according simulation | |
115 | Float_t fEAngleZ; // angle Z | |
116 | Float_t fEAngleY; // angle Y | |
117 | Float_t fEAmp; // total charge deposited in row | |
118 | Float_t fEPrim; // primary charge deposited in row | |
119 | Int_t fTrackID; // id of the track | |
120 | ClassDef(AliTPCExactPoint,1) | |
121 | }; | |
122 | ||
123 | ||
124 | class AliTPCTrackPoint: public TObject{ | |
125 | public: | |
126 | AliTPCTrackPoint(){ fIsShared = kFALSE;} | |
127 | AliTPCClusterPoint & GetCPoint(){return fCPoint;} | |
128 | AliTPCTrackerPoint & GetTPoint(){return fTPoint;} | |
129 | public: | |
130 | AliTPCClusterPoint fCPoint; | |
131 | AliTPCTrackerPoint fTPoint; | |
132 | Bool_t fIsShared; // indicate sharing of the point between several tracks | |
133 | ClassDef(AliTPCTrackPoint,1) | |
134 | }; | |
135 | ||
136 | ||
137 | class AliTPCTrackPointRef: public AliTPCTrackPoint{ | |
138 | public: | |
139 | AliTPCExactPoint & GetExactPoint(){return fEPoint;} | |
140 | AliTPCExactPoint & GetNearestPoint(){return fNPoint;} | |
141 | public: | |
142 | AliTPCExactPoint fEPoint; //exact point belonging to track | |
143 | AliTPCExactPoint fNPoint; //nearest point | |
144 | ClassDef(AliTPCTrackPointRef,1) | |
145 | }; | |
146 | ||
147 | ||
c9787763 | 148 | #endif //ALICOMPLEXCLUSTER_H |