/*$Id$*/
-/// \ingroup rec
+/// \ingroup sim
/// \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 <TObject.h>
-#include <TClonesArray.h>
-#include "AliMUONSubEventTracker.h"
-#include "TStopwatch.h"
+#include "AliRawDataHeader.h"
-class AliMUONDDLTracker;
-class AliMUONDDLTrigger;
class AliMUONData;
class AliMUONDigit;
+class AliMUONDspHeader;
+class AliMUONBlockHeader;
+class AliMUONDarcHeader;
+class AliMUONRegHeader;
+class AliMUONLocalStruct;
+class AliMpExMap;
+class AliMUONBusStruct;
class AliMUONGlobalTrigger;
-class AliMUONSubEventTrigger;
class AliMpBusPatch;
-class AliMpSegFactory;
+class AliMUONTriggerCrateStore;
+class TStopwatch;
class AliMUONRawWriter : public TObject
{
public:
AliMUONRawWriter(AliMUONData* data); // Constructor
- virtual ~AliMUONRawWriter(void); // Destructor
+ virtual ~AliMUONRawWriter(); // Destructor
// write raw data
Int_t Digits2Raw();
- void SetScalerEvent() {fScalerEvent = kTRUE;}
-
+ void SetScalersNumbers();
+
protected:
AliMUONRawWriter(); // Default constructor
- AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
- AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
// writing raw data
Int_t WriteTrackerDDL(Int_t iCh);
private:
- void AddData(const AliMUONSubEventTracker& event)
- {
- TClonesArray &temp = *fSubEventArray;
- new(temp[temp.GetEntriesFast()]) AliMUONSubEventTracker(event);
- }
+ void AddData(const AliMUONBusStruct& event);
+
+ Int_t GetBusPatch(const AliMUONDigit& digit) const;
+ Int_t GetBusPatch(Int_t detElemId, Int_t manuId) const;
- Int_t GetBusPatch(const AliMUONDigit& digit);
-
Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
private:
- AliMUONData* fMUONData; //! Data container for MUON subsystem
+ AliMUONData* fMUONData; //!< Data container for MUON subsystem
- FILE* fFile[2]; //! DDL binary file pointer one per 1/2 chamber
+ FILE* fFile[4]; //!< DDL binary file pointer one per 1/2 chamber, 4 for one station
- TClonesArray* fSubEventArray; //! array to sub event tracker
-
- AliMUONDDLTracker* fDDLTracker; //! DDL tracker class pointers
- AliMUONDDLTrigger* fDDLTrigger; //! DDL trigger class pointers
+ 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
- AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL
+ AliMpBusPatch* fBusPatchManager; //!< buspatch versus DE's & DDL
+ AliMUONTriggerCrateStore* fCrateManager; //!< Crate array
- Bool_t fScalerEvent; // flag to generates scaler event
+ Bool_t fScalerEvent; ///< flag to generates scaler event
- 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
+ AliRawDataHeader fHeader; ///< header of DDL
- 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; //!
+ 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
+
+ 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
- AliMpSegFactory* fSegFactory; //!
+ TStopwatch* fTimers; //!< time watchers
- ClassDef(AliMUONRawWriter,0) // MUON cluster reconstructor in ALICE
+ AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
+ AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
+
+ ClassDef(AliMUONRawWriter,2) // MUON cluster reconstructor in ALICE
};
#endif