]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCACompressedInputData.h
Update master to aliroot
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCACompressedInputData.h
1 // $Id$
2 #ifndef ALIHLTTPCCACOMPRESSEDINPUTDATA_H
3 #define ALIHLTTPCCACOMPRESSEDINPUTDATA_H
4
5 #ifdef HLTCA_STANDALONE
6 #include "AliHLTTPCRootTypes.h"
7 #else
8 #include "Rtypes.h"
9 #endif
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