X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDigitMaker.h;h=63c48968e3ff7d18f6e771ba040a2f638b167a9a;hb=c3f1200eb5655ec2843bd83ccc925a7d9f147041;hp=05048202da34d5f8416c9e8a4cf0d2ec195029a1;hpb=e5ced89992bf22b60f274ef390516bcbcec8c858;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigitMaker.h b/MUON/AliMUONDigitMaker.h index 05048202da3..63c48968e3f 100644 --- a/MUON/AliMUONDigitMaker.h +++ b/MUON/AliMUONDigitMaker.h @@ -7,84 +7,96 @@ /// \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 AliRawReader; -class AliMUONData; -class AliMUONDigit; -class AliMUONGlobalTrigger; -class AliMUONLocalTrigger; -class AliMUONTriggerCrateStore; -class AliMUONLocalTriggerBoard; class AliMUONLocalStruct; -class AliMUONRawStreamTracker; -class AliMUONRawStreamTrigger; +class AliMUONVRawStreamTracker; +class AliMUONVRawStreamTrigger; + +class AliMUONVDigitStore; +class AliMUONVTriggerStore; + +class AliMUONLogger; class AliMUONDigitMaker : public TObject { public: - AliMUONDigitMaker(Bool_t digit = kTRUE); // 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); - - /// 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 ); - - void GetTriggerChamber(AliMUONLocalStruct* localStruct, - Int_t& xyPattern, Int_t& iChamber, Int_t& iCath, Int_t iCase ); - - /// Set flag to generates scaler event - void SetScalerEvent() {fScalerEvent = kTRUE;} - - /// Set Crate array - void SetCrateManager(AliMUONTriggerCrateStore* crateManager) {fCrateManager = crateManager;} - - private: - - AliMUONData* fMUONData; //!< Data container for MUON subsystem + Int_t ReadTriggerDDLFast(AliRawReader* rawReader); - Bool_t fScalerEvent; //!< flag to generates scaler event + Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern, + AliMUONVDigitStore& digitStore) const; - Bool_t fDigitFlag; //!< true for Digit, false for SDigit + /// Set flag to generates scaler event + void SetScalerEvent() { fScalerEvent = kTRUE; } - AliMUONRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker - AliMUONRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger + /// Set flag whether or not we should generate digits for the trigger + void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; } - AliMUONDigit* fDigit; //!< pointer to digits + Bool_t UsingFastTrackerDecoder() const; + Bool_t UsingFastTriggerDecoder() const; + void SetFastTrackerDecoder(Bool_t useFastDecoder); + void SetFastTriggerDecoder(Bool_t useFastDecoder); - 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. + AliMUONVRawStreamTracker* GetRawStreamTracker() const { return fRawStreamTracker; } - AliMUONTriggerCrateStore* fCrateManager; //!< Crate array + /// Return the raw stream object which decodes DDL raw data from the trigger system. + AliMUONVRawStreamTrigger* 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) const; +private: + void CreateRawStreamTracker(Bool_t useFastDecoder); + void CreateRawStreamTrigger(Bool_t useFastDecoder); - ClassDef(AliMUONDigitMaker,1) // MUON digit maker from rawdata + 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 + + AliMUONVDigitStore* fDigitStore; //!< not owner + AliMUONVTriggerStore* fTriggerStore; //!< not owner + + AliMUONLogger* fLogger; //!< to log messages + + ClassDef(AliMUONDigitMaker,6) // MUON digit maker from rawdata }; #endif