Line data Source code
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 AliMUONDDLTracker;
19 :
20 : class AliMUONVRawStreamTracker : public AliMUONRawStream
21 : {
22 : public:
23 :
24 : /// Default constructor.
25 : AliMUONVRawStreamTracker();
26 :
27 : /// Constructor setting the raw reader.
28 : AliMUONVRawStreamTracker(AliRawReader* rawReader);
29 :
30 : /// Default destructor.
31 : virtual ~AliMUONVRawStreamTracker();
32 :
33 : /// Advance one step in the iteration. Returns false if finished.
34 : virtual Bool_t Next(Int_t& busPatchId,
35 : UShort_t& manuId, UChar_t& manuChannel,
36 : UShort_t& adc) = 0;
37 :
38 : /// Return pointer to DDL payload object.
39 : virtual AliMUONDDLTracker* GetDDLTracker() const = 0;
40 :
41 : /// Return maximum number of DDLs
42 0 : static Int_t GetMaxDDL() { return fgkMaxDDL; };
43 :
44 : /// Return maximum number of blocks per DDL allowed.
45 : virtual Int_t GetMaxBlock() const = 0;
46 : /// Return maximum number of Dsp per block allowed.
47 : virtual Int_t GetMaxDsp() const = 0;
48 : /// Return maximum number of Buspatch per Dsp allowed.
49 : virtual Int_t GetMaxBus() const = 0;
50 :
51 : /// Set maximum number of blocks per DDL allowed.
52 : virtual void SetMaxBlock(Int_t blk) = 0;
53 : /// Set maximum number of Dsp per block allowed.
54 : virtual void SetMaxDsp(Int_t dsp) = 0;
55 : /// Set maximum number of Buspatch per Dsp allowed.
56 : virtual void SetMaxBus(Int_t bus) = 0;
57 :
58 : /// Return number of the current DDL.
59 : virtual Int_t GetDDL() const = 0;
60 :
61 : /// check error/Warning presence
62 : virtual Bool_t IsErrorMessage() const = 0;
63 :
64 : /// error numbers
65 : enum rawStreamTrackerError
66 : {
67 : kGlitchErr = 1, ///< glitch error
68 : kPaddingWordErr = 2, ///< padding word error
69 : kParityErr = 3 ///< parity error
70 : };
71 :
72 : protected:
73 :
74 : static const Int_t fgkMaxDDL; //!<! maximum number of DDLs
75 :
76 : private:
77 :
78 : // Do not allow copying of this class.
79 : /// Not implemented
80 : AliMUONVRawStreamTracker(const AliMUONVRawStreamTracker& stream);
81 : /// Not implemented
82 : AliMUONVRawStreamTracker& operator = (const AliMUONVRawStreamTracker& stream);
83 :
84 18 : ClassDef(AliMUONVRawStreamTracker, 0) // Base class for reading MUON raw digits from tracking chambers.
85 : };
86 :
87 : #endif // ALIMUONVRAWSTREAMTRACKER_H
|