]>
Commit | Line | Data |
---|---|---|
751d16ac | 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 |