]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONRawStreamTrigger.h
Updated serial number for station345
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTrigger.h
... / ...
CommitLineData
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#include "AliMUONRawStream.h"
17class TArrayS;
18
19class AliRawReader;
20class AliMUONDDLTrigger;
21class AliMUONDarcHeader;
22class AliMUONRegkHeader;
23class AliMUONLocalStruct;
24
25class AliMUONRawStreamTrigger: public AliMUONRawStream {
26 public :
27 AliMUONRawStreamTrigger();
28 AliMUONRawStreamTrigger(AliRawReader* rawReader);
29 virtual ~AliMUONRawStreamTrigger();
30
31 /// Initialize iterator
32 void First();
33
34 /// Returns current DDL object during iteration
35 AliMUONDDLTrigger* CurrentDDL() const { return fCurrentDDL; }
36
37 /// Returns current DarcHeader object during iteration
38 AliMUONDarcHeader* CurrentDarcHeader() const { return fCurrentDarcHeader; }
39
40 /// Returns current RegHeader object during iteration
41 AliMUONRegHeader* CurrentRegHeader() const { return fCurrentRegHeader; }
42
43 /// Returns current LocalStruct object during iteration
44 AliMUONLocalStruct* CurrentLocalStruct() const { return fCurrentLocalStruct; }
45
46 /// Advance one step in the iteration. Returns false if finished.
47 virtual Bool_t Next(UChar_t& id, UChar_t& dec, Bool_t& trigY,
48 UChar_t& yPos, UChar_t& sXDev, UChar_t& xDev,
49 UChar_t& xPos, Bool_t& triggerY, Bool_t& triggerX,
50 TArrayS& xPattern, TArrayS& yPattern);
51
52
53 virtual Bool_t NextDDL();
54
55 /// Return maximum number of DDLs
56 Int_t GetMaxDDL() const {return fgkMaxDDL;}
57 /// Return maximum number of regional cards in DATE file
58 Int_t GetMaxReg() const {return fPayload->GetMaxReg();}
59 /// Return maximum number of local cards in DATE file
60 Int_t GetMaxLoc() const {return fPayload->GetMaxLoc();}
61
62 //void SetMaxReg(Int_t reg);
63 void SetMaxLoc(Int_t loc);
64
65 /// Return pointer for DDL structure
66 AliMUONDDLTrigger* GetDDLTrigger() const {return fPayload->GetDDLTrigger();}
67
68 /// Return number of DDL
69 Int_t GetDDL() const {return fDDL - 1;}
70
71 /// Return pointer for payload
72 AliMUONPayloadTrigger* GetPayLoad() const {return fPayload;}
73
74 /// Whether the iteration is finished or not
75 Bool_t IsDone() const;
76
77 /// add error message into error logger
78 void AddErrorMessage();
79
80 /// Disable Warnings
81 void DisableWarnings() {fPayload->DisableWarnings();}
82
83 /// error numbers
84 enum rawStreamTriggerError {
85 kDarcEoWErr = 6, ///< end of Darc word error
86 kGlobalEoWErr = 7, ///< end of Global word error
87 kRegEoWErr = 8, ///< end of Regional word error
88 kLocalEoWErr = 9 ///< end of local word error
89
90 };
91
92 private :
93 /// Not implemented
94 AliMUONRawStreamTrigger(const AliMUONRawStreamTrigger& stream);
95 /// Not implemented
96 AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream);
97
98 Bool_t GetNextDDL();
99 Bool_t GetNextRegHeader();
100 Bool_t GetNextLocalStruct();
101
102 private:
103
104 AliMUONPayloadTrigger* fPayload; ///< pointer to payload decoder
105 AliMUONDDLTrigger* fCurrentDDL; //!< for iterator: current ddl ptr
106 Int_t fCurrentDDLIndex; //!< for iterator: current ddl index
107 AliMUONDarcHeader* fCurrentDarcHeader; //!< for iterator: current darc ptr
108 AliMUONRegHeader* fCurrentRegHeader; //!< for iterator: current reg ptr
109 Int_t fCurrentRegHeaderIndex; //!< for iterator: current reg index
110 AliMUONLocalStruct* fCurrentLocalStruct; //!< for iterator: current local ptr
111 Int_t fCurrentLocalStructIndex; //!< for iterator: current local index
112 Bool_t fLocalStructRead; //!< flag for read out local structure
113 Int_t fDDL; //!< number of DDL
114
115
116 Bool_t fNextDDL; ///< flag for next DDL to be read
117 Bool_t fEnableErrorLogger; //!< flag to enable the error info logger
118
119 static const Int_t fgkMaxDDL; ///< maximum number of DDLs
120
121 ClassDef(AliMUONRawStreamTrigger, 4) // base class for reading MUON trigger rawdata
122};
123
124#endif