]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RAW/AliTPCRawStream.h
Update for station2:
[u/mrichter/AliRoot.git] / RAW / AliTPCRawStream.h
1 #ifndef ALITPCRAWSTREAM_H
2 #define ALITPCRAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #include <TObject.h>
7 #include "AliRawReader.h"
8 #include "AliTPCCompression.h"
9
10
11 class AliTPCRawStream: public TObject {
12   public :
13     AliTPCRawStream(AliRawReader* rawReader);
14     virtual ~AliTPCRawStream();
15
16     virtual Bool_t   Next();
17
18     inline Int_t     GetSector() const {return fSector;};
19     inline Int_t     GetPrevSector() const {return fPrevSector;};
20     inline Bool_t    IsNewSector() const {return fSector != fPrevSector;};
21     inline Int_t     GetRow() const {return fRow;};
22     inline Int_t     GetPrevRow() const {return fPrevRow;};
23     inline Bool_t    IsNewRow() const {return (fRow != fPrevRow) || IsNewSector();};
24     inline Int_t     GetPad() const {return fPad;};
25     inline Int_t     GetPrevPad() const {return fPrevPad;};
26     inline Bool_t    IsNewPad() const {return (fPad != fPrevPad) || IsNewRow();};
27     inline Int_t     GetTime() const {return fTime;};
28     inline Int_t     GetSignal() const {return fSignal;};
29
30   protected :
31     UShort_t         Get10BitWord(UChar_t* buffer, Int_t position);
32
33     AliRawReader*    fRawReader;    // object for reading the raw data
34
35     AliTPCCompression    fCompression;   // object for decompression
36     static const Int_t   kNumTables = 5; // number of (de)compression tables
37     static AliTPCHNode** fgRootNode;     // (de)compression tables
38
39     static const Int_t kDataMax = 10000000; // size of array for uncompressed raw data
40     UShort_t*        fData;         // uncompressed raw data
41     Int_t            fDataSize;     // actual size of the uncompressed raw data
42     Int_t            fPosition;     // current position in fData
43     Int_t            fCount;        // counter of words to be read for current trailer
44     Int_t            fBunchLength;  // remaining number of signal bins in the current bunch
45     static const Int_t kOffset = 1; // offset of signal
46
47     Int_t            fSector;       // index of current sector
48     Int_t            fPrevSector;   // index of previous sector
49     Int_t            fRow;          // index of current row
50     Int_t            fPrevRow;      // index of previous row
51     Int_t            fPad;          // index of current pad
52     Int_t            fPrevPad;      // index of previous pad
53     Int_t            fTime;         // index of current time bin
54     Int_t            fSignal;       // signal in ADC counts
55
56     ClassDef(AliTPCRawStream, 0)    // base class for reading TPC raw digits
57 };
58
59 #endif