removing old CF configurations, ids redirected to HWCF; global tracking option enable...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCRawCluster.h
CommitLineData
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 */
13struct 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};
87typedef struct AliHLTTPCRawCluster AliHLTTPCRawCluster;
88
89struct 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};
99typedef struct AliHLTTPCRawClusterData AliHLTTPCRawClusterData;
100
101#endif