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
15 #include "AliMUONPayloadTracker.h"
18 class AliMUONDDLTracker;
21 class AliMUONRawStreamTracker: public TObject {
23 AliMUONRawStreamTracker();
24 AliMUONRawStreamTracker(AliRawReader* rawReader);
25 virtual ~AliMUONRawStreamTracker();
27 virtual Bool_t Next();
28 virtual Bool_t NextDDL();
30 /// Return maximum number of DDL in DATE file
31 Int_t GetMaxDDL() const {return fMaxDDL;}
32 /// Return maximum number of block per DDL in DATE file
33 Int_t GetMaxBlock() const {return fPayload->GetMaxBlock();}
34 /// Return maximum number of Dsp per block in DATE file
35 Int_t GetMaxDsp() const {return fPayload->GetMaxDsp();}
36 /// Return maximum number of Buspatch per Dsp in DATE file
37 Int_t GetMaxBus() const {return fPayload->GetMaxBus();}
39 // check input before assigment
40 void SetMaxDDL(Int_t ddl);
41 void SetMaxBlock(Int_t blk);
43 /// Set maximum number of Dsp per block in DATE file
44 /// does not check, done via BusPatchManager
45 void SetMaxDsp(Int_t dsp) {fPayload->SetMaxDsp(dsp);}
46 /// Set maximum number of Buspatch per Dsp in DATE file
47 /// does not check, done via BusPatchManager
48 void SetMaxBus(Int_t bus) {fPayload->SetMaxBus(bus);}
50 /// Set object for reading the raw data
51 void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
53 /// Return pointer for DDL
54 AliMUONDDLTracker* GetDDLTracker() const {return fPayload->GetDDLTracker();}
56 /// Return pointer for payload
57 AliMUONPayloadTracker* GetPayLoad() const {return fPayload;}
59 /// Return number of DDL
60 Int_t GetDDL() const {return fDDL - 1;}
64 AliMUONRawStreamTracker(const AliMUONRawStreamTracker& stream);
66 AliMUONRawStreamTracker& operator = (const AliMUONRawStreamTracker& stream);
68 AliRawReader* fRawReader; ///< object for reading the raw data
70 Int_t fDDL; ///< number of DDL
71 Int_t fBusPatchId; ///< entry of buspatch structure
72 Int_t fDspId; ///< entry of Dsp header
73 Int_t fBlkId; ///< entry of Block header
75 Bool_t fNextDDL; ///< flag for next DDL to be read
77 Int_t fMaxDDL; ///< maximum number of DDL in DATE file
79 AliMUONPayloadTracker* fPayload; ///< pointer to payload decoder
81 ClassDef(AliMUONRawStreamTracker, 2) // base class for reading MUON raw digits