Added AliBalance to PWG2LinkDef.
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTracker.h
CommitLineData
c0751163 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 */
5
6/*$Id$*/
7
8/// \ingroup raw
9/// \class AliMUONRawStreamTracker
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#include "AliMpBusPatch.h"
23
24class AliRawReader;
25class AliMUONDDLTracker;
26class AliMUONBusStruct;
27class AliMUONDspHeader;
28class AliMUONBlockHeader;
29
30class AliMUONRawStreamTracker: public TObject {
31 public :
32 AliMUONRawStreamTracker();
33 AliMUONRawStreamTracker(AliRawReader* rawReader);
34 AliMUONRawStreamTracker(const AliMUONRawStreamTracker& stream);
35 AliMUONRawStreamTracker& operator = (const AliMUONRawStreamTracker& stream);
36 virtual ~AliMUONRawStreamTracker();
37
38 virtual Bool_t Next();
39 virtual Bool_t NextDDL();
40 virtual void ResetDDL();
41
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;}
46
47 // check input before assigment
48 void SetMaxDDL(Int_t ddl);
49 void SetMaxBlock(Int_t blk);
50
51 // does not check, done via BusPatchManager
52 void SetMaxDsp(Int_t dsp) {fMaxDsp = dsp;}
53 void SetMaxBus(Int_t bus) {fMaxBus = bus;}
54
55
56 void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
57
58 AliMUONBusStruct* GetBusPatchInfo() const {return fBusStructPtr;}
59 AliMUONDDLTracker* GetDDLTracker() const {return fDDLTracker;}
60 Int_t GetDDL() const {return fDDL - 1;}
61
62 protected :
63
829425a5 64 AliRawReader* fRawReader; ///< object for reading the raw data
c0751163 65
829425a5 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
c0751163 70
829425a5 71 Bool_t fNextDDL; ///< flag for next DDL to be read
c0751163 72
829425a5 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
c0751163 77
78
829425a5 79 AliMpBusPatch* fBusPatchManager; //!< buspatch versus DE's & DDL
c0751163 80
829425a5 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
c0751163 85
829425a5 86 AliMUONBusStruct* fBusStructPtr; //!< pointer for local structure
c0751163 87
88 ClassDef(AliMUONRawStreamTracker, 1) // base class for reading MUON raw digits
89};
90
91#endif