]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/comp/AliHLTCOMPHuffmanOccurrenceData.h
- load the geometry
[u/mrichter/AliRoot.git] / HLT / comp / AliHLTCOMPHuffmanOccurrenceData.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTCOMPHUFFMANOCCURRENCEDATA_H
4 #define ALIHLTCOMPHUFFMANOCCURRENCEDATA_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   AliHLTCOMPHuffmanOccurrenceData.h
22     @author Jenny Wagner
23     @date   29-08-2007
24     @brief  Data class containing the occurrence table of ADC-values
25 */
26
27 #include "AliHLTLogging.h"
28 #include "AliHLTDataTypes.h"
29
30 // type definitions needed for the Huffman compression
31
32 /** @class   AliHLTCOMPHuffmanOccurrenceData
33     @author Jenny Wagner
34     @date   29-08-2007
35     @brief  The Huffman Occurrence Data containing the struture of the ADC-value occurrence table 
36 */
37 class AliHLTCOMPHuffmanOccurrenceData : public TObject, public AliHLTLogging
38 {
39 public:
40
41   /** typedef for the array data of occurrence data */
42   typedef struct
43   {
44     Int_t famplitude; // ADC-value
45     double fabundance; // occurrence = abundance of ADV-value
46     Int_t fcode;       // internal boolean used to decide whether 0 or 1 is appended to Huffman code
47   } AliHLTCOMPHuffmanDataStruct;
48   
49   /** standard constructor */
50   AliHLTCOMPHuffmanOccurrenceData();
51
52   /** destructor */
53   virtual ~AliHLTCOMPHuffmanOccurrenceData();
54
55   /** convert one entry of occurrence table into a class instance of HuffmanOccurrenceData */
56   void SetHuffmanOccurrenceData(AliHLTCOMPHuffmanDataStruct const& occurrencetableentry);
57
58   /** return one entry of occurrence table */
59   AliHLTCOMPHuffmanDataStruct* GetHuffmanOccurrenceData(AliHLTCOMPHuffmanDataStruct* occurrencetableentry);
60
61 private:
62
63    /** copy constructor prohibited */
64   AliHLTCOMPHuffmanOccurrenceData(const AliHLTCOMPHuffmanOccurrenceData&);
65
66   /** assignment operator prohibited */
67   AliHLTCOMPHuffmanOccurrenceData& operator=(const AliHLTCOMPHuffmanOccurrenceData&);
68
69   /** 10-bit ADC value used for conversion from struct to class */
70   Int_t famplitude;  // 10-bit ADC-value
71   /** occurrence = abundance used for conversion from struct to class */
72   double fabundance; // occurrence of one 10-bit ADC-value
73   Int_t fcode;       // internal variable used for sorting the binary tree (nothing to do with Huffman code!)
74   
75   ClassDef(AliHLTCOMPHuffmanOccurrenceData, 1)
76     
77     };
78 #endif
79