Always delete TObjArrays created by TString::Tokenize (Ruben)
[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 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         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         ClassDef(AliMUONVRawStreamTracker, 0) // Base class for reading MUON raw digits from tracking chambers.
85 };
86
87 #endif  // ALIMUONVRAWSTREAMTRACKER_H