]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCDefinitions.h
added new helper components to libAliHLTUtil (EsdCollector and AliHLTOUTPublisher...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDefinitions.h
1 // XEmacs -*-C++-*-
2 // @(#) $Id$
3
4 #ifndef ALIHLTTPCDEFINITIONS_H
5 #define ALIHLTTPCDEFINITIONS_H
6 //* This file is property of and copyright by the ALICE HLT Project        * 
7 //* ALICE Experiment at CERN, All rights reserved.                         *
8 //* See cxx source for full Copyright notice                               *
9
10 #include "AliHLTDataTypes.h"
11 #include "Rtypes.h"
12
13 /**
14  * @class AliHLTTPCDefinitions
15  * Data type definitions for the libAliHLTTPC library.
16  * 
17  * @ingroup alihlt_tpc
18  */
19 class AliHLTTPCDefinitions
20 {
21 public:
22       AliHLTTPCDefinitions();
23       virtual ~AliHLTTPCDefinitions();
24
25         static AliHLTUInt8_t GetMinSliceNr( const AliHLTComponentBlockData& block )
26                 {
27                 return (AliHLTUInt8_t)( (block.fSpecification & 0x00FF0000) >> 16 );
28                 }
29         static AliHLTUInt8_t GetMinSliceNr( ULong_t spec )
30                 {
31                 return (AliHLTUInt8_t)( (spec & 0x00FF0000) >> 16 );
32                 }
33         static AliHLTUInt8_t GetMaxSliceNr( const AliHLTComponentBlockData& block )
34                 {
35                 return (AliHLTUInt8_t)( (block.fSpecification & 0xFF000000) >> 24 );
36                 }
37         static AliHLTUInt8_t GetMaxSliceNr( ULong_t spec )
38                 {
39                 return (AliHLTUInt8_t)( (spec & 0xFF000000) >> 24 );
40                 }
41         static AliHLTUInt8_t GetMinPatchNr( const AliHLTComponentBlockData& block )
42                 {
43                 return (AliHLTUInt8_t)( (block.fSpecification & 0x000000FF) );
44                 }
45         static AliHLTUInt8_t GetMinPatchNr( ULong_t spec )
46                 {
47                 return (AliHLTUInt8_t)( (spec & 0x000000FF) );
48                 }
49         static AliHLTUInt8_t GetMaxPatchNr( const AliHLTComponentBlockData& block )
50                 {
51                 return (AliHLTUInt8_t)( (block.fSpecification & 0x0000FF00) >> 8 );
52                 }
53         static AliHLTUInt8_t GetMaxPatchNr( ULong_t spec )
54                 {
55                 return (AliHLTUInt8_t)( (spec & 0x0000FF00) >> 8 );
56                 }
57         
58         static AliHLTUInt32_t EncodeDataSpecification( AliHLTUInt8_t minSliceNr, 
59                                                 AliHLTUInt8_t maxSliceNr,
60                                                 AliHLTUInt8_t minPatchNr,
61                                                 AliHLTUInt8_t maxPatchNr )
62                 {
63                 return ((maxSliceNr & 0xFF) << 24) | ((minSliceNr & 0xFF) << 16) | ((maxPatchNr & 0xFF) << 8) | ((minPatchNr & 0xFF));
64                 }
65
66   /** DDL packed RAW data */
67   static const AliHLTComponentDataType fgkDDLPackedRawDataType;         // see above
68   /** DDL entropy encoded data */
69   static const AliHLTComponentDataType fgkDDLEncodedEntropyRawDataType; // see above
70   /** packed RAW data */
71   static const AliHLTComponentDataType fgkPackedRawDataType;            // see above
72   /** unpacked RAW data */
73   static const AliHLTComponentDataType fgkUnpackedRawDataType;          // see above
74   /** cluster data */
75   static const AliHLTComponentDataType fgkClustersDataType;             // see above
76   /** track segments in local coordinates */
77   static const AliHLTComponentDataType fgkTrackSegmentsDataType;        // see above
78   /** tracks in global koordinates */
79   static const AliHLTComponentDataType fgkTracksDataType;               // see above
80   /** vertex data structure */
81   static const AliHLTComponentDataType fgkVertexDataType;               // see above
82
83   // Cluster & Tracks model data
84   /** cluster tracks model data type */
85   static const AliHLTComponentDataType fgkClusterTracksModelDataType;          // see above
86   /** remaining clusters model data type */
87   static const AliHLTComponentDataType fgkRemainingClustersModelDataType;      // see above
88   /** cluster tracks compressed data type */
89   static const AliHLTComponentDataType fgkClusterTracksCompressedDataType;     // see above
90   /** remaining clusters compressed data type */
91   static const AliHLTComponentDataType fgkRemainingClustersCompressedDataType; // see above
92
93   // Calibration data
94   /** pedestal calibration data */
95   static const AliHLTComponentDataType fgkCalibPedestalDataType;   // see above
96   /** signal calibration data */
97   static const AliHLTComponentDataType fgkCalibPulserDataType;     // see above
98   /** central electrode calibration data */
99   static const AliHLTComponentDataType fgkCalibCEDataType;         // see above
100
101   ClassDef(AliHLTTPCDefinitions, 2)
102 };
103
104 #endif