]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONDigitMaker.h
- The default value of useFastDecoder in ctor changed to kFALSE,
[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 #include "TStopwatch.h"
16
17 class TArrayS;
18
19 class AliRawReader;
20 class AliMUONLocalStruct;
21
22 class AliMUONVRawStreamTracker;
23 class AliMUONRawStreamTrigger;
24
25 class AliMUONVDigitStore;
26 class AliMUONVTriggerStore;
27
28 class AliMUONDigitMaker : public TObject 
29 {
30  public:
31   AliMUONDigitMaker(Bool_t enableErrorLogger = kTRUE, Bool_t useFastDecoder = kFALSE); // Constructor
32   virtual ~AliMUONDigitMaker(void); // Destructor
33     
34   // write raw data
35   Int_t  Raw2Digits(AliRawReader* rawReader, 
36                     AliMUONVDigitStore* digitContainer=0,
37                     AliMUONVTriggerStore* triggerStore=0);
38
39   Int_t  ReadTrackerDDL(AliRawReader* rawReader);
40   Int_t  ReadTriggerDDL(AliRawReader* rawReader);
41   
42   Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, 
43                       AliMUONVDigitStore& digitStore) const;
44
45         /// Set flag to generates scaler event
46   void  SetScalerEvent() { fScalerEvent = kTRUE; }
47
48         /// Set flag whether or not we should generate digits for the trigger
49   void  SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
50
51   void  SetFastDecoder(Bool_t useFastDecoder); 
52
53 private:
54     
55   /// Not implemented
56   AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
57   /// Not implemented
58   AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
59
60 private:
61   void CreateRawStreamTracker(Bool_t useFastDecoder);
62
63   Bool_t fScalerEvent;       //!< flag to generates scaler event
64   Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
65   
66   AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker
67   AliMUONRawStreamTrigger* fRawStreamTrigger;  //!< pointer of raw stream for trigger
68
69   TStopwatch fTrackerTimer;                    //!< time watcher for tracker part
70   TStopwatch fTriggerTimer;                    //!< time watcher for trigger part
71   TStopwatch fMappingTimer;                    //!< time watcher for mapping-tracker part
72
73   AliMUONVDigitStore* fDigitStore; //!< not owner
74   AliMUONVTriggerStore* fTriggerStore; //!< not owner
75
76   ClassDef(AliMUONDigitMaker,5) // MUON digit maker from rawdata
77 };
78         
79 #endif