]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONRawStreamTrigger.h
Removing quick code hack and unnecessary methods. Now have a much cleaner implementat...
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTrigger.h
1 #ifndef ALIMUONRAWSTREAMTRIGGER_H
2 #define ALIMUONRAWSTREAMTRIGGER_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 AliMUONRawStreamTrigger
10 /// \brief Class for reading MUON raw digits
11 ///
12 //  Author: Christian Finck
13
14 #include <TObject.h>
15 #include "AliMUONPayloadTrigger.h"
16
17 class AliRawReader;
18 class AliMUONDDLTrigger;
19
20
21 class AliMUONRawStreamTrigger: public TObject {
22   public :
23     AliMUONRawStreamTrigger();
24     AliMUONRawStreamTrigger(AliRawReader* rawReader);
25     virtual ~AliMUONRawStreamTrigger();
26
27     virtual Bool_t   Next();
28     virtual Bool_t   NextDDL();
29
30     /// Return maximum number of DDL in DATE file
31     Int_t GetMaxDDL() const {return fMaxDDL;}
32     /// Return maximum number of regional cards in DATE file
33     Int_t GetMaxReg() const {return fPayload->GetMaxReg();}
34     /// Return maximum number of local cards in DATE file
35     Int_t GetMaxLoc() const {return fPayload->GetMaxLoc();}
36
37
38     void SetMaxDDL(Int_t ddl);
39     void SetMaxReg(Int_t reg);
40     void SetMaxLoc(Int_t loc);
41
42     /// Set object for reading the raw data
43     void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
44
45     /// Return pointer for DDL structure
46     AliMUONDDLTrigger* GetDDLTrigger() const {return fPayload->GetDDLTrigger();}
47
48     /// Return pointer for payload
49     AliMUONPayloadTrigger*  GetPayLoad()    const {return fPayload;}
50
51     /// Return number of DDL
52     Int_t              GetDDL()        const {return fDDL - 1;}
53
54     /// add error message into error logger
55     void AddErrorMessage();
56
57     /// Enable error info logger
58     void EnabbleErrorLogger() {fEnableErrorLogger = kTRUE;}
59
60     /// error numbers
61     enum rawStreamTriggerError {
62       kDarcEoWErr   = 6, ///< end of Darc word error 
63       kGlobalEoWErr = 7, ///< end of Global word error
64       kRegEoWErr    = 8, ///< end of Regional word error 
65       kLocalEoWErr  = 9  ///< end of local word error
66
67     };
68
69   private :
70     /// Not implemented
71     AliMUONRawStreamTrigger(const AliMUONRawStreamTrigger& stream);
72     /// Not implemented
73     AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream);
74
75     AliRawReader*    fRawReader;     ///< object for reading the raw data
76     AliMUONPayloadTrigger* fPayload; ///< pointer to payload decoder
77
78     Int_t  fDDL;          ///< number of DDL
79     Int_t  fSubEntries;   ///< entries of buspatch structure
80     Bool_t fNextDDL;      ///< flag for next DDL to be read
81     Int_t  fMaxDDL;       ///< maximum number of DDL in DATE file
82     Bool_t fEnableErrorLogger; //!< flag to enable the error info logger
83
84     ClassDef(AliMUONRawStreamTrigger, 3)    // base class for reading MUON trigger rawdata
85 };
86
87 #endif