X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDigitMaker.h;h=8624d4d6723fb72bbee8897b511bd719d9b440ac;hb=9004af1c27224d9feb1cb57eecf6da4f304c977d;hp=7fcbf63911277e2a884f9c322f41e7b359158641;hpb=8a91c35f83b364089ce9dbc8ba39f88629d30a24;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigitMaker.h b/MUON/AliMUONDigitMaker.h index 7fcbf639112..8624d4d6723 100644 --- a/MUON/AliMUONDigitMaker.h +++ b/MUON/AliMUONDigitMaker.h @@ -12,98 +12,87 @@ // Author: Ch, Finck #include -#include "TStopwatch.h" -class TList; +class TArrayS; class AliRawReader; -class AliMUONData; -class AliMUONDigit; -class AliMUONGlobalTrigger; -class AliMUONLocalTrigger; -class AliMUONTriggerCrateStore; -class AliMUONLocalTriggerBoard; class AliMUONLocalStruct; -class AliMUONRawStreamTracker; -class AliMUONRawStreamTrigger; +class AliMUONRawStreamTrackerHP; +class AliMUONRawStreamTriggerHP; + +class AliMUONVDigitStore; +class AliMUONVTriggerStore; + +class AliMUONLogger; class AliMUONDigitMaker : public TObject { public: - AliMUONDigitMaker(Bool_t digit = kTRUE); // 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); - - /// Return MUON data - AliMUONData* GetMUONData() const {return fMUONData;} - /// Set MUON data - void SetMUONData(AliMUONData* data) {fMUONData = data;} - - Int_t GetMapping(Int_t buspatchId, UShort_t manuId, - UChar_t channelId, AliMUONDigit* digit ); - - Int_t TriggerDigits(AliMUONLocalTriggerBoard* localBoard, - AliMUONLocalStruct* localStruct, TList& digitList ); + + Int_t TriggerDigits(Int_t nBoard, const TArrayS* xyPattern, + AliMUONVDigitStore& digitStore, Bool_t warn = kTRUE) const; - void GetTriggerChamber(AliMUONLocalStruct* localStruct, - Int_t& xyPattern, Int_t& iChamber, Int_t& iCath, Int_t iCase ); + Bool_t TriggerToDigitsStore(const AliMUONVTriggerStore& triggerStore, + AliMUONVDigitStore& digitStore) const; /// 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; } - /// Disable trigger rawdata reading - void DisableTrigger() {fTriggerFlag = kFALSE;} + /// Return the raw stream object which decodes DDL raw data from tracking stations. + AliMUONRawStreamTrackerHP* GetRawStreamTracker() const { return fRawStreamTracker; } - /// Set Crate array - void SetCrateManager(AliMUONTriggerCrateStore* crateManager) {fCrateManager = crateManager;} + /// Return the raw stream object which decodes DDL raw data from the trigger system. + AliMUONRawStreamTriggerHP* GetRawStreamTrigger() const { return fRawStreamTrigger; } - /// enable only list of digits for the display - void SetDisplayFlag() { fDisplayFlag = kTRUE; } + void Print(Option_t* opt="") const; - // return the list of digits to the display - TList* GetDigitsList() { return fDigitsList; } + void SetTryRecover(Bool_t flag); - private: +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) const; - - AliMUONData* fMUONData; //!< Data container for MUON subsystem +private: + Bool_t fScalerEvent; //!< flag to generates scaler event + Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger - Bool_t fScalerEvent; //!< flag to generates scaler event + AliMUONRawStreamTrackerHP* fRawStreamTracker; //!< pointer of raw stream for tracker + AliMUONRawStreamTriggerHP* fRawStreamTrigger; //!< pointer of raw stream for trigger - Bool_t fDigitFlag; //!< true for Digit, false for SDigit + AliMUONVDigitStore* fDigitStore; //!< not owner + AliMUONVTriggerStore* fTriggerStore; //!< not owner - Bool_t fTriggerFlag; //!< true for reading also trigger rawdata - - Bool_t fDisplayFlag; //!< true for returning digits list to the display - - TList* fDigitsList; //!< list to return to the display - - AliMUONRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker - AliMUONRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger - - AliMUONDigit* fDigit; //!< pointer to digits - - AliMUONLocalTrigger* fLocalTrigger; //!< pointer to local trigger - AliMUONGlobalTrigger* fGlobalTrigger; //!< pointer to local trigger - - AliMUONTriggerCrateStore* fCrateManager; //!< Crate array - - TStopwatch fTrackerTimer; //!< time watcher for tracker part - TStopwatch fTriggerTimer; //!< time watcher for trigger part - TStopwatch fMappingTimer; //!< time watcher for mapping-tracker part - - ClassDef(AliMUONDigitMaker,1) // MUON digit maker from rawdata + AliMUONLogger* fLogger; //!< to log messages + + ClassDef(AliMUONDigitMaker,7) // MUON digit maker from rawdata }; #endif