1 #ifndef ALIMUONRAWSTREAMTRACKER_H
2 #define ALIMUONRAWSTREAMTRACKER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 /// \class AliMUONRawStreamTracker
10 /// \brief Class for reading MUON raw digits
12 /// \author Christian Finck
14 ///////////////////////////////////////////////////////////////////////////////
16 /// This class provides access to MUON digits in raw data.
18 ///////////////////////////////////////////////////////////////////////////////
21 #include <TClonesArray.h>
22 #include "AliMpBusPatch.h"
25 class AliMUONDDLTracker;
26 class AliMUONBusStruct;
27 class AliMUONDspHeader;
28 class AliMUONBlockHeader;
30 class AliMUONRawStreamTracker: public TObject {
32 AliMUONRawStreamTracker();
33 AliMUONRawStreamTracker(AliRawReader* rawReader);
34 AliMUONRawStreamTracker(const AliMUONRawStreamTracker& stream);
35 AliMUONRawStreamTracker& operator = (const AliMUONRawStreamTracker& stream);
36 virtual ~AliMUONRawStreamTracker();
38 virtual Bool_t Next();
39 virtual Bool_t NextDDL();
40 virtual void ResetDDL();
42 Int_t GetMaxDDL() const {return fMaxDDL;}
43 Int_t GetMaxBlock() const {return fMaxBlock;}
44 Int_t GetMaxDsp() const {return fMaxDsp;}
45 Int_t GetMaxBus() const {return fMaxBus;}
47 // check input before assigment
48 void SetMaxDDL(Int_t ddl);
49 void SetMaxBlock(Int_t blk);
51 // does not check, done via BusPatchManager
52 void SetMaxDsp(Int_t dsp) {fMaxDsp = dsp;}
53 void SetMaxBus(Int_t bus) {fMaxBus = bus;}
56 void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
58 AliMUONBusStruct* GetBusPatchInfo() const {return fBusStructPtr;}
59 AliMUONDDLTracker* GetDDLTracker() const {return fDDLTracker;}
60 Int_t GetDDL() const {return fDDL - 1;}
64 AliRawReader* fRawReader; // object for reading the raw data
66 Int_t fDDL; // number of DDL
67 Int_t fBusPatchId; // entry of buspatch structure
68 Int_t fDspId; // entry of Dsp header
69 Int_t fBlkId; // entry of Block header
71 Bool_t fNextDDL; // flag for next DDL to be read
73 Int_t fMaxDDL; // maximum number of DDL in DATE file
74 Int_t fMaxBlock; // maximum number of block per DDL in DATE file
75 Int_t fMaxDsp; // maximum number of Dsp per block in DATE file
76 Int_t fMaxBus; // maximum number of Buspatch per Dsp in DATE file
79 AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL
81 AliMUONDDLTracker* fDDLTracker; //! pointer for buspatch structure
82 AliMUONBusStruct* fBusStruct; //! pointer for local structure
83 AliMUONBlockHeader* fBlockHeader; //! pointer for block structure
84 AliMUONDspHeader* fDspHeader; //! pointer for dsp structure
86 AliMUONBusStruct* fBusStructPtr; //! pointer for local structure
88 ClassDef(AliMUONRawStreamTracker, 1) // base class for reading MUON raw digits