]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONRawStreamTracker.h
Implemented Raw2SDigits method for tracker (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTracker.h
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 base
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 "AliMUONPayloadTracker.h"
23
24 class AliRawReader;
25 class AliMUONDDLTracker;
26
27
28 class AliMUONRawStreamTracker: public TObject {
29   public :
30     AliMUONRawStreamTracker();
31     AliMUONRawStreamTracker(AliRawReader* rawReader);
32     virtual ~AliMUONRawStreamTracker();
33
34     virtual Bool_t   Next();
35     virtual Bool_t   NextDDL();
36
37     Int_t GetMaxDDL()   const {return fMaxDDL;}
38     Int_t GetMaxBlock() const {return  fPayload->GetMaxBlock();}
39     Int_t GetMaxDsp()   const {return  fPayload->GetMaxDsp();}
40     Int_t GetMaxBus()   const {return  fPayload->GetMaxBus();}
41
42     // check input before assigment
43     void SetMaxDDL(Int_t ddl);
44     void SetMaxBlock(Int_t blk);
45
46     // does not check, done via BusPatchManager
47     void SetMaxDsp(Int_t dsp) {fPayload->SetMaxDsp(dsp);}
48     void SetMaxBus(Int_t bus) {fPayload->SetMaxBus(bus);}
49
50
51     void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
52
53     AliMUONDDLTracker*      GetDDLTracker()   const {return fPayload->GetDDLTracker();}
54     Int_t                   GetDDL()          const {return fDDL - 1;}
55
56   private :
57
58     AliRawReader*    fRawReader;    ///< object for reading the raw data
59  
60     Int_t  fDDL;          ///< number of DDL
61     Int_t  fBusPatchId;   ///< entry of buspatch structure
62     Int_t  fDspId;        ///< entry of Dsp header
63     Int_t  fBlkId;        ///< entry of Block header
64
65     Bool_t fNextDDL;      ///< flag for next DDL to be read
66
67     Int_t  fMaxDDL;       ///< maximum number of DDL in DATE file
68
69     AliMUONPayloadTracker* fPayload; ///< pointer to payload decoder
70
71     AliMUONRawStreamTracker(const AliMUONRawStreamTracker& stream);
72     AliMUONRawStreamTracker& operator = (const AliMUONRawStreamTracker& stream);
73
74     ClassDef(AliMUONRawStreamTracker, 2)    // base class for reading MUON raw digits
75 };
76
77 #endif