Line data Source code
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 : class AliMUONRawStream: public TObject {
19 : public :
20 : AliMUONRawStream();
21 : AliMUONRawStream(AliRawReader* rawReader);
22 : virtual ~AliMUONRawStream();
23 :
24 : /// Initialize iterator
25 0 : 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 0 : 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 8 : virtual void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
38 :
39 : /// Get object for reading the raw data
40 120 : virtual AliRawReader* GetReader() {return fRawReader;}
41 :
42 : /// Enable error info logger
43 6 : virtual void EnabbleErrorLogger() {fEnableErrorLogger = kTRUE;}
44 :
45 : /// Check if error info logger enable
46 0 : 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 fB1:8; ///< first byte word
60 : UInt_t fB2:8; ///< second byte word
61 : UInt_t fB3:8; ///< third byte word
62 : UInt_t fB4: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 18 : ClassDef(AliMUONRawStream, 1) // base class for reading MUON raw digits
69 : };
70 :
71 : #endif
|