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