VZERO reconstruction starting from raw-data input. New AliVZERORawStream class for...
[u/mrichter/AliRoot.git] / VZERO / AliVZERORawStream.h
1 #ifndef ALIVZERORAWSTREAM_H
2 #define ALIVZERORAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 ///
8 /// This is a class for reading the VZERO DDL raw data
9 /// The format of the raw data corresponds to the one
10 /// implemented in AliVZEROBuffer class.
11 ///
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include <TObject.h>
15
16 class AliRawReader;
17
18 class AliVZERORawStream: public TObject {
19   public :
20     AliVZERORawStream(AliRawReader* rawReader);
21     virtual ~AliVZERORawStream();
22
23     virtual void             Reset();
24     virtual Bool_t           Next();
25
26     Int_t                    GetCell() { return fCell; }
27     Int_t                    GetADC()  { return fADC; }
28     Int_t                    GetTime() { return fTime; }
29
30     enum EVZERORawStreamError {
31       kRawDataSizeErr = 1
32     };
33
34   private:
35
36     AliVZERORawStream(const AliVZERORawStream& stream);
37     AliVZERORawStream& operator = (const AliVZERORawStream& stream);
38
39     Int_t GetNextWord();
40
41     Int_t           fCell;     // current VZERO cell
42     Int_t           fADC;      // current ADC count
43     Int_t           fTime;     // current time
44
45     Int_t           fPosition; // current position in raw-data stream
46
47     AliRawReader*    fRawReader;   // object for reading the raw data
48
49     UChar_t*         fData;        // pointer to raw data payload
50
51     ClassDef(AliVZERORawStream, 0) // class for reading VZERO DDL raw data
52 };
53
54 #endif