]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONRawStream.h
In AliMUONSt1GeometryBuilderV: fixing overlap
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStream.h
1 #ifndef ALIMUONRAWSTREAM_H
2 #define ALIMUONRAWSTREAM_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 /// \ingroup raw
9 /// \class AliMUONRawStream
10 /// \brief Base class for reading MUON raw digits
11 ///
12 //  Author: Christian Finck
13
14 #include <TObject.h>
15
16 class AliRawReader;
17
18
19 class AliMUONRawStream: public TObject {
20   public :
21     AliMUONRawStream();
22     AliMUONRawStream(AliRawReader* rawReader);
23     virtual ~AliMUONRawStream();
24
25     /// Initialize iterator
26     virtual void First() {return;} // not yet virtual pure, waiting for trigger
27     
28     /// DDL iterator 
29     virtual Bool_t NextDDL() = 0;
30
31     /// Whether the iteration is finished or not
32     virtual Bool_t IsDone() const {return kTRUE;} // not yet virtual pure, waiting for trigger
33
34     /// add error message into error logger
35     virtual void AddErrorMessage() = 0;
36
37     /// Set object for reading the raw data
38     virtual void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
39
40     /// Get object for reading the raw data
41     virtual AliRawReader* GetReader() {return fRawReader;}
42
43     /// Enable error info logger
44     virtual void EnabbleErrorLogger() {fEnableErrorLogger = kTRUE;}
45
46     /// Check if error info logger enable
47     virtual Bool_t IsErrorLogger() const {return fEnableErrorLogger;}
48
49     /// swap method for Power PC
50     virtual void Swap(UInt_t *buffer, Int_t size) const;
51
52
53   private :
54     /// Not implemented
55     AliMUONRawStream(const AliMUONRawStream& stream);
56     /// Not implemented
57     AliMUONRawStream& operator = (const AliMUONRawStream& stream);
58
59     typedef struct {
60      UInt_t b1:8; ///< first byte word
61      UInt_t b2:8; ///< second byte word
62      UInt_t b3:8; ///< third byte word
63      UInt_t b4:8; ///< fourth byte word
64     } RawWord;
65
66     AliRawReader* fRawReader;    //!< object for reading the raw data  
67     Bool_t fEnableErrorLogger;   //!< flag to enable the error info logger
68     
69     ClassDef(AliMUONRawStream, 1)    // base class for reading MUON raw digits
70 };
71
72 #endif