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 */
9 /// \class AliMUONRawStream
10 /// \brief Base class for reading MUON raw digits
12 // Author: Christian Finck
19 class AliMUONRawStream: public TObject {
22 AliMUONRawStream(AliRawReader* rawReader);
23 virtual ~AliMUONRawStream();
25 /// Initialize iterator
26 virtual void First() {return;} // not yet virtual pure, waiting for trigger
29 virtual Bool_t NextDDL() = 0;
31 /// Whether the iteration is finished or not
32 virtual Bool_t IsDone() const {return kTRUE;} // not yet virtual pure, waiting for trigger
34 /// add error message into error logger
35 virtual void AddErrorMessage() = 0;
37 /// Set object for reading the raw data
38 virtual void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
40 /// Get object for reading the raw data
41 virtual AliRawReader* GetReader() {return fRawReader;}
43 /// Enable error info logger
44 virtual void EnabbleErrorLogger() {fEnableErrorLogger = kTRUE;}
46 /// Check if error info logger enable
47 virtual Bool_t IsErrorLogger() const {return fEnableErrorLogger;}
49 /// swap method for Power PC
50 virtual void Swap(UInt_t *buffer, Int_t size) const;
55 AliMUONRawStream(const AliMUONRawStream& stream);
57 AliMUONRawStream& operator = (const AliMUONRawStream& stream);
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
66 AliRawReader* fRawReader; //!< object for reading the raw data
67 Bool_t fEnableErrorLogger; //!< flag to enable the error info logger
69 ClassDef(AliMUONRawStream, 1) // base class for reading MUON raw digits