ROOT logo
#ifndef ALIMUONRAWWRITER_H
#define ALIMUONRAWWRITER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/*$Id$*/

/// \ingroup base
/// \class AliMUONRawWriter
/// \brief Raw data class for trigger and tracker chambers
///
//  Author Christian Finck and Laurent Aphecetche, Subatech

#include <TObject.h>
#include "AliFstream.h"

class AliMUONBlockHeader;
class AliMUONBusStruct;
class AliMUONDarcHeader;
class AliMUONVDigit;
class AliMUONDspHeader;
class AliMUONGlobalTrigger;
class AliMUONLocalStruct;
class AliMUONRegHeader;
class AliMUONVDigitStore;
class AliMUONVTriggerStore;
class AliMpDDLStore;
class AliMpExMap;
class AliRawDataHeaderSim;

class AliMUONRawWriter : public TObject 
{
 public:
  AliMUONRawWriter(); // Constructor
  virtual ~AliMUONRawWriter(); // Destructor
    
  // write raw data
  Int_t Digits2Raw(const AliMUONVDigitStore* digitStore, const AliMUONVTriggerStore* triggerStore);
  
  void SetScalersNumbers();

  /// Set the header of DDL
  void SetHeader(AliRawDataHeaderSim& header) {fHeader = &header;}

private:

  void Digits2BusPatchMap(const AliMUONVDigitStore& digitStore, AliMpExMap& busPatchMap);
  void WriteTrackerDDL(AliMpExMap& busPatchMap, Int_t iDDL);

  //void WriteBusPatch(AliMUONLocalBusStruct* busStruct);
  
  Int_t WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore, AliFstream* file[2]);
  
  Int_t GetBusPatch(const AliMUONVDigit& digit) const;

private:
  /// Not implemented copy constructor
  AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
  /// Not implemented assignment operator
  AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs);

 static void LocalWordPacking(UInt_t &word, UInt_t locId, UInt_t locDec, 
			      UInt_t trigY, UInt_t posY, UInt_t posX, 
			      UInt_t sdevX, UInt_t devX);

  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

  AliMpDDLStore*            fDDLStore;     //!< DDL store pointer

  Bool_t fScalerEvent;               ///< flag to generates scaler event

  AliRawDataHeaderSim*    fHeader;           ///< header of DDL
  
  Int_t fBufferSize; //!< size of internal data buffer
  Int_t* fBuffer; //!< internal data buffer

  ClassDef(AliMUONRawWriter,5) // MUON cluster reconstructor in ALICE
};
	
#endif
 AliMUONRawWriter.h:1
 AliMUONRawWriter.h:2
 AliMUONRawWriter.h:3
 AliMUONRawWriter.h:4
 AliMUONRawWriter.h:5
 AliMUONRawWriter.h:6
 AliMUONRawWriter.h:7
 AliMUONRawWriter.h:8
 AliMUONRawWriter.h:9
 AliMUONRawWriter.h:10
 AliMUONRawWriter.h:11
 AliMUONRawWriter.h:12
 AliMUONRawWriter.h:13
 AliMUONRawWriter.h:14
 AliMUONRawWriter.h:15
 AliMUONRawWriter.h:16
 AliMUONRawWriter.h:17
 AliMUONRawWriter.h:18
 AliMUONRawWriter.h:19
 AliMUONRawWriter.h:20
 AliMUONRawWriter.h:21
 AliMUONRawWriter.h:22
 AliMUONRawWriter.h:23
 AliMUONRawWriter.h:24
 AliMUONRawWriter.h:25
 AliMUONRawWriter.h:26
 AliMUONRawWriter.h:27
 AliMUONRawWriter.h:28
 AliMUONRawWriter.h:29
 AliMUONRawWriter.h:30
 AliMUONRawWriter.h:31
 AliMUONRawWriter.h:32
 AliMUONRawWriter.h:33
 AliMUONRawWriter.h:34
 AliMUONRawWriter.h:35
 AliMUONRawWriter.h:36
 AliMUONRawWriter.h:37
 AliMUONRawWriter.h:38
 AliMUONRawWriter.h:39
 AliMUONRawWriter.h:40
 AliMUONRawWriter.h:41
 AliMUONRawWriter.h:42
 AliMUONRawWriter.h:43
 AliMUONRawWriter.h:44
 AliMUONRawWriter.h:45
 AliMUONRawWriter.h:46
 AliMUONRawWriter.h:47
 AliMUONRawWriter.h:48
 AliMUONRawWriter.h:49
 AliMUONRawWriter.h:50
 AliMUONRawWriter.h:51
 AliMUONRawWriter.h:52
 AliMUONRawWriter.h:53
 AliMUONRawWriter.h:54
 AliMUONRawWriter.h:55
 AliMUONRawWriter.h:56
 AliMUONRawWriter.h:57
 AliMUONRawWriter.h:58
 AliMUONRawWriter.h:59
 AliMUONRawWriter.h:60
 AliMUONRawWriter.h:61
 AliMUONRawWriter.h:62
 AliMUONRawWriter.h:63
 AliMUONRawWriter.h:64
 AliMUONRawWriter.h:65
 AliMUONRawWriter.h:66
 AliMUONRawWriter.h:67
 AliMUONRawWriter.h:68
 AliMUONRawWriter.h:69
 AliMUONRawWriter.h:70
 AliMUONRawWriter.h:71
 AliMUONRawWriter.h:72
 AliMUONRawWriter.h:73
 AliMUONRawWriter.h:74
 AliMUONRawWriter.h:75
 AliMUONRawWriter.h:76
 AliMUONRawWriter.h:77
 AliMUONRawWriter.h:78
 AliMUONRawWriter.h:79
 AliMUONRawWriter.h:80
 AliMUONRawWriter.h:81
 AliMUONRawWriter.h:82
 AliMUONRawWriter.h:83
 AliMUONRawWriter.h:84