]>
Commit | Line | Data |
---|---|---|
c2f1b4fb | 1 | // $Id$ |
751d16ac | 2 | #ifndef ALIHLTTPCCACOMPRESSEDINPUTDATA_H |
3 | #define ALIHLTTPCCACOMPRESSEDINPUTDATA_H | |
4 | ||
9a3194d4 | 5 | #ifdef HLTCA_STANDALONE |
6 | #include "AliHLTTPCRootTypes.h" | |
7 | #else | |
c2f1b4fb | 8 | #include "Rtypes.h" |
9a3194d4 | 9 | #endif |
751d16ac | 10 | |
11 | /** | |
12 | * @struct AliHLTTPCCACompressedCluster | |
13 | * Data structure to pack the TPC clusters | |
14 | * before send them to the TPCCASliceTracker component. | |
15 | * Data is packed in 8 bytes: fP0={p03,..,p00}, fP1={p13,..,p10} | |
16 | * X cluster( p13,p03) = rowX+( ((fP1&0xF000)>>16)+(fP0>>24)-32768. )*1.e-4 | |
17 | * Y cluster(p02,p01,p00) = ( (fP0&0xFFF) - 8388608. )*1.e-4 | |
18 | * Z cluster(p12,p11,p10) = ( (fP1&0xFFF) - 8388608. )*1.e-4 | |
19 | */ | |
20 | struct AliHLTTPCCACompressedCluster{ | |
21 | UInt_t fP0; // First 4 bytes of the packed data | |
22 | UInt_t fP1; // Second 4 bytes of the packed data | |
23 | }; | |
24 | typedef struct AliHLTTPCCACompressedCluster AliHLTTPCCACompressedCluster; | |
25 | ||
26 | ||
27 | /** | |
28 | * @struct AliHLTTPCCACompressedClusterRow | |
29 | * Data structure to pack the TPC clusters | |
30 | * before send them to the TPCCASliceTracker component. | |
31 | * contains the PadRow information | |
32 | */ | |
33 | struct AliHLTTPCCACompressedClusterRow | |
34 | { | |
35 | UShort_t fSlicePatchRowID; // packed slice, patch and row number | |
36 | // ((slice<<10)+(patch<<6)+row) | |
37 | // the row number is local withing the patch | |
38 | UShort_t fNClusters; // number of clusters in the row | |
39 | ||
40 | #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC) | |
41 | AliHLTTPCCACompressedCluster fClusters[1]; // array of assigned clusters | |
42 | #else | |
43 | AliHLTTPCCACompressedCluster fClusters[0]; // array of assigned clusters | |
44 | #endif | |
45 | }; | |
46 | typedef struct AliHLTTPCCACompressedClusterRow AliHLTTPCCACompressedClusterRow; | |
47 | ||
48 | ||
49 | #endif |