New methods to read and write trailers. New method to read whole altro channel
[u/mrichter/AliRoot.git] / RAW / AliVMERawStream.h
1 #ifndef ALIVMERAWSTREAM_H
2 #define ALIVMERAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 ///
10 /// This class provides access to VME data in test beam raw data.
11 ///
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include <TObject.h>
15
16 class AliRawReader;
17
18
19 class AliVMERawStream: public TObject {
20   public :
21     AliVMERawStream(AliRawReader* rawReader);
22     AliVMERawStream(const AliVMERawStream& stream);
23     AliVMERawStream& operator = (const AliVMERawStream& stream);
24     virtual ~AliVMERawStream() {};
25
26     virtual Bool_t   Next();
27
28     UShort_t         GetBlock() const {return fBlock;};
29     UShort_t         GetNumber() const {return fNumber;};
30     UShort_t         GetChannel() const {return fChannel;};
31     UShort_t         GetValue() const {return fValue;};
32
33     UInt_t           GetTDCChannel(Int_t iTDC) const
34       {return fTDCChannel[iTDC];};
35     UInt_t           GetTDCValue(Int_t iTDC) const
36       {return fTDCValue[iTDC];};
37
38     UInt_t           GetTime() const {return fTime;};
39     UInt_t           GetTimeMuSec() const {return fTimeMuSec;};
40
41   private :
42     Bool_t           CheckString(const char* str) const;
43     Bool_t           ReadTDC();
44     Bool_t           ReadTime();
45
46     AliRawReader*    fRawReader;    // object for reading the raw data
47
48     UInt_t           fData;         // data read for file
49
50     Int_t            fNChannels;    // number of c-ram channels
51     UShort_t         fBlock;        // C-ram block
52     UShort_t         fNumber;       // C-ram serial number
53     UShort_t         fChannel;      // C-ram channel
54     UShort_t         fValue;        // C-ram ADC value
55
56     static const Int_t fgkNTDC = 3; // number of TDCs
57     UInt_t           fTDCChannel[fgkNTDC];      // TDC channels
58     UInt_t           fTDCValue[fgkNTDC];        // TDC values
59
60     UInt_t           fTime;         // timing information
61     UInt_t           fTimeMuSec;    // micro seconds
62
63     ClassDef(AliVMERawStream, 0) // class for reading VME raw digits
64 };
65
66 #endif