]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSDDLRawData.h
Protection against missing timestamps
[u/mrichter/AliRoot.git] / ITS / AliITSDDLRawData.h
index 4255428f618a21fa5bb03fa15cb43dac715a8846..fb7dbc5da7c4f854b9dc23e624d2690ddfde12c4 100644 (file)
@@ -1,15 +1,19 @@
+#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 //
-///////////////////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// Class used for generating the files containing raw data,                //
+// required for  Data Challenge                                            //
+/////////////////////////////////////////////////////////////////////////////
 
-#ifndef AliITSDDLRAWDATA_H
-#define AliITSDDLRAWDATA_H
+/* $Id$ */
 
-class AliITS;
 class TTree;
+class TBranch;
+class AliITSDDLModuleMapSDD;
+class AliITSFOSignalsSPD;
 
 class AliITSDDLRawData:public TObject{
  public:
@@ -17,33 +21,36 @@ class AliITSDDLRawData:public TObject{
   virtual ~AliITSDDLRawData(){;}//destructor
   AliITSDDLRawData(const AliITSDDLRawData &source); // copy constructor
   AliITSDDLRawData& operator=(const AliITSDDLRawData &source); // ass. op.
-  Int_t RawDataSPD(TBranch* branch);
+  Int_t RawDataSPD(TBranch* branch, AliITSFOSignalsSPD* foSignals = NULL);
   // This method generates the files with the Silicon pixel detector data
-  Int_t RawDataSDD(TBranch* branch); 
+  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);
+  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 EventCnt,UInt_t &BaseWord);
-  void  WriteChipTrailer(UInt_t *buf,Int_t ChipHitCount,UInt_t &BaseWord);
+  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
-  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 SPD 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
   Int_t fHalfStaveModule;     //first or second half of an Half Stave module
-  ClassDef(AliITSDDLRawData,1)
+  Char_t fSDDRawFormat;          // index for SDD raw format
+
+  ClassDef(AliITSDDLRawData,3)
 };
     
 #endif