0cc469dde9872cc3433c004db247b45bf9de2259
[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 ///////////////////////////////////////////////////////////////////////////////
15 ///
16 /// This class provides access to MUON digits in raw data.
17 ///
18 ///////////////////////////////////////////////////////////////////////////////
19
20 #include <TObject.h>
21 #include <TClonesArray.h>
22
23 class AliRawReader;
24 class AliMUONDDLTrigger;
25 class AliMUONLocalStruct;
26 class AliMUONRegHeader;
27
28 class AliMUONRawStreamTrigger: public TObject {
29   public :
30     AliMUONRawStreamTrigger();
31     AliMUONRawStreamTrigger(AliRawReader* rawReader);
32     AliMUONRawStreamTrigger(const AliMUONRawStreamTrigger& stream);
33     AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream);
34     virtual ~AliMUONRawStreamTrigger();
35
36     virtual Bool_t   Next();
37     virtual Bool_t   NextDDL();
38     virtual void     ResetDDL();
39
40     Int_t GetMaxDDL() const {return fMaxDDL;}
41     Int_t GetMaxReg() const {return fMaxReg;}
42     Int_t GetMaxLoc() const {return fMaxLoc;}
43
44
45     void SetMaxDDL(Int_t ddl);
46     void SetMaxReg(Int_t reg);
47     void SetMaxLoc(Int_t loc);
48
49
50     void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
51
52     AliMUONLocalStruct*     GetLocalInfo()  const {return fLocalStruct;}
53     AliMUONDDLTrigger*      GetDDLTrigger() const {return fDDLTrigger;}
54     Int_t                   GetDDL()        const {return fDDL - 1;}
55
56   protected :
57
58     AliRawReader*    fRawReader;    // object for reading the raw data
59  
60     Int_t  fDDL;          // number of DDL
61     Int_t  fSubEntries;   // entries of buspatch structure
62     Bool_t fNextDDL;      // flag for next DDL to be read
63
64     Int_t fMaxDDL;        // maximum number of DDL in DATE file
65     Int_t fMaxReg;        // maximum number of regional cards in DATE file
66     Int_t fMaxLoc;        // maximum number of local cards in DATE file
67
68     AliMUONDDLTrigger*       fDDLTrigger;   //! pointer for DDL structure
69     AliMUONRegHeader*        fRegHeader;    //! pointer for regional structure
70     AliMUONLocalStruct*      fLocalStruct;  //! pointer to local structure
71
72     ClassDef(AliMUONRawStreamTrigger, 2)    // base class for reading MUON trigger rawdata
73 };
74
75 #endif