ROOT logo
#ifndef ALITOFDDLRAWDATA_H
#define ALITOFDDLRAWDATA_H

/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
// Class used for generating the files containing raw data,               //
// required for Data Challenge                                            //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include "TObject.h"
//#include "AliTOFCableLengthMap.h"

class TBranch;
class TClonesArray;

class AliTOFDigitMap;
//class AliTOFRawStream;

class AliTOFDDLRawData:public TObject {

 public:

  AliTOFDDLRawData();                               // default constructor
  virtual ~AliTOFDDLRawData();                              // destructor
  AliTOFDDLRawData(const AliTOFDDLRawData &source); // copy constructor
  AliTOFDDLRawData& operator=(const AliTOFDDLRawData &source); // ass. op.
  void SetVerbose(Int_t Verbose){fVerbose=Verbose;} // To set the verbose level

  Int_t RawDataTOF(TBranch* branch); 

  void SetPackedAcquisitionMode(Bool_t mode) {fPackedAcquisition=mode;};
  void SetFakeOrphaneProduction(Bool_t flag) {fFakeOrphaneProduction=flag;};
  void SetMatchingWindow(Int_t matWin) {fMatchingWindow=matWin;}; // setter for fMatchingWindow [bin number]
  Bool_t GetPackedAcquisitionMode() const {return fPackedAcquisition;};
  Bool_t GetFakeOrphaneProduction() const {return fFakeOrphaneProduction;};
  Int_t  GetMatchingWindow() const {return fMatchingWindow;}; // getter for fMatchingWindow [bin number]

 private:

  void  GetDigits();

  void  ReverseArray(UInt_t a[], Int_t n) const;

  void  MakeDRMheader(Int_t nDDL, UInt_t *buf);
  void  MakeDRMtrailer(UInt_t *buf);
  void  MakeLTMheader(UInt_t *buf);
  void  MakeLTMdata(UInt_t *buf);
  void  MakeLTMtrailer(UInt_t *buf);
  void  MakeTRMheader(Int_t nTRM, UInt_t *buf);
  void  MakeTRMtrailer(UInt_t *buf);
  void  MakeTRMfiller(UInt_t *buf);
  void  MakeTRMchainHeader(Int_t iChain, Int_t nTRM, UInt_t *buf);
  void  MakeTRMchainTrailer(Int_t iChain, UInt_t *buf);
  void  MakeTDCdigits(Int_t nDDL, Int_t nTRM, Int_t iChain, UInt_t *buf);

  UInt_t MakeFiller() const;

  Bool_t HeadOrTail() const;

  Int_t fVerbose;                 //Verbose level (0:no msg, 1:msg,
				  //2:digits in txt files)
  Int_t fIndex;                   //number of 32-bit words to be
				  //stored into the output file
  Bool_t fPackedAcquisition;      //flag for packed/no packed acquisition
  Bool_t fFakeOrphaneProduction;  //flag to insert fake orphane
				  //(leading or trailing) time
				  //measurements
  Int_t fMatchingWindow;          //time window [bin number] where to
				  //search time-of-flight measurements
				  //for the current event

  AliTOFDigitMap *fTOFdigitMap;   //Pointer to the channel-TOF map

  TClonesArray *fTOFdigitArray;   //Pointer to the TOF digits

  Int_t fWordsPerDRM;
  Int_t fWordsPerTRM;
  Int_t fWordsPerChain;

  ClassDef(AliTOFDDLRawData,4)

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