]>
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 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, const TArrayS* xyPattern, | |
55 | AliMUONVDigitStore& digitStore, Bool_t warn = kTRUE) 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 | void SetTryRecover(Bool_t flag); | |
75 | ||
76 | private: | |
77 | ||
78 | /// Not implemented | |
79 | AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor | |
80 | /// Not implemented | |
81 | AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator | |
82 | ||
83 | private: | |
84 | Bool_t fScalerEvent; //!< flag to generates scaler event | |
85 | Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger | |
86 | ||
87 | AliMUONRawStreamTrackerHP* fRawStreamTracker; //!< pointer of raw stream for tracker | |
88 | AliMUONRawStreamTriggerHP* fRawStreamTrigger; //!< pointer of raw stream for trigger | |
89 | ||
90 | AliMUONVDigitStore* fDigitStore; //!< not owner | |
91 | AliMUONVTriggerStore* fTriggerStore; //!< not owner | |
92 | ||
93 | AliMUONLogger* fLogger; //!< to log messages | |
94 | ||
95 | ClassDef(AliMUONDigitMaker,7) // MUON digit maker from rawdata | |
96 | }; | |
97 | ||
98 | #endif |