24b4a1e1d9b024296bd77731dcbabf820e300070
[u/mrichter/AliRoot.git] / MUON / AliMUONVRawStreamTracker.h
1 #ifndef ALIMUONVRAWSTREAMTRACKER_H
2 #define ALIMUONVRAWSTREAMTRACKER_H
3 /* This file is property of and copyright by the ALICE HLT Project        *
4  * ALICE Experiment at CERN, All rights reserved.                         *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$*/
8
9 ///
10 /// \file   AliMUONVRawStreamTracker.h
11 /// \author Artur Szostak <artursz@iafrica.com>
12 /// \date   28-11-2007
13 /// \brief  Declaration of the abstract base class for muon trigger chamber raw stream decoders.
14 ///
15
16 #include "AliMUONRawStream.h"
17
18 class AliMUONVRawStreamTracker : public AliMUONRawStream
19 {
20 public:
21
22         /// Default constructor.
23         AliMUONVRawStreamTracker();
24         
25         /// Constructor setting the raw reader.
26         AliMUONVRawStreamTracker(AliRawReader* rawReader);
27         
28         /// Default destructor.
29         virtual ~AliMUONVRawStreamTracker();
30         
31         /// Advance one step in the iteration. Returns false if finished.
32         virtual Bool_t Next(Int_t& busPatchId,
33                                 UShort_t& manuId, UChar_t& manuChannel,
34                                 UShort_t& adc) = 0;
35         
36         /// Return maximum number of DDLs
37         static Int_t GetMaxDDL() { return fgkMaxDDL; };
38         
39         /// Return maximum number of blocks per DDL allowed.
40         virtual Int_t GetMaxBlock() const = 0;
41         /// Return maximum number of Dsp per block allowed.
42         virtual Int_t GetMaxDsp()   const = 0;
43         /// Return maximum number of Buspatch per Dsp allowed.
44         virtual Int_t GetMaxBus()   const = 0;
45         
46         /// Set maximum number of blocks per DDL allowed.
47         virtual void SetMaxBlock(Int_t blk) = 0;
48         /// Set maximum number of Dsp per block allowed.
49         virtual void SetMaxDsp(Int_t dsp) = 0;
50         /// Set maximum number of Buspatch per Dsp allowed.
51         virtual void SetMaxBus(Int_t bus) = 0;
52         
53         /// Return number of the current DDL.
54         virtual Int_t GetDDL() const = 0;
55         
56         /// check error/Warning presence
57         virtual Bool_t IsErrorMessage() const = 0;
58         
59         /// error numbers
60         enum rawStreamTrackerError
61         {
62                 kGlitchErr      = 1, ///< glitch error
63                 kPaddingWordErr = 2, ///< padding word error
64                 kParityErr      = 3  ///< parity error
65         };
66
67 private:
68
69         // Do not allow copying of this class.
70         /// Not implemented
71         AliMUONVRawStreamTracker(const AliMUONVRawStreamTracker& stream);
72         /// Not implemented
73         AliMUONVRawStreamTracker& operator = (const AliMUONVRawStreamTracker& stream);
74
75         static const Int_t fgkMaxDDL;   //!< maximum number of DDLs
76
77         ClassDef(AliMUONVRawStreamTracker, 0) // Base class for reading MUON raw digits from tracking chambers.
78 };
79
80 #endif  // ALIMUONVRAWSTREAMTRACKER_H