]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/comp/AliL3CompressAC.h
New version of TOF tracker which uses TOF clusters as an input (A. De Caro)
[u/mrichter/AliRoot.git] / HLT / comp / AliL3CompressAC.h
1 // @(#) $Id$
2
3 #ifndef AliL3_CompressAC
4 #define AliL3_CompressAC
5
6 #include "AliL3Compress.h"
7 #include "bitio.h"
8
9 class AliL3CompressAC : public AliL3Compress {
10   
11  public:
12   AliL3CompressAC();
13   AliL3CompressAC(Int_t slice,Int_t patch,Char_t *path="./",Bool_t writeshape=kFALSE,Int_t event=-1);
14   virtual ~AliL3CompressAC();
15   
16   Bool_t CompressFile();
17   Bool_t ExpandFile();
18   void PrintCompRatio(STDOF *outfile=0);
19   void PrintTotals() const;
20   
21  private:
22   UChar_t *fCount;  //! Array of counts
23   UInt_t *fTotals;  //! Array of totals, which is actually the model being used during encoding/decoding
24   UShort_t fMax; // Max number of counts
25   UInt_t fScale; // Scaling factor (not used?)
26
27   UInt_t fRange; // Range (not used?)
28   UShort_t fLow; // Low bytes?
29   UShort_t fHigh; // High bytes?
30   UShort_t fUnderflowBits; // Underflow (not used?)
31   UShort_t fCode; // Coded informatio?
32
33   void ClearArrays();
34   void BuildModel(BIT_FILE *output);
35   void RebuildModel(BIT_FILE *input);
36   void FillTotals();
37
38   void InitEncoder();
39   void InitDecoder(BIT_FILE *input);
40   void ConvertIntToSymbol(Int_t value);
41   UInt_t ConvertSymbolToInt();
42   void EncodeSymbol(BIT_FILE *output);
43   void RemoveSymbolFromStream(BIT_FILE *input,Int_t j);  
44   void FlushEncoder(BIT_FILE *output);
45   
46   ClassDef(AliL3CompressAC,1) 
47
48 };
49
50 #endif