Rewritten using new VDigitStore, VDigit and VTriggerStore interfaces (Laurent)
[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 AliMUONTriggerCrateStore;
21 class AliMUONLocalStruct;
22
23 class AliMUONRawStreamTracker;
24 class AliMUONRawStreamTrigger;
25
26 class AliMUONVDigitStore;
27 class AliMUONVTriggerStore;
28
29 class AliMUONDigitMaker : public TObject 
30 {
31  public:
32   AliMUONDigitMaker(); // Constructor
33   virtual ~AliMUONDigitMaker(void); // Destructor
34     
35   // write raw data
36   Int_t  Raw2Digits(AliRawReader* rawReader, 
37                     AliMUONVDigitStore* digitContainer=0,
38                     AliMUONVTriggerStore* triggerStore=0);
39
40   Int_t  ReadTrackerDDL(AliRawReader* rawReader);
41   Int_t  ReadTriggerDDL(AliRawReader* rawReader);
42   
43   Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, 
44                       AliMUONVDigitStore& digitStore) const;
45
46         /// Set flag to generates scaler event
47   void  SetScalerEvent() { fScalerEvent = kTRUE; }
48
49         /// Set Crate array
50   void  SetCrateManager(AliMUONTriggerCrateStore* crateManager) { fCrateManager =  crateManager; }
51
52         /// Set flag whether or not we should generate digits for the trigger
53   void  SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
54
55 private:
56     
57   /// Not implemented
58   AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
59   /// Not implemented
60   AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
61
62   void GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg) const;
63
64 private:
65
66   Bool_t           fScalerEvent;       //!< flag to generates scaler event
67   Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
68   
69   AliMUONRawStreamTracker* fRawStreamTracker;  //!< pointer of raw stream for tracker
70   AliMUONRawStreamTrigger* fRawStreamTrigger;  //!< pointer of raw stream for trigger
71
72   AliMUONTriggerCrateStore* fCrateManager;     //!< Crate array
73
74   TStopwatch fTrackerTimer;                    //!< time watcher for tracker part
75   TStopwatch fTriggerTimer;                    //!< time watcher for trigger part
76   TStopwatch fMappingTimer;                    //!< time watcher for mapping-tracker part
77
78   AliMUONVDigitStore* fDigitStore; //!< not owner
79   AliMUONVTriggerStore* fTriggerStore; //!< not owner
80   
81   ClassDef(AliMUONDigitMaker,4) // MUON digit maker from rawdata
82 };
83         
84 #endif