]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONPayloadTracker.h
9d45e81096c053cd65ad44d714facbebd20d2bc2
[u/mrichter/AliRoot.git] / MUON / AliMUONPayloadTracker.h
1 #ifndef ALIMUONPAYLOADTRACKER_H
2 #define ALIMUONPAYLOADTRACKER_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 AliMUONPayloadTracker
10 /// \brief Class for decoding trackerrawdata 
11 ///
12 /// \author Christian Finck
13 ///
14 ///////////////////////////////////////////////////////////////////////////////
15 ///
16 /// This class decode the payload for tracker raw data.
17 ///
18 ///////////////////////////////////////////////////////////////////////////////
19
20 #include <TObject.h>
21 #include <TClonesArray.h>
22 #include "AliMpBusPatch.h"
23
24 class AliMUONDDLTracker;
25 class AliMUONBusStruct;
26 class AliMUONDspHeader;
27 class AliMUONBlockHeader;
28
29 class AliMUONPayloadTracker: public TObject {
30   public :
31     AliMUONPayloadTracker();
32     AliMUONPayloadTracker(const AliMUONPayloadTracker& stream);
33     AliMUONPayloadTracker& operator = (const AliMUONPayloadTracker& stream);
34     virtual ~AliMUONPayloadTracker();
35
36
37     Int_t GetMaxBlock() const {return fMaxBlock;}
38     Int_t GetMaxDsp()   const {return fMaxDsp;}
39     Int_t GetMaxBus()   const {return fMaxBus;}
40
41     // check input before assigment
42     void SetMaxBlock(Int_t blk);
43
44     // does not check, done via BusPatchManager
45     void SetMaxDsp(Int_t dsp) {fMaxDsp = dsp;}
46     void SetMaxBus(Int_t bus) {fMaxBus = bus;}
47
48     void ResetDDL();
49
50     Bool_t Decode(UInt_t* buffer, Int_t ddl);
51
52     AliMUONBusStruct*       GetBusPatchInfo() const {return fBusStruct;}
53     AliMUONDDLTracker*      GetDDLTracker()   const {return fDDLTracker;}
54
55   protected :
56
57  
58     Int_t  fBusPatchId;   ///< entry of buspatch structure
59     Int_t  fDspId;        ///< entry of Dsp header
60     Int_t  fBlkId;        ///< entry of Block header
61
62     Int_t fMaxDDL;        ///< maximum number of DDL in DATE file
63     Int_t fMaxBlock;      ///< maximum number of block per DDL in DATE file
64     Int_t fMaxDsp;        ///< maximum number of Dsp per block in DATE file
65     Int_t fMaxBus;        ///< maximum number of Buspatch per Dsp in DATE file
66
67
68     AliMpBusPatch* fBusPatchManager; //!< buspatch versus DE's & DDL
69
70     AliMUONDDLTracker*      fDDLTracker;      //!< pointer for buspatch structure
71     AliMUONBusStruct*       fBusStruct;       //!< pointer for local structure
72     AliMUONBlockHeader*     fBlockHeader;     //!< pointer for block structure 
73     AliMUONDspHeader*       fDspHeader;       //!< pointer for dsp structure 
74
75     ClassDef(AliMUONPayloadTracker, 1)    // base class for reading MUON raw digits
76 };
77
78 #endif