X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=MUON%2FAliMUONRawWriter.h;h=006766f7da4374f18d9e78b57a0bb60e58cf3843;hb=ac624e6b6623ca672954beab3b2db02723d27fdb;hp=b69bb2c8e080c6319ea773a09d821b208425528e;hpb=a19e254322c6f837c1c4da1fd4f7a733952ec499;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRawWriter.h b/MUON/AliMUONRawWriter.h index b69bb2c8e08..006766f7da4 100644 --- a/MUON/AliMUONRawWriter.h +++ b/MUON/AliMUONRawWriter.h @@ -5,78 +5,80 @@ /*$Id$*/ -/// \ingroup rec +/// \ingroup base /// \class AliMUONRawWriter /// \brief Raw data class for trigger and tracker chambers /// -/// Writring Raw data class for trigger and tracker chambers +// Author Christian Finck and Laurent Aphecetche, Subatech #include -#include -#include "AliMpBusPatch.h" -#include "AliMUONSubEventTracker.h" - -class TArrayI; -class AliLoader; -class AliMUONData; -class AliMUONDigit; -class AliMUONDDLTracker; -class AliMUONDDLTrigger; -class AliMUONGlobalTrigger; -class AliMUONSubEventTrigger; -class AliRawReader; +#include "AliFstream.h" + +class AliMUONBlockHeader; +class AliMUONBusStruct; +class AliMUONDarcHeader; +class AliMUONVDigit; +class AliMUONDspHeader; class AliMUONGlobalTrigger; -class AliMpSegFactory; +class AliMUONLocalStruct; +class AliMUONRegHeader; +class AliMUONVDigitStore; +class AliMUONVTriggerStore; +class AliMpDDLStore; +class AliMpExMap; +class AliRawDataHeaderSim; class AliMUONRawWriter : public TObject { public: - AliMUONRawWriter(AliLoader* loader, AliMUONData* data); // Constructor - virtual ~AliMUONRawWriter(void); // Destructor + AliMUONRawWriter(); // Constructor + virtual ~AliMUONRawWriter(); // Destructor // write raw data - Int_t Digits2Raw(); + Int_t Digits2Raw(AliMUONVDigitStore* digitStore, AliMUONVTriggerStore* triggerStore); + + void SetScalersNumbers(); - AliMUONData* GetMUONData() {return fMUONData;} + /// Set the header of DDL + void SetHeader(AliRawDataHeaderSim& header) {fHeader = &header;} - void AddData(const AliMUONSubEventTracker* event) { - TClonesArray &temp = *fSubEventArray; - new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event); - } +private: - // could be private function (public for debugging) - Int_t GetInvMapping(const AliMUONDigit* digit, Int_t &busPatchId, - UShort_t &manuId, UChar_t &channelId); + void Digits2BusPatchMap(const AliMUONVDigitStore& digitStore, AliMpExMap& busPatchMap); + void WriteTrackerDDL(AliMpExMap& busPatchMap, Int_t iDDL); - Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const; + //void WriteBusPatch(AliMUONLocalBusStruct* busStruct); + + Int_t WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore, AliFstream* file[2]); + + Int_t GetBusPatch(const AliMUONVDigit& digit) const; - protected: - AliMUONRawWriter(); // Default constructor +private: + /// Not implemented copy constructor AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor - AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator - - private: + /// Not implemented assignment operator + AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); - AliMUONData* fMUONData; //! Data container for MUON subsystem - - AliLoader* fLoader; //! alice loader - - AliMpSegFactory* fSegFactory; //! Mapping segmentation factory + static void LocalWordPacking(UInt_t &word, UInt_t locId, UInt_t locDec, + UInt_t trigY, UInt_t posY, UInt_t posX, + UInt_t sdevX, UInt_t devX); - FILE* fFile[2]; //! DDL binary file pointer one per 1/2 chamber + AliMUONBlockHeader* fBlockHeader; //!< DDL block header class pointers + AliMUONDspHeader* fDspHeader; //!< DDL Dsp header class pointers + AliMUONDarcHeader* fDarcHeader; //!< DDL darc header class pointers + AliMUONRegHeader* fRegHeader; //!< DDL regional header class pointers + AliMUONLocalStruct* fLocalStruct; //!< DDL local structure class pointers - TClonesArray* fSubEventArray; //! array to sub event tracker - - AliMUONDDLTracker* fDDLTracker; //! DDL tracker class pointers - AliMUONDDLTrigger* fDDLTrigger; //! DDL trigger class pointers + AliMpDDLStore* fDDLStore; //!< DDL store pointer - AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL + Bool_t fScalerEvent; ///< flag to generates scaler event - // writing raw data - Int_t WriteTrackerDDL(Int_t iCh); - Int_t WriteTriggerDDL(); + AliRawDataHeaderSim* fHeader; ///< header of DDL + + Int_t fBufferSize; //!< size of internal data buffer + Int_t* fBuffer; //!< internal data buffer - ClassDef(AliMUONRawWriter,1) // MUON cluster reconstructor in ALICE + ClassDef(AliMUONRawWriter,5) // MUON cluster reconstructor in ALICE }; #endif