]>
Commit | Line | Data |
---|---|---|
a3283a4c | 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 | ||
241560c2 | 8 | /// \ingroup base |
a3283a4c | 9 | /// \class AliMUONDigitMaker |
78649106 | 10 | /// \brief Reading Raw data class for trigger and tracker chambers |
a3283a4c | 11 | /// |
78649106 | 12 | // Author: Ch, Finck |
a3283a4c | 13 | |
14 | #include <TObject.h> | |
8a91c35f | 15 | |
7771752e | 16 | class TArrayS; |
8a91c35f | 17 | |
00e86732 | 18 | class AliRawReader; |
d2d759cf | 19 | class AliMUONLocalStruct; |
a3283a4c | 20 | |
e3a2b9c9 | 21 | class AliMUONVRawStreamTracker; |
481d8064 | 22 | class AliMUONVRawStreamTrigger; |
a3283a4c | 23 | |
40e382ae | 24 | class AliMUONVDigitStore; |
25 | class AliMUONVTriggerStore; | |
26 | ||
0145e89a | 27 | class AliMUONLogger; |
28 | ||
a3283a4c | 29 | class AliMUONDigitMaker : public TObject |
30 | { | |
31 | public: | |
481d8064 | 32 | AliMUONDigitMaker( |
33 | Bool_t enableErrorLogger = kTRUE, | |
5f3519d9 | 34 | Bool_t useFastTrackerDecoder = kTRUE, Bool_t useFastTriggerDecoder = kTRUE |
481d8064 | 35 | ); // Constructor |
a3283a4c | 36 | virtual ~AliMUONDigitMaker(void); // Destructor |
37 | ||
be63c782 | 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 | ||
a3283a4c | 46 | // write raw data |
40e382ae | 47 | Int_t Raw2Digits(AliRawReader* rawReader, |
48 | AliMUONVDigitStore* digitContainer=0, | |
49 | AliMUONVTriggerStore* triggerStore=0); | |
a3283a4c | 50 | |
51 | Int_t ReadTrackerDDL(AliRawReader* rawReader); | |
52 | Int_t ReadTriggerDDL(AliRawReader* rawReader); | |
481d8064 | 53 | Int_t ReadTriggerDDLFast(AliRawReader* rawReader); |
40e382ae | 54 | |
55 | Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, | |
56 | AliMUONVDigitStore& digitStore) const; | |
d2d759cf | 57 | |
9265505b | 58 | /// Set flag to generates scaler event |
40e382ae | 59 | void SetScalerEvent() { fScalerEvent = kTRUE; } |
e604ac4c | 60 | |
40e382ae | 61 | /// Set flag whether or not we should generate digits for the trigger |
62 | void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; } | |
8a91c35f | 63 | |
481d8064 | 64 | Bool_t UsingFastTrackerDecoder() const; |
65 | Bool_t UsingFastTriggerDecoder() const; | |
66 | void SetFastTrackerDecoder(Bool_t useFastDecoder); | |
67 | void SetFastTriggerDecoder(Bool_t useFastDecoder); | |
d61f56df | 68 | |
b92a19ac | 69 | /// Return the raw stream object which decodes DDL raw data from tracking stations. |
70 | AliMUONVRawStreamTracker* GetRawStreamTracker() const { return fRawStreamTracker; } | |
71 | ||
72 | /// Return the raw stream object which decodes DDL raw data from the trigger system. | |
73 | AliMUONVRawStreamTrigger* GetRawStreamTrigger() const { return fRawStreamTrigger; } | |
74 | ||
be63c782 | 75 | void Print(Option_t* opt="") const; |
76 | ||
40e382ae | 77 | private: |
78 | ||
71a2d3aa | 79 | /// Not implemented |
80 | AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor | |
81 | /// Not implemented | |
82 | AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator | |
83 | ||
40e382ae | 84 | private: |
d61f56df | 85 | void CreateRawStreamTracker(Bool_t useFastDecoder); |
481d8064 | 86 | void CreateRawStreamTrigger(Bool_t useFastDecoder); |
8a91c35f | 87 | |
3c7f5307 | 88 | Bool_t fScalerEvent; //!< flag to generates scaler event |
40e382ae | 89 | Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger |
90 | ||
e3a2b9c9 | 91 | AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker |
481d8064 | 92 | AliMUONVRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger |
a3283a4c | 93 | |
40e382ae | 94 | AliMUONVDigitStore* fDigitStore; //!< not owner |
95 | AliMUONVTriggerStore* fTriggerStore; //!< not owner | |
3c7f5307 | 96 | |
0145e89a | 97 | AliMUONLogger* fLogger; //!< to log messages |
98 | ||
99 | ClassDef(AliMUONDigitMaker,6) // MUON digit maker from rawdata | |
a3283a4c | 100 | }; |
101 | ||
102 | #endif |