]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawWriter.h
removing unneeded include
[u/mrichter/AliRoot.git] / MUON / AliMUONRawWriter.h
index b69bb2c8e080c6319ea773a09d821b208425528e..91bfeecfcb3c151b28132edc692d21fa1229a611 100644 (file)
@@ -5,78 +5,87 @@
 
 /*$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 "AliMpBusPatch.h"
-#include "AliMUONSubEventTracker.h"
+#include "AliRawDataHeader.h"
 
-class TArrayI;
-class AliLoader;
 class AliMUONData;
 class AliMUONDigit;
-class AliMUONDDLTracker;
-class AliMUONDDLTrigger;
+class AliMUONDspHeader;
+class AliMUONBlockHeader;
+class AliMUONDarcHeader;
+class AliMUONRegHeader;
+class AliMUONLocalStruct;
+class AliMpExMap;
+class AliMUONBusStruct;
 class AliMUONGlobalTrigger;
-class AliMUONSubEventTrigger;
-class AliRawReader;
-class AliMUONGlobalTrigger;
-class AliMpSegFactory;
+class AliMpBusPatch;
+class AliMUONTriggerCrateStore;
+class TStopwatch;
 
 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 SetScalersNumbers();
 
-  void AddData(const AliMUONSubEventTracker* event) {
-    TClonesArray &temp = *fSubEventArray;
-    new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event); 
-  }
+protected:
+  AliMUONRawWriter();                  // Default constructor
 
-  // could be private function (public for debugging)
-  Int_t GetInvMapping(const AliMUONDigit* digit, Int_t &busPatchId,
-                      UShort_t &manuId, UChar_t &channelId);
+  // writing raw data
+  Int_t WriteTrackerDDL(Int_t iCh);
+  Int_t WriteTriggerDDL();
+  
+private:
 
-  Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
+    void AddData(const AliMUONBusStruct& event);
 
- protected:
-  AliMUONRawWriter();                  // Default constructor
-  AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
-  AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
+  Int_t GetBusPatch(const AliMUONDigit& digit) const;
+  Int_t GetBusPatch(Int_t detElemId, Int_t manuId) const;
 
- private:
+  Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
 
-  AliMUONData*  fMUONData;           //! Data container for MUON subsystem 
-  AliLoader*    fLoader;             //! alice loader
+private:
+
+  AliMUONData*  fMUONData;           //!< Data container for MUON subsystem 
  
-  AliMpSegFactory* fSegFactory;      //! Mapping segmentation factory
+  FILE*         fFile[4];            //!< DDL binary file pointer one per 1/2 chamber, 4 for one station
 
-  FILE*         fFile[2];            //! DDL binary file pointer one per 1/2 chamber
+  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
 
-  TClonesArray* fSubEventArray;      //! array to sub event tracker
-   
-  AliMUONDDLTracker* fDDLTracker;    //! DDL tracker class pointers
-  AliMUONDDLTrigger* fDDLTrigger;    //! DDL trigger class pointers
+  AliMpBusPatch*            fBusPatchManager; //!< buspatch versus DE's & DDL
+  AliMUONTriggerCrateStore* fCrateManager;    //!< Crate array
 
-  AliMpBusPatch* fBusPatchManager;    //! buspatch versus DE's & DDL
+  Bool_t fScalerEvent;               ///< flag to generates scaler event
 
-  // writing raw data
-  Int_t WriteTrackerDDL(Int_t iCh);
-  Int_t WriteTriggerDDL();
+  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* fTimers;             //!< time watchers
+  
+  AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
+  AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
 
-  ClassDef(AliMUONRawWriter,1) // MUON cluster reconstructor in ALICE
+  ClassDef(AliMUONRawWriter,2) // MUON cluster reconstructor in ALICE
 };
        
 #endif