ROOT logo
#ifndef AliITSDDLRAWDATA_H
#define AliITSDDLRAWDATA_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                                            //
/////////////////////////////////////////////////////////////////////////////

/* $Id$ */

class TTree;
class TBranch;
class AliITSDDLModuleMapSDD;
class AliITSFOSignalsSPD;

class AliITSDDLRawData:public TObject{
 public:
  AliITSDDLRawData();//default constructor
  virtual ~AliITSDDLRawData(){;}//destructor
  AliITSDDLRawData(const AliITSDDLRawData &source); // copy constructor
  AliITSDDLRawData& operator=(const AliITSDDLRawData &source); // ass. op.
  Int_t RawDataSPD(TBranch* branch, AliITSFOSignalsSPD* foSignals = NULL);
  // This method generates the files with the Silicon pixel detector data
  Int_t RawDataSDD(TBranch* branch, const AliITSDDLModuleMapSDD* ddlsdd); 
  // This method generates the files with the Silicon drift detector data
  Int_t RawDataSSD(TBranch* branch);
  // This method generates the files with the Silicon pixel detector data
  void SetVerbose(Int_t Verbose){fVerbose=Verbose;}
  // To set the verbose level
  void SetSDDRawFormat(Char_t val=7){
    fSDDRawFormat=val;
  }
 private: 
  void  GetDigitsSPD(TClonesArray *ITSdigits, Int_t mod,Int_t ddl,UInt_t *buf, AliITSFOSignalsSPD* foSignals = NULL);
  //This method formats and stores in buf all the digits of a SPD module
  void  GetDigitsSDDCompressed(TClonesArray *ITSdigits, Int_t mod,UInt_t *buf);
  void  GetDigitsSDD(TClonesArray *ITSdigits, Int_t mod,Int_t modR,Int_t ddl,UInt_t *buf);
  //This method formats and stores in buf all the digits of a SDD module
  void  GetDigitsSSD(TClonesArray *ITSdigits, Int_t mod,Int_t modR,Int_t ddl,UInt_t *buf);
  //This method formats and stores in buf all the digits of a SSD module
  void  WriteChipHeader(Int_t ChipAddr,Int_t halfStave,UInt_t &BaseWord);
  void  WriteChipTrailer(UInt_t *buf, Int_t ChipHitCount, Bool_t foBit, UInt_t &BaseWord);
  void  WriteHit(UInt_t *buf,Int_t RowAddr,Int_t HitAddr,UInt_t &BaseWord);
  //The three previous  methods are used to store the data according to the 
  //Silicon pixel detector data format
  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
  Int_t fHalfStaveModule;     //first or second half of an Half Stave module
  Char_t fSDDRawFormat;          // index for SDD raw format

  ClassDef(AliITSDDLRawData,3)
};
    
#endif
 AliITSDDLRawData.h:1
 AliITSDDLRawData.h:2
 AliITSDDLRawData.h:3
 AliITSDDLRawData.h:4
 AliITSDDLRawData.h:5
 AliITSDDLRawData.h:6
 AliITSDDLRawData.h:7
 AliITSDDLRawData.h:8
 AliITSDDLRawData.h:9
 AliITSDDLRawData.h:10
 AliITSDDLRawData.h:11
 AliITSDDLRawData.h:12
 AliITSDDLRawData.h:13
 AliITSDDLRawData.h:14
 AliITSDDLRawData.h:15
 AliITSDDLRawData.h:16
 AliITSDDLRawData.h:17
 AliITSDDLRawData.h:18
 AliITSDDLRawData.h:19
 AliITSDDLRawData.h:20
 AliITSDDLRawData.h:21
 AliITSDDLRawData.h:22
 AliITSDDLRawData.h:23
 AliITSDDLRawData.h:24
 AliITSDDLRawData.h:25
 AliITSDDLRawData.h:26
 AliITSDDLRawData.h:27
 AliITSDDLRawData.h:28
 AliITSDDLRawData.h:29
 AliITSDDLRawData.h:30
 AliITSDDLRawData.h:31
 AliITSDDLRawData.h:32
 AliITSDDLRawData.h:33
 AliITSDDLRawData.h:34
 AliITSDDLRawData.h:35
 AliITSDDLRawData.h:36
 AliITSDDLRawData.h:37
 AliITSDDLRawData.h:38
 AliITSDDLRawData.h:39
 AliITSDDLRawData.h:40
 AliITSDDLRawData.h:41
 AliITSDDLRawData.h:42
 AliITSDDLRawData.h:43
 AliITSDDLRawData.h:44
 AliITSDDLRawData.h:45
 AliITSDDLRawData.h:46
 AliITSDDLRawData.h:47
 AliITSDDLRawData.h:48
 AliITSDDLRawData.h:49
 AliITSDDLRawData.h:50
 AliITSDDLRawData.h:51
 AliITSDDLRawData.h:52
 AliITSDDLRawData.h:53
 AliITSDDLRawData.h:54
 AliITSDDLRawData.h:55
 AliITSDDLRawData.h:56