2 #ifndef ALIHLTTPCRAWCLUSTER_H
3 #define ALIHLTTPCRAWCLUSTER_H
5 #include "AliHLTTPCRootTypes.h"
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
13 struct AliHLTTPCRawCluster {
24 AliHLTTPCRawCluster(short PadRow,
29 unsigned short Charge,
41 AliHLTTPCRawCluster(const AliHLTTPCRawCluster& other)
42 : fPadRow(other.fPadRow)
45 , fSigmaY2(other.fSigmaY2)
46 , fSigmaZ2(other.fSigmaZ2)
47 , fCharge(other.fCharge)
51 AliHLTTPCRawCluster& operator=(const AliHLTTPCRawCluster& other) {
52 if (this==&other) return *this;
53 this->~AliHLTTPCRawCluster();
54 new (this) AliHLTTPCRawCluster(other);
59 this->~AliHLTTPCRawCluster();
60 new (this) AliHLTTPCRawCluster;
68 unsigned short fCharge;
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;}
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;}
84 void SetCharge(UShort_t charge) {fCharge=charge;}
85 void SetQMax(UShort_t qmax) {fQMax=qmax;}
87 typedef struct AliHLTTPCRawCluster AliHLTTPCRawCluster;
89 struct AliHLTTPCRawClusterData
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
96 AliHLTTPCRawCluster fClusters[0]; // array of clusters
99 typedef struct AliHLTTPCRawClusterData AliHLTTPCRawClusterData;