Fixing a warning
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitMaker.h
1 #ifndef ALIMUONDIGITMAKER_H
2 #define ALIMUONDIGITMAKER_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 base
9 /// \class AliMUONDigitMaker
10 /// \brief Reading Raw data class for trigger and tracker chambers
11 ///
12 //  Author: Ch, Finck
13
14 #include <TObject.h>
15
16 class TArrayS;
17
18 class AliRawReader;
19 class AliMUONLocalStruct;
20
21 class AliMUONRawStreamTrackerHP;
22 class AliMUONRawStreamTriggerHP;
23
24 class AliMUONVDigitStore;
25 class AliMUONVTriggerStore;
26
27 class AliMUONLogger;
28
29 class AliMUONDigitMaker : public TObject 
30 {
31  public:
32   AliMUONDigitMaker(Bool_t enableErrorLogger, Bool_t a, Bool_t b);
33
34   AliMUONDigitMaker(Bool_t enableErrorLogger = kTRUE); // Constructor
35
36   virtual ~AliMUONDigitMaker(void); // Destructor
37     
38   /// Code to indicate readout errors
39   enum ErrorCode
40   {
41     kOK=0,             ///< everything is OK 
42     kTrackerBAD=1<<1,  ///< tracker part had readout errors 
43     kTriggerBAD=1<<2   ///< trigger part had readout errors 
44   };
45   
46   // write raw data
47   Int_t  Raw2Digits(AliRawReader* rawReader, 
48                     AliMUONVDigitStore* digitContainer=0,
49                     AliMUONVTriggerStore* triggerStore=0);
50
51   Int_t  ReadTrackerDDL(AliRawReader* rawReader);
52   Int_t  ReadTriggerDDL(AliRawReader* rawReader);
53   
54   Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, 
55                       AliMUONVDigitStore& digitStore) const;
56
57   Bool_t TriggerToDigitsStore(const AliMUONVTriggerStore& triggerStore, 
58                               AliMUONVDigitStore& digitStore) const;
59
60         /// Set flag to generates scaler event
61   void  SetScalerEvent() { fScalerEvent = kTRUE; }
62
63         /// Set flag whether or not we should generate digits for the trigger
64   void  SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
65
66   /// Return the raw stream object which decodes DDL raw data from tracking stations.
67   AliMUONRawStreamTrackerHP* GetRawStreamTracker() const { return fRawStreamTracker; }
68
69   /// Return the raw stream object which decodes DDL raw data from the trigger system.
70   AliMUONRawStreamTriggerHP* GetRawStreamTrigger() const { return fRawStreamTrigger; }
71
72   void Print(Option_t* opt="") const;
73
74 private:
75     
76   /// Not implemented
77   AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
78   /// Not implemented
79   AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
80
81 private:
82   Bool_t fScalerEvent;       //!< flag to generates scaler event
83   Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
84   
85   AliMUONRawStreamTrackerHP* fRawStreamTracker; //!< pointer of raw stream for tracker
86   AliMUONRawStreamTriggerHP* fRawStreamTrigger;  //!< pointer of raw stream for trigger
87
88   AliMUONVDigitStore* fDigitStore; //!< not owner
89   AliMUONVTriggerStore* fTriggerStore; //!< not owner
90
91   AliMUONLogger* fLogger; //!< to log messages
92   
93   ClassDef(AliMUONDigitMaker,7) // MUON digit maker from rawdata
94 };
95         
96 #endif