]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONDigitMaker.h
12-sep-2006 NvE Memberfunctions GetNslots and AddNamedSlot introduced and various
[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 rec
9 /// \class AliMUONDigitMaker
10 /// \brief Raw data class for trigger and tracker chambers
11 ///
12 /// Readding Raw data class for trigger and tracker chambers
13
14 #include <TObject.h>
15 #include "TStopwatch.h"
16
17 class AliMpBusPatch;
18 class AliMUONData;
19 class AliMUONDigit;
20 class AliMUONGlobalTrigger;
21 class AliMUONLocalTrigger;
22 class AliMUONTriggerCrateStore;
23
24 class AliMpSegFactory;
25 class AliMUONRawStreamTracker;
26 class AliMUONRawStreamTrigger;
27
28 class AliMUONDigitMaker : public TObject 
29 {
30  public:
31   AliMUONDigitMaker(); // Constructor
32   virtual ~AliMUONDigitMaker(void); // Destructor
33     
34   // write raw data
35   Int_t  Raw2Digits(AliRawReader* rawReader);
36
37   Int_t  ReadTrackerDDL(AliRawReader* rawReader);
38   Int_t  ReadTriggerDDL(AliRawReader* rawReader);
39
40   AliMUONData*   GetMUONData() const {return fMUONData;}
41   void SetMUONData(AliMUONData* data) {fMUONData = data;}
42  
43   Int_t GetMapping(Int_t buspatchId, UShort_t manuId, 
44                           UChar_t channelId, AliMUONDigit* digit );
45
46   void  SetScalerEvent() {fScalerEvent = kTRUE;}
47
48  private:
49
50   AliMUONData*     fMUONData;          //!< Data container for MUON subsystem 
51   
52   AliMpSegFactory* fSegFactory;        //!< Mapping segmentation factory
53
54   AliMpBusPatch*   fBusPatchManager;   //!< buspatch versus DE's & DDL
55
56   Bool_t           fScalerEvent;       //!< flag to generates scaler event
57
58   AliMUONRawStreamTracker* fRawStreamTracker;  //!< pointer of raw stream for tracker
59   AliMUONRawStreamTrigger* fRawStreamTrigger;  //!< pointer of raw stream for trigger
60
61   AliMUONDigit*        fDigit;                 //!< pointer to digits
62
63   AliMUONLocalTrigger*  fLocalTrigger;         //!< pointer to local trigger
64   AliMUONGlobalTrigger* fGlobalTrigger;        //!< pointer to local trigger
65
66   AliMUONTriggerCrateStore* fCrateManager;     //!< Crate array
67
68   TStopwatch fTrackerTimer;                    //!< time watcher for tracker part
69   TStopwatch fTriggerTimer;                    //!< time watcher for trigger part
70   TStopwatch fMappingTimer;                    //!< time watcher for mapping-tracker part
71
72   AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
73   AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
74
75   void GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg);
76
77   ClassDef(AliMUONDigitMaker,1) // MUON digit maker from rawdata
78 };
79         
80 #endif