free arrays before of return in PropagateBack
[u/mrichter/AliRoot.git] / TOF / AliTOFDDLRawData.h
index f560ff1..84309fb 100644 (file)
@@ -1,54 +1,88 @@
+#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                                           //
+// required for Data Challenge                                            //
+//                                                                        //
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef AliTOFDDLRAWDATA_H
-#define AliTOFDDLRAWDATA_H
+#include "TObject.h"
+//#include "AliTOFCableLengthMap.h"
+
+class TBranch;
+class TClonesArray;
+
+class AliTOFDigitMap;
+//class AliTOFRawStream;
 
-class AliTOF;
-class TTree;
+class AliTOFDDLRawData:public TObject {
 
-class AliTOFDDLRawData:public TObject{
  public:
+
   AliTOFDDLRawData();                               // default constructor
-  virtual ~AliTOFDDLRawData(){;}                    // destructor
+  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); 
-  // This method generates the files with the TOF detector data
-  void SetVerbose(Int_t Verbose){fVerbose=Verbose;}
-  // To set the verbose level
+
+  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(TClonesArray *TOFdigits, Int_t ddl,UInt_t *buf);
-  //This method formats and stores in buf all the digits of a TOF module
-
-  void  PackWord(UInt_t &BaseWord, UInt_t Word, Int_t StartBit, Int_t StopBit);
-  //This method stores the value of the variable Word of StopBit-StartBit+1 bits 
-  //in BaseWord, starting from the bit StartBit
-
-  void  UnpackWord(UInt_t PackedWord, Int_t StartBit, Int_t StopBit, UInt_t &Word);
-  //This method extracts a group of adjacent bits, specified by StartBit and StopBit, 
-  //from the word PackedWord. The resulting word is saved in the Word variable
-
-  /*
-  void  WriteChipHeader(Int_t ChipAddr,Int_t EventCnt,UInt_t &BaseWord);
-  void  WriteChipTrailer(UInt_t *buf,Int_t ChipHitCount,UInt_t &BaseWord);
-  //The three previous  methods are used to store the data according to the 
-  //TOF detector data format
-
-  void  ReadChipHeader(Int_t &ChipAddr,Int_t &EventCnt,UInt_t BaseWord);
-  void  ReadChipTrailer(Int_t &ChipHitCount,UInt_t BaseWord);
-  //Methods used for reading and dubugging TOF data files
-  */
-
-  Int_t fVerbose;            //Verbose level (0:no msg, 1:msg, 2:digits in txt files)
-  Int_t fIndex;              //number of 32 words to be stored into the output file
-  enum {kDDLOffset = 0x500};  //offset for DDL number
-  ClassDef(AliTOFDDLRawData,1)
+
+  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
+#endif // ALITOFDDLRAWDATA_H