]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawWriter.h
- Old StepManager() replaced with StepManager2()
[u/mrichter/AliRoot.git] / MUON / AliMUONRawWriter.h
index b69bb2c8e080c6319ea773a09d821b208425528e..b60ff8b35f3c2cb1eeb8c8888065af5d1e387043 100644 (file)
 
 #include <TObject.h>
 #include <TClonesArray.h>
-#include "AliMpBusPatch.h"
-#include "AliMUONSubEventTracker.h"
+#include "AliMUONBusStruct.h"
+#include "AliRawDataHeader.h"
+#include "TStopwatch.h"
 
-class TArrayI;
-class AliLoader;
 class AliMUONData;
 class AliMUONDigit;
-class AliMUONDDLTracker;
-class AliMUONDDLTrigger;
-class AliMUONGlobalTrigger;
-class AliMUONSubEventTrigger;
-class AliRawReader;
+class AliMUONDspHeader;
+class AliMUONBlockHeader;
+class AliMUONDarcHeader;
+class AliMUONRegHeader;
+class AliMUONLocalStruct;
 class AliMUONGlobalTrigger;
+class AliMpBusPatch;
 class AliMpSegFactory;
 
 class AliMUONRawWriter : public TObject 
 {
  public:
-  AliMUONRawWriter(AliLoader* loader, AliMUONData* data); // Constructor
-  virtual ~AliMUONRawWriter(void); // Destructor
+  AliMUONRawWriter(AliMUONData* data); // Constructor
+  virtual ~AliMUONRawWriter(); // Destructor
     
   // write raw data
-  Int_t   Digits2Raw();
+  Int_t Digits2Raw();
 
-  AliMUONData*   GetMUONData() {return fMUONData;}
+  void  SetScalerEvent() {fScalerEvent = kTRUE;}
+  
+protected:
+  AliMUONRawWriter();                  // Default constructor
+  AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
+  AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
 
-  void AddData(const AliMUONSubEventTracker* event) {
-    TClonesArray &temp = *fSubEventArray;
-    new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event); 
-  }
+  // writing raw data
+  Int_t WriteTrackerDDL(Int_t iCh);
+  Int_t WriteTriggerDDL();
+  
+private:
 
-  // could be private function (public for debugging)
-  Int_t GetInvMapping(const AliMUONDigit* digit, Int_t &busPatchId,
-                      UShort_t &manuId, UChar_t &channelId);
+  void AddData(const AliMUONBusStruct& event)
+  {
+    TClonesArray &temp = *fBusArray;
+    new(temp[temp.GetEntriesFast()]) AliMUONBusStruct(event); 
+  }
 
+  Int_t GetBusPatch(const AliMUONDigit& digit);
+  
   Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
 
- protected:
-  AliMUONRawWriter();                  // Default constructor
-  AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
-  AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
-
- private:
+private:
 
   AliMUONData*  fMUONData;           //! Data container for MUON subsystem 
  
-  AliLoader*    fLoader;             //! alice loader
-  AliMpSegFactory* fSegFactory;      //! Mapping segmentation factory
-
   FILE*         fFile[2];            //! DDL binary file pointer one per 1/2 chamber
 
-  TClonesArray* fSubEventArray;      //! array to sub event tracker
+  TClonesArray* fBusArray;           //! array to sub event tracker
    
-  AliMUONDDLTracker* fDDLTracker;    //! DDL tracker class pointers
-  AliMUONDDLTrigger* fDDLTrigger;    //! DDL trigger class pointers
-
-  AliMpBusPatch* fBusPatchManager;    //! buspatch versus DE's & DDL
-
-  // writing raw data
-  Int_t WriteTrackerDDL(Int_t iCh);
-  Int_t WriteTriggerDDL();
-
+  AliMUONBlockHeader* fBlockHeader;  //! DDL block header class pointers
+  AliMUONDspHeader*   fDspHeader;    //! DDL Dsp header class pointers
+  AliMUONBusStruct*   fBusStruct;    //! DDL bus patch structure 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
+
+  Bool_t fScalerEvent;               // flag to generates scaler event
+
+  AliRawDataHeader    fHeader;           // header of DDL
+
+  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
+  
+  TStopwatch fTrackerTimer; //!
+  TStopwatch fTriggerTimer; //!
+  TStopwatch fMappingTimer; //!
+  
+  AliMpSegFactory* fSegFactory; //!
+  
   ClassDef(AliMUONRawWriter,1) // MUON cluster reconstructor in ALICE
 };