]>
Commit | Line | Data |
---|---|---|
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 AliMUONVRawStreamTracker; | |
22 | class AliMUONVRawStreamTrigger; | |
23 | ||
24 | class AliMUONVDigitStore; | |
25 | class AliMUONVTriggerStore; | |
26 | ||
27 | class AliMUONLogger; | |
28 | ||
29 | class AliMUONDigitMaker : public TObject | |
30 | { | |
31 | public: | |
32 | AliMUONDigitMaker( | |
33 | Bool_t enableErrorLogger = kTRUE, | |
34 | Bool_t useFastTrackerDecoder = kTRUE, Bool_t useFastTriggerDecoder = kTRUE | |
35 | ); // Constructor | |
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 | Int_t ReadTriggerDDLFast(AliRawReader* rawReader); | |
54 | ||
55 | Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, | |
56 | AliMUONVDigitStore& digitStore) const; | |
57 | ||
58 | /// Set flag to generates scaler event | |
59 | void SetScalerEvent() { fScalerEvent = kTRUE; } | |
60 | ||
61 | /// Set flag whether or not we should generate digits for the trigger | |
62 | void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; } | |
63 | ||
64 | Bool_t UsingFastTrackerDecoder() const; | |
65 | Bool_t UsingFastTriggerDecoder() const; | |
66 | void SetFastTrackerDecoder(Bool_t useFastDecoder); | |
67 | void SetFastTriggerDecoder(Bool_t useFastDecoder); | |
68 | ||
69 | void Print(Option_t* opt="") const; | |
70 | ||
71 | private: | |
72 | ||
73 | /// Not implemented | |
74 | AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor | |
75 | /// Not implemented | |
76 | AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator | |
77 | ||
78 | private: | |
79 | void CreateRawStreamTracker(Bool_t useFastDecoder); | |
80 | void CreateRawStreamTrigger(Bool_t useFastDecoder); | |
81 | ||
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 | AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker | |
86 | AliMUONVRawStreamTrigger* 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,6) // MUON digit maker from rawdata | |
94 | }; | |
95 | ||
96 | #endif |