Class for decoding rawdata for tracker, add padding word
[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
64 AliRawReader* fRawReader; // object for reading the raw data
65
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
70
71 Bool_t fNextDDL; // flag for next DDL to be read
72
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
77
78
79 AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL
80
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
85
86 AliMUONBusStruct* fBusStructPtr; //! pointer for local structure
87
88 ClassDef(AliMUONRawStreamTracker, 1) // base class for reading MUON raw digits
89};
90
91#endif