/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+/*$Id$*/
+
+/// \ingroup rec
+/// \class AliMUONRawData
+/// \brief Raw data class for trigger and tracker chambers
+///
+/// Raw data class for trigger and tracker chambers
+
#include <TObject.h>
+#include "AliMpBusPatch.h"
+#include "AliMUONSubEventTracker.h"
+
class TClonesArray;
+class TArrayI;
class AliLoader;
class AliMUONData;
class AliMUONDigit;
class AliMUONDDLTracker;
+class AliMUONDDLTrigger;
+class AliMUONGlobalTrigger;
+class AliMUONSubEventTrigger;
+class AliRawReader;
+class AliMUONGlobalTrigger;
+class AliMpSegFactory;
class AliMUONRawData : public TObject
{
virtual ~AliMUONRawData(void); // Destructor
// write raw data
- Int_t WriteRawData();
+ Int_t Digits2Raw();
+ Int_t Raw2Digits(AliRawReader* rawReader);
+
+ Int_t ReadTrackerDDL(AliRawReader* rawReader);
+ Int_t ReadTriggerDDL(AliRawReader* rawReader);
AliMUONData* GetMUONData() {return fMUONData;}
- Int_t GetPrintLevel(void) const {return fPrintLevel;}
- void SetPrintLevel(Int_t printLevel) {fPrintLevel = printLevel;}
+ void AddData(const AliMUONSubEventTracker* event) {
+ TClonesArray &temp = *fSubEventArray;
+ new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event);
+ }
+
+ // could be private function (public for debugging)
+ Int_t GetInvMapping(const AliMUONDigit* digit, Int_t &busPatchId,
+ UShort_t &manuId, UChar_t &channelId);
+
+ Int_t GetMapping(Int_t buspatchId, UShort_t manuId,
+ UChar_t channelId, AliMUONDigit* digit );
+
+ Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
+ AliMUONGlobalTrigger* GetGlobalTriggerPattern(Int_t gloTrg) const;
+
protected:
AliMUONRawData(); // Default constructor
AliMUONRawData& operator=(const AliMUONRawData& rhs); // assignment operator
private:
- static const Int_t fgkDefaultPrintLevel; // Default print level
-
- Int_t fNCh; // Number of chambers
- Int_t fNTrackingCh; // Number of tracking chambers*
- Int_t fNTriggerCh; // Number of trigger chambers*
- AliMUONData* fMUONData; //! Data container for MUON subsystem
+ AliMUONData* fMUONData; //! Data container for MUON subsystem
+
+ AliLoader* fLoader; //! alice loader
+
+ AliMpSegFactory* fSegFactory; //! Mapping segmentation factory
- // print level
- Int_t fPrintLevel;
+ FILE* fFile[2]; //! DDL binary file pointer one per 1/2 chamber
- // debug
- Int_t fDebug;
-
- // alice loader
- AliLoader* fLoader;
+ TClonesArray* fSubEventArray; //! array to sub event tracker
+
+ AliMUONDDLTracker* fDDLTracker; //! DDL tracker class pointers
+ AliMUONDDLTrigger* fDDLTrigger; //! DDL trigger class pointers
- // DDL binary file pointer one per 1/2 chamber
- FILE* fFile1;
- FILE* fFile2;
+ AliMpBusPatch* fBusPatchManager; //! buspatch versus DE's & DDL
- Int_t WriteDDL(Int_t iCh);
+ // writing raw data
+ Int_t WriteTrackerDDL(Int_t iCh);
+ Int_t WriteTriggerDDL();
- ClassDef(AliMUONRawData,0) // MUON cluster reconstructor in ALICE
+ ClassDef(AliMUONRawData,1) // MUON cluster reconstructor in ALICE
};
#endif