// Author: Ch, Finck
#include <TObject.h>
-#include "TStopwatch.h"
class TArrayS;
class AliRawReader;
class AliMUONLocalStruct;
-class AliMUONRawStreamTracker;
-class AliMUONRawStreamTrigger;
+class AliMUONVRawStreamTracker;
+class AliMUONVRawStreamTrigger;
class AliMUONVDigitStore;
class AliMUONVTriggerStore;
+class AliMUONLogger;
+
class AliMUONDigitMaker : public TObject
{
public:
- AliMUONDigitMaker(); // Constructor
+ AliMUONDigitMaker(
+ Bool_t enableErrorLogger = kTRUE,
+ Bool_t useFastTrackerDecoder = kTRUE, Bool_t useFastTriggerDecoder = kTRUE
+ ); // Constructor
virtual ~AliMUONDigitMaker(void); // Destructor
+ /// Code to indicate readout errors
+ enum ErrorCode
+ {
+ kOK=0, ///< everything is OK
+ kTrackerBAD=1<<1, ///< tracker part had readout errors
+ kTriggerBAD=1<<2 ///< trigger part had readout errors
+ };
+
// write raw data
Int_t Raw2Digits(AliRawReader* rawReader,
AliMUONVDigitStore* digitContainer=0,
Int_t ReadTrackerDDL(AliRawReader* rawReader);
Int_t ReadTriggerDDL(AliRawReader* rawReader);
+ Int_t ReadTriggerDDLFast(AliRawReader* rawReader);
Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern,
AliMUONVDigitStore& digitStore) const;
/// Set flag whether or not we should generate digits for the trigger
void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
+ Bool_t UsingFastTrackerDecoder() const;
+ Bool_t UsingFastTriggerDecoder() const;
+ void SetFastTrackerDecoder(Bool_t useFastDecoder);
+ void SetFastTriggerDecoder(Bool_t useFastDecoder);
+
+ void Print(Option_t* opt="") const;
+
private:
/// Not implemented
AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
private:
+ void CreateRawStreamTracker(Bool_t useFastDecoder);
+ void CreateRawStreamTrigger(Bool_t useFastDecoder);
- Bool_t fScalerEvent; //!< flag to generates scaler event
+ Bool_t fScalerEvent; //!< flag to generates scaler event
Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
- AliMUONRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker
- AliMUONRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger
-
- TStopwatch fTrackerTimer; //!< time watcher for tracker part
- TStopwatch fTriggerTimer; //!< time watcher for trigger part
- TStopwatch fMappingTimer; //!< time watcher for mapping-tracker part
+ AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker
+ AliMUONVRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger
AliMUONVDigitStore* fDigitStore; //!< not owner
AliMUONVTriggerStore* fTriggerStore; //!< not owner
+
+ AliMUONLogger* fLogger; //!< to log messages
- ClassDef(AliMUONDigitMaker,5) // MUON digit maker from rawdata
+ ClassDef(AliMUONDigitMaker,6) // MUON digit maker from rawdata
};
#endif