]>
Commit | Line | Data |
---|---|---|
5e75f4e0 | 1 | // $Id$ |
2 | #ifndef ALIHLTTPCRAWCLUSTER_H | |
3 | #define ALIHLTTPCRAWCLUSTER_H | |
4 | ||
7f85a87e | 5 | #include "Rtypes.h" |
5e75f4e0 | 6 | |
7 | /** | |
8 | * @struct AliHLTTPCRawCluster | |
9 | * Primitive data of a TPC cluster in raw coordinates. The plan is to store the | |
10 | * data in a compressed format by limiting the resolution of the float values. | |
11 | * @ingroup alihlt_tpc_datastructs | |
12 | */ | |
13 | struct AliHLTTPCRawCluster { | |
26a0a60f | 14 | AliHLTTPCRawCluster() |
15 | : fPadRow(0) | |
16 | , fPad(0.) | |
17 | , fTime(0.) | |
18 | , fSigmaY2(0.) | |
19 | , fSigmaZ2(0.) | |
20 | , fCharge(0) | |
21 | , fQMax(0) | |
22 | {} | |
23 | ||
24 | AliHLTTPCRawCluster(short PadRow, | |
25 | float Pad, | |
26 | float Time, | |
27 | float SigmaY2, | |
28 | float SigmaZ2, | |
29 | unsigned short Charge, | |
30 | unsigned short QMax | |
31 | ) | |
32 | : fPadRow(PadRow) | |
33 | , fPad(Pad) | |
34 | , fTime(Time) | |
35 | , fSigmaY2(SigmaY2) | |
36 | , fSigmaZ2(SigmaZ2) | |
37 | , fCharge(Charge) | |
38 | , fQMax(QMax) | |
39 | {} | |
40 | ||
41 | AliHLTTPCRawCluster(const AliHLTTPCRawCluster& other) | |
42 | : fPadRow(other.fPadRow) | |
43 | , fPad(other.fPad) | |
44 | , fTime(other.fTime) | |
45 | , fSigmaY2(other.fSigmaY2) | |
46 | , fSigmaZ2(other.fSigmaZ2) | |
47 | , fCharge(other.fCharge) | |
48 | , fQMax(other.fQMax) | |
49 | {} | |
50 | ||
51 | AliHLTTPCRawCluster& operator=(const AliHLTTPCRawCluster& other) { | |
52 | if (this==&other) return *this; | |
53 | this->~AliHLTTPCRawCluster(); | |
54 | new (this) AliHLTTPCRawCluster(other); | |
55 | return *this; | |
56 | } | |
57 | ||
58 | void Clear() { | |
59 | this->~AliHLTTPCRawCluster(); | |
60 | new (this) AliHLTTPCRawCluster; | |
61 | } | |
62 | ||
5e75f4e0 | 63 | short fPadRow; |
64 | float fPad; | |
65 | float fTime; | |
66 | float fSigmaY2; | |
67 | float fSigmaZ2; | |
bc9dd10b | 68 | unsigned short fCharge; |
69 | unsigned short fQMax; | |
5e75f4e0 | 70 | |
71 | Int_t GetPadRow() const {return fPadRow;} | |
72 | Float_t GetPad() const {return fPad;} | |
73 | Float_t GetTime() const {return fTime;} | |
74 | Float_t GetSigmaY2() const {return fSigmaY2;} | |
75 | Float_t GetSigmaZ2() const {return fSigmaZ2;} | |
76 | Int_t GetCharge() const {return fCharge;} | |
77 | Int_t GetQMax() const {return fQMax;} | |
78 | ||
79 | void SetPadRow(Short_t padrow) {fPadRow=padrow;} | |
80 | void SetPad(Float_t pad) {fPad=pad;} | |
81 | void SetTime(Float_t time) {fTime=time;} | |
82 | void SetSigmaY2(Float_t sigmaY2) {fSigmaY2=sigmaY2;} | |
83 | void SetSigmaZ2(Float_t sigmaZ2) {fSigmaZ2=sigmaZ2;} | |
bc9dd10b | 84 | void SetCharge(UShort_t charge) {fCharge=charge;} |
85 | void SetQMax(UShort_t qmax) {fQMax=qmax;} | |
5e75f4e0 | 86 | }; |
87 | typedef struct AliHLTTPCRawCluster AliHLTTPCRawCluster; | |
88 | ||
89 | struct AliHLTTPCRawClusterData | |
90 | { | |
91 | UInt_t fVersion; // version number | |
92 | UInt_t fCount; // number of clusters | |
93 | #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC) | |
94 | AliHLTTPCRawCluster fClusters[1]; // array of clusters | |
95 | #else | |
96 | AliHLTTPCRawCluster fClusters[0]; // array of clusters | |
97 | #endif | |
98 | }; | |
99 | typedef struct AliHLTTPCRawClusterData AliHLTTPCRawClusterData; | |
100 | ||
101 | #endif |