]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSDDLRawData.h
Removing obsolete macros
[u/mrichter/AliRoot.git] / ITS / AliITSDDLRawData.h
1 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 ///////////////////////////////////////////////////////////////////////////////////////////
5 // Class used for generating the files containing raw data, required for  Data Challenge //
6 ///////////////////////////////////////////////////////////////////////////////////////////
7
8 #ifndef AliITSDDLRAWDATA_H
9 #define AliITSDDLRAWDATA_H
10
11 class AliITS;
12 class TTree;
13
14 class AliITSDDLRawData:public TObject{
15  public:
16   AliITSDDLRawData();//default constructor
17   virtual ~AliITSDDLRawData(){;}//destructor
18   AliITSDDLRawData(const AliITSDDLRawData &source); // copy constructor
19   AliITSDDLRawData& operator=(const AliITSDDLRawData &source); // ass. op.
20  Int_t RawDataSPD(AliITS *ITS,TTree *TD ,Int_t LDCsNumber=2);
21   // This method generates the files with the Silicon pixel detector data
22   Int_t RawDataSDD(AliITS *ITS,TTree *TD ,Int_t LDCsNumber=4); 
23   // This method generates the files with the Silicon drift detector data
24   Int_t RawDataSSD(AliITS *ITS,TTree *TD ,Int_t LDCsNumber=2);
25   // This method generates the files with the Silicon pixel detector data
26   void  TestFormat();
27   //A debugging method used to test the files generated for the SPD.
28  private: 
29   void  GetDigitsSPD(TClonesArray *ITSdigits, Int_t mod, ULong_t *buf);
30   //This method formats and stores in buf all the digits of a SPD module
31   void  GetDigitsSDD(TClonesArray *ITSdigits, Int_t mod, ULong_t *buf);
32   //This method formats and stores in buf all the digits of a SDD module
33   void  GetDigitsSSD(TClonesArray *ITSdigits, Int_t mod, ULong_t *buf);
34   //This method formats and stores in buf all the digits of a SSD module
35   void  PackWord(ULong_t &BaseWord, ULong_t Word, Int_t StartBit, Int_t StopBit);
36   //This method stores the value of the variable Word of StopBit-StartBit+1 bits 
37   //in BaseWord, starting from the bit StartBit
38   void  UnpackWord(ULong_t PackedWord, Int_t StartBit, Int_t StopBit, ULong_t &Word);
39   //This method extracts a group of adjacent bits, specified by StartBit and StopBit, 
40   //from the word PackedWord. The resulting word is saved in the Word variable
41   void  WriteChipHeader(Int_t ChipAddr,Int_t EventCnt,ULong_t &BaseWord);
42   void  WriteChipTrailer(ULong_t *buf,Int_t ChipHitCount,ULong_t &BaseWord);
43   void  WriteHit(ULong_t *buf,Int_t RowAddr,Int_t HitAddr,ULong_t &BaseWord);
44   //The three previous  methods are used to store the data according to the 
45   //Silicon pixel detector data format
46   void  ReadChipHeader(Int_t &ChipAddr,Int_t &EventCnt,ULong_t BaseWord);
47   void  ReadChipTrailer(Int_t &ChipHitCount,ULong_t BaseWord);
48   void  DecodeWord(ULong_t Code,ULong_t BaseWord,Int_t FirstHalf,ULong_t &Decoded1,ULong_t &Decoded2);
49   //Methods used for reading and dubugging SPD data files
50
51   Long_t fIndex;             //number of 32 words to be stored into the output file
52   Int_t fHalfStaveModule;     //first or second half of an Half Stave module
53   ClassDef(AliITSDDLRawData,1)
54 };
55     
56 #endif