X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=inline;f=MUON%2FAliMUONDigitMaker.h;h=63c48968e3ff7d18f6e771ba040a2f638b167a9a;hb=f7a1cc68313147ec921d4c82df1890abe00e4032;hp=3c3f10c44d68f5aedc61161da4d563a8e0edc369;hpb=a3283a4cc134b176c1122ba79f534c8b3a205e50;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigitMaker.h b/MUON/AliMUONDigitMaker.h index 3c3f10c44d6..63c48968e3f 100644 --- a/MUON/AliMUONDigitMaker.h +++ b/MUON/AliMUONDigitMaker.h @@ -5,74 +5,98 @@ /*$Id$*/ -/// \ingroup rec +/// \ingroup base /// \class AliMUONDigitMaker -/// \brief Raw data class for trigger and tracker chambers +/// \brief Reading Raw data class for trigger and tracker chambers /// -/// Readding Raw data class for trigger and tracker chambers +// Author: Ch, Finck #include -#include "TStopwatch.h" +class TArrayS; -class AliMpBusPatch; -class AliMUONData; -class AliMUONDigit; -class AliMUONGlobalTrigger; -class AliMUONLocalTrigger; +class AliRawReader; +class AliMUONLocalStruct; -class AliMpSegFactory; -class AliMUONRawStreamTracker; -class AliMUONRawStreamTrigger; +class AliMUONVRawStreamTracker; +class AliMUONVRawStreamTrigger; + +class AliMUONVDigitStore; +class AliMUONVTriggerStore; + +class AliMUONLogger; class AliMUONDigitMaker : public TObject { public: - AliMUONDigitMaker(AliMUONData* data); // 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); + Int_t Raw2Digits(AliRawReader* rawReader, + AliMUONVDigitStore* digitContainer=0, + AliMUONVTriggerStore* triggerStore=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; - AliMUONData* GetMUONData() const {return fMUONData;} - void SetMUONData(AliMUONData* data) {fMUONData = data;} - - Int_t GetMapping(Int_t buspatchId, UShort_t manuId, - UChar_t channelId, AliMUONDigit* digit ); + /// Set flag to generates scaler event + void SetScalerEvent() { fScalerEvent = kTRUE; } - void SetScalerEvent() {fScalerEvent = kTRUE;} + /// Set flag whether or not we should generate digits for the trigger + void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; } - protected: - AliMUONDigitMaker(); // Default constructor - AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor - AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator + Bool_t UsingFastTrackerDecoder() const; + Bool_t UsingFastTriggerDecoder() const; + void SetFastTrackerDecoder(Bool_t useFastDecoder); + void SetFastTriggerDecoder(Bool_t useFastDecoder); - private: + /// Return the raw stream object which decodes DDL raw data from tracking stations. + AliMUONVRawStreamTracker* GetRawStreamTracker() const { return fRawStreamTracker; } - AliMUONData* fMUONData; //! Data container for MUON subsystem - - AliMpSegFactory* fSegFactory; //! Mapping segmentation factory + /// Return the raw stream object which decodes DDL raw data from the trigger system. + AliMUONVRawStreamTrigger* GetRawStreamTrigger() const { return fRawStreamTrigger; } - AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL + void Print(Option_t* opt="") const; - Bool_t fScalerEvent; //! flag to generates scaler event - - AliMUONRawStreamTracker* fRawStreamTracker; //!pointer of raw stream for tracker - AliMUONRawStreamTrigger* fRawStreamTrigger; //!pointer of raw stream for trigger +private: + + /// Not implemented + AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor + /// Not implemented + AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator - AliMUONDigit* fDigit; //! pointer to digits +private: + void CreateRawStreamTracker(Bool_t useFastDecoder); + void CreateRawStreamTrigger(Bool_t useFastDecoder); - AliMUONLocalTrigger* fLocalTrigger; //! pointer to local trigger - AliMUONGlobalTrigger* fGlobalTrigger; //! pointer to local trigger + Bool_t fScalerEvent; //!< flag to generates scaler event + Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger + + AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker + AliMUONVRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger - TStopwatch fTrackerTimer; //! - TStopwatch fTriggerTimer; //! - TStopwatch fMappingTimer; //! + AliMUONVDigitStore* fDigitStore; //!< not owner + AliMUONVTriggerStore* fTriggerStore; //!< not owner - ClassDef(AliMUONDigitMaker,1) // MUON digit maker from rawdata + AliMUONLogger* fLogger; //!< to log messages + + ClassDef(AliMUONDigitMaker,6) // MUON digit maker from rawdata }; #endif