]>
Commit | Line | Data |
---|---|---|
c2440081 | 1 | //-*- Mode: C++ -*- |
90f0bce8 | 2 | // $Id$ |
c2440081 | 3 | #ifndef ALIHLTCOMPHUFFMANCODEDATA_H |
4 | #define ALIHLTCOMPHUFFMANCODEDATA_H | |
5 | ||
6 | /************************************************************************** | |
7 | * This file is property of and copyright by the ALICE HLT Project * | |
8 | * All rights reserved. * | |
9 | * * | |
10 | * Primary Author: Jenny Wagner (jwagner@cern.ch) * | |
11 | * * | |
12 | * Permission to use, copy, modify and distribute this software and its * | |
13 | * documentation strictly for non-commercial purposes is hereby granted * | |
14 | * without fee, provided that the above copyright notice appears in all * | |
15 | * copies and that both the copyright notice and this permission notice * | |
16 | * appear in the supporting documentation. The authors make no claims * | |
17 | * about the suitability of this software for any purpose. It is * | |
18 | * provided "as is" without express or implied warranty. * | |
19 | **************************************************************************/ | |
20 | ||
21 | /** @file AliHLTCOMPHuffmanCodeData.h | |
22 | @author Jenny Wagner | |
23 | @date 29-08-2007 | |
24 | @brief Data class containing the Huffman code table of ADV-values | |
25 | */ | |
26 | ||
27 | #include "AliHLTLogging.h" | |
28 | #include "AliHLTDataTypes.h" | |
29 | ||
30 | // typedef for the final HuffmanCodeArray | |
31 | /** @class AliHLTCOMPHuffmanCodeData | |
32 | @author Jenny Wagner | |
33 | @date 29-08-2007 | |
34 | @brief The Huffman Code Data containing the struture of the Huffman code table | |
35 | */ | |
36 | class AliHLTCOMPHuffmanCodeData : public TObject, public AliHLTLogging | |
37 | { | |
38 | public: | |
39 | ||
40 | /** typedef for the structs in Huffman code table */ | |
bf7a3243 | 41 | typedef struct AliHLTCOMPHuffmanCodeStruct |
c2440081 | 42 | { |
bf7a3243 | 43 | Int_t famplitude; // ADC-value |
44 | AliHLTUInt64_t fhuffmancode; // maximal possible codelength: 64 bits | |
af2ed151 | 45 | UInt_t fvalidcodelength; // validcodelength needed as code is of variable length!! |
bf7a3243 | 46 | } AliHLTCOMPHuffmanCodeStruct; |
c2440081 | 47 | |
48 | /** standard constructor */ | |
49 | AliHLTCOMPHuffmanCodeData(); | |
50 | ||
51 | /** destructor */ | |
52 | virtual ~AliHLTCOMPHuffmanCodeData(); | |
53 | ||
54 | /** convert Huffman code struct into class instance of HuffmanCodeData */ | |
bf7a3243 | 55 | void SetHuffmanCodeData(AliHLTCOMPHuffmanCodeStruct const& codetableentry); |
c2440081 | 56 | |
57 | /** return Huffman code struct */ | |
bf7a3243 | 58 | AliHLTCOMPHuffmanCodeStruct* GetHuffmanCodeData(AliHLTCOMPHuffmanCodeStruct* codetableentry); |
c2440081 | 59 | |
60 | private: | |
61 | ||
62 | /** copy constructor prohibited */ | |
63 | AliHLTCOMPHuffmanCodeData(const AliHLTCOMPHuffmanCodeData&); | |
64 | ||
65 | /** assignment operator prohibited */ | |
66 | AliHLTCOMPHuffmanCodeData& operator=(const AliHLTCOMPHuffmanCodeData&); | |
67 | ||
bf7a3243 | 68 | Int_t famplitude; // 10-bit ADC-value |
69 | AliHLTUInt64_t fhuffmancode; // respective Huffman code with maximal possible codelength: 64 bits | |
70 | Int_t fvalidcodelength; // variable to store the respective valid codelength | |
c2440081 | 71 | |
72 | ClassDef(AliHLTCOMPHuffmanCodeData, 1) | |
73 | ||
74 | }; | |
75 | #endif | |
76 |