]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCACompressedInputData.h
bug fix: reconstruction crash when the output buffer size exceed
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCACompressedInputData.h
1 #ifndef ALIHLTTPCCACOMPRESSEDINPUTDATA_H
2 #define ALIHLTTPCCACOMPRESSEDINPUTDATA_H
3
4 #include "AliHLTTPCRootTypes.h"
5
6
7 /**
8  * @struct AliHLTTPCCACompressedCluster
9  * Data structure to pack the TPC clusters
10  * before send them to the TPCCASliceTracker component.
11  * Data is packed in 8 bytes: fP0={p03,..,p00}, fP1={p13,..,p10} 
12  * X cluster(    p13,p03) = rowX+( ((fP1&0xF000)>>16)+(fP0>>24)-32768. )*1.e-4
13  * Y cluster(p02,p01,p00) = ( (fP0&0xFFF) - 8388608. )*1.e-4
14  * Z cluster(p12,p11,p10) = ( (fP1&0xFFF) - 8388608. )*1.e-4
15  */
16 struct AliHLTTPCCACompressedCluster{
17   UInt_t fP0;       // First  4 bytes of the packed data
18   UInt_t fP1;       // Second 4 bytes of the packed data
19 };
20 typedef struct AliHLTTPCCACompressedCluster AliHLTTPCCACompressedCluster;
21
22
23 /**
24  * @struct AliHLTTPCCACompressedClusterRow
25  * Data structure to pack the TPC clusters
26  * before send them to the TPCCASliceTracker component.
27  * contains the PadRow information
28  */
29 struct AliHLTTPCCACompressedClusterRow
30 {
31   UShort_t fSlicePatchRowID; // packed slice, patch and row number 
32                              // ((slice<<10)+(patch<<6)+row)
33                              // the row number is local withing the patch
34   UShort_t fNClusters;  // number of clusters in the row
35
36 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
37   AliHLTTPCCACompressedCluster  fClusters[1]; // array of assigned clusters  
38 #else
39   AliHLTTPCCACompressedCluster  fClusters[0]; // array of assigned clusters 
40 #endif
41 };
42 typedef struct AliHLTTPCCACompressedClusterRow AliHLTTPCCACompressedClusterRow;
43
44
45 #endif