X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRawWriter.h;h=006766f7da4374f18d9e78b57a0bb60e58cf3843;hb=dba333aea1f30dee5c9f8af2b879baef7b8d9dba;hp=1b0a4fdbcfe5a19d155c6707622d3a51c9c9c280;hpb=8778870d792fdd8690d411a19d07efc7ec49453c;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRawWriter.h b/MUON/AliMUONRawWriter.h index 1b0a4fdbcfe..006766f7da4 100644 --- a/MUON/AliMUONRawWriter.h +++ b/MUON/AliMUONRawWriter.h @@ -5,86 +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 "AliMUONSubEventTracker.h" -#include "TStopwatch.h" - -class AliMUONDDLTracker; -class AliMUONDDLTrigger; -class AliMUONData; -class AliMUONDigit; +#include "AliFstream.h" + +class AliMUONBlockHeader; +class AliMUONBusStruct; +class AliMUONDarcHeader; +class AliMUONVDigit; +class AliMUONDspHeader; class AliMUONGlobalTrigger; -class AliMUONSubEventTrigger; -class AliMpBusPatch; -class AliMpSegFactory; +class AliMUONLocalStruct; +class AliMUONRegHeader; +class AliMUONVDigitStore; +class AliMUONVTriggerStore; +class AliMpDDLStore; +class AliMpExMap; +class AliRawDataHeaderSim; class AliMUONRawWriter : public TObject { public: - AliMUONRawWriter(AliMUONData* data); // Constructor - virtual ~AliMUONRawWriter(void); // Destructor + AliMUONRawWriter(); // Constructor + virtual ~AliMUONRawWriter(); // Destructor // write raw data - Int_t Digits2Raw(); - - void SetScalerEvent() {fScalerEvent = kTRUE;} + Int_t Digits2Raw(AliMUONVDigitStore* digitStore, AliMUONVTriggerStore* triggerStore); -protected: - AliMUONRawWriter(); // Default constructor - AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor - AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator + void SetScalersNumbers(); + + /// Set the header of DDL + void SetHeader(AliRawDataHeaderSim& header) {fHeader = &header;} - // writing raw data - Int_t WriteTrackerDDL(Int_t iCh); - Int_t WriteTriggerDDL(); - private: - void AddData(const AliMUONSubEventTracker& event) - { - TClonesArray &temp = *fSubEventArray; - new(temp[temp.GetEntriesFast()]) AliMUONSubEventTracker(event); - } + void Digits2BusPatchMap(const AliMUONVDigitStore& digitStore, AliMpExMap& busPatchMap); + void WriteTrackerDDL(AliMpExMap& busPatchMap, Int_t iDDL); - Int_t GetBusPatch(const AliMUONDigit& digit); + //void WriteBusPatch(AliMUONLocalBusStruct* busStruct); + + Int_t WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore, AliFstream* file[2]); - Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const; + Int_t GetBusPatch(const AliMUONVDigit& digit) const; private: + /// Not implemented copy constructor + AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor + /// Not implemented assignment operator + AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); - AliMUONData* fMUONData; //! Data container for MUON subsystem - - FILE* fFile[2]; //! DDL binary file pointer one per 1/2 chamber - - TClonesArray* fSubEventArray; //! array to sub event tracker - - AliMUONDDLTracker* fDDLTracker; //! DDL tracker class pointers - AliMUONDDLTrigger* fDDLTrigger; //! DDL trigger class pointers + 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); - AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL + 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 - Bool_t fScalerEvent; // flag to generates scaler event + AliMpDDLStore* fDDLStore; //!< DDL store pointer - static Int_t fgManuPerBusSwp1B[12]; //! array containing the first manuId for each buspatch st1, Bending - static Int_t fgManuPerBusSwp1NB[12]; //! array containing the first manuId for each buspatch st1, NBending + Bool_t fScalerEvent; ///< flag to generates scaler event - static Int_t fgManuPerBusSwp2B[12]; //! array containing the first manuId for each buspatch st2, Bending - static Int_t fgManuPerBusSwp2NB[12]; //! array containing the first manuId for each buspatch st2, NBending - - TStopwatch fTrackerTimer; //! - TStopwatch fTriggerTimer; //! - TStopwatch fMappingTimer; //! + AliRawDataHeaderSim* fHeader; ///< header of DDL - AliMpSegFactory* fSegFactory; //! - - ClassDef(AliMUONRawWriter,0) // MUON cluster reconstructor in ALICE + Int_t fBufferSize; //!< size of internal data buffer + Int_t* fBuffer; //!< internal data buffer + + ClassDef(AliMUONRawWriter,5) // MUON cluster reconstructor in ALICE }; #endif