X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDigitMaker.h;h=0341a74f12583cb36dea5707b2763e9839a51e4a;hb=a5cad1a4744c4a29e2026a92df10d5bc232204cc;hp=96c2d28f32146cc752ad6a4a69161d820f28768b;hpb=d53fb0de8936bc836be15de06556a66bf9cd9f1d;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigitMaker.h b/MUON/AliMUONDigitMaker.h index 96c2d28f321..0341a74f125 100644 --- a/MUON/AliMUONDigitMaker.h +++ b/MUON/AliMUONDigitMaker.h @@ -5,79 +5,92 @@ /*$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 AliMpBusPatch; -class AliMUONData; -class AliMUONDigit; -class AliMUONGlobalTrigger; -class AliMUONLocalTrigger; -class AliMUONTriggerCrateStore; +class TArrayS; -class AliMpSegFactory; -class AliMUONRawStreamTracker; -class AliMUONRawStreamTrigger; +class AliRawReader; +class AliMUONLocalStruct; + +class AliMUONRawStreamTrackerHP; +class AliMUONRawStreamTriggerHP; + +class AliMUONVDigitStore; +class AliMUONVTriggerStore; + +class AliMUONLogger; class AliMUONDigitMaker : public TObject { public: - AliMUONDigitMaker(AliMUONData* data); // Constructor + AliMUONDigitMaker(Bool_t enableErrorLogger, Bool_t a, Bool_t b); + + AliMUONDigitMaker(Bool_t enableErrorLogger = 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); - - 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 ); - - void SetScalerEvent() {fScalerEvent = kTRUE;} - - protected: - AliMUONDigitMaker(); // Default constructor - - private: - - AliMUONData* fMUONData; //!< Data container for MUON subsystem - AliMpSegFactory* fSegFactory; //!< Mapping segmentation factory - - AliMpBusPatch* fBusPatchManager; //!< buspatch versus DE's & DDL + Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, + AliMUONVDigitStore& digitStore) const; - Bool_t fScalerEvent; //!< flag to generates scaler event + Bool_t TriggerToDigitsStore(const AliMUONVTriggerStore& triggerStore, + AliMUONVDigitStore& digitStore) const; - AliMUONRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker - AliMUONRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger + /// Set flag to generates scaler event + void SetScalerEvent() { fScalerEvent = kTRUE; } - AliMUONDigit* fDigit; //!< pointer to digits + /// Set flag whether or not we should generate digits for the trigger + void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; } - AliMUONLocalTrigger* fLocalTrigger; //!< pointer to local trigger - AliMUONGlobalTrigger* fGlobalTrigger; //!< pointer to local trigger + /// Return the raw stream object which decodes DDL raw data from tracking stations. + AliMUONRawStreamTrackerHP* GetRawStreamTracker() const { return fRawStreamTracker; } - AliMUONTriggerCrateStore* fCrateManager; //!< Crate array + /// Return the raw stream object which decodes DDL raw data from the trigger system. + AliMUONRawStreamTriggerHP* GetRawStreamTrigger() const { return fRawStreamTrigger; } - TStopwatch fTrackerTimer; //!< time watcher for tracker part - TStopwatch fTriggerTimer; //!< time watcher for trigger part - TStopwatch fMappingTimer; //!< time watcher for mapping-tracker part + void Print(Option_t* opt="") const; +private: + + /// Not implemented AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor + /// Not implemented AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator - void GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg); +private: + Bool_t fScalerEvent; //!< flag to generates scaler event + Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger + + AliMUONRawStreamTrackerHP* fRawStreamTracker; //!< pointer of raw stream for tracker + AliMUONRawStreamTriggerHP* fRawStreamTrigger; //!< pointer of raw stream for trigger + + AliMUONVDigitStore* fDigitStore; //!< not owner + AliMUONVTriggerStore* fTriggerStore; //!< not owner - ClassDef(AliMUONDigitMaker,1) // MUON digit maker from rawdata + AliMUONLogger* fLogger; //!< to log messages + + ClassDef(AliMUONDigitMaker,7) // MUON digit maker from rawdata }; #endif