]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawData.h
Replaced with new AliMUONSegFactory and AliMpSegFactory classes
[u/mrichter/AliRoot.git] / MUON / AliMUONRawData.h
index 3cb45a0ac6d1c4405966d309dc87e1198f727d45..e7ae2b0ca4e614bfc28288c2b83c61b66895b7fa 100644 (file)
@@ -3,12 +3,30 @@
 /* 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 
 {
@@ -17,12 +35,29 @@ 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
@@ -30,30 +65,27 @@ class AliMUONRawData : public TObject
   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