Update of the fast altro decoder (Per Thomas)
[u/mrichter/AliRoot.git] / RAW / AliAltroData.h
1 #ifndef ALIALTRODATA_H
2 #define ALIALTRODATA_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #define DECODERERROR -3
7
8 #include <TObject.h>
9
10 class AliAltroBunch;
11
12 class AliAltroData: public TObject {
13 public:
14
15   AliAltroData();
16   ~ AliAltroData();
17
18   //  Bool_t  NextBunch(AliAltroBunch *altrobunch);
19   int  NextBunch(AliAltroBunch *altrobunch); 
20
21   Int_t   GetChannel() const;
22   Int_t   GetChip() const;
23   Int_t   GetCard() const;
24   Int_t   GetBranch() const;
25   void    Reset();
26
27   Bool_t  IsComplete()      const { return fIsComplete; }
28   void    SetIsComplete(Bool_t iscomplete) { fIsComplete = iscomplete; }
29   Int_t   GetHadd()         const { return fHadd; }
30   Int_t   GetPrevHadd()     const { return fPrevHadd; }
31   Bool_t  IsNewHadd()       const { return (fHadd != fPrevHadd); }
32   //  void    SetHadd(Int_t add)      { fPrevHadd = fHadd; fHadd = add; }
33   void    SetHadd(Int_t add, Int_t bufferleft)      { fPrevHadd = fHadd; fHadd = add; fBufferLeft  = bufferleft ; }
34
35   const   UInt_t* GetData() const { return fData; }
36   void    SetData(UInt_t *data)   { fData = data; }
37   //  UInt_t* GetData() const { return fData; } 
38   Int_t   GetDataSize()     const { return fDataSize; }
39   void    SetDataSize(Int_t size) { fDataSize = size; }
40
41 private:
42
43   AliAltroData& operator = (const AliAltroData& altrodata);
44   AliAltroData(const AliAltroData& altrodata);
45
46   UInt_t *fData;
47   UInt_t *fBunchData;
48   Int_t   fDataSize;
49   Int_t   fWc;
50   Int_t   fHadd;
51   Int_t   fPrevHadd;
52   Int_t   fBunchCounter;
53   Bool_t  fIsComplete;
54
55   // Int_t fMaxBunchSize;
56   Int_t fBufferLeft;
57
58   ClassDef(AliAltroData, 0)  // container class for Altro payload
59
60 };
61
62 #endif
63