]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSDDLRawData.h
New classes and macros for raw data compression and ADC (D.Favretto)
[u/mrichter/AliRoot.git] / ITS / AliITSDDLRawData.h
CommitLineData
2e9f335b 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 containung data, required by the Data Challenge //
6/////////////////////////////////////////////////////////////////////////////////////////
7
8#ifndef AliITSDDLRAWDATA_H
9#define AliITSDDLRAWDATA_H
10
11class AliITS;
12class TTree;
13
14class 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 // This method generates the files with the Silicon pixel detector data
21 Int_t RawDataSPD(AliITS *ITS,TTree *TD ,Int_t LDCsNumber=2);
22 // This method generates the files with the Silicon drift detector data
23 Int_t RawDataSDD(AliITS *ITS,TTree *TD ,Int_t LDCsNumber=4);
24 // This method generates the files with the Silicon pixel detector data
25 Int_t RawDataSSD(AliITS *ITS,TTree *TD ,Int_t LDCsNumber=2);
26 //A debugging method used to test the files generated for the SPD.
27 void TestFormat();
28 private:
29 //This method formats and stores in buf all the digits of a SPD module
30 void GetDigitsSPD(TClonesArray *ITSdigits, Int_t mod, ULong_t *buf);
31 //This method formats and stores in buf all the digits of a SDD module
32 void GetDigitsSDD(TClonesArray *ITSdigits, Int_t mod, ULong_t *buf);
33 //This method formats and stores in buf all the digits of a SSD module
34 void GetDigitsSSD(TClonesArray *ITSdigits, Int_t mod, ULong_t *buf);
35 //This method stores the value of the variable Word of StopBit-StartBit+1 bits
36 //in BaseWord, starting from the bit StartBit
37 void PackWord(ULong_t &BaseWord, ULong_t Word, Int_t StartBit, Int_t StopBit);
38 //This method extracts a group of adiacents bits, specified by StartBit and StopBit,
39 //from the word PackedWord. The resulting word is saved in the Word variable
40 void UnpackWord(ULong_t PackedWord, Int_t StartBit, Int_t StopBit, ULong_t &Word);
41 //The following three methods are used to store the data according to the
42 //Silicon pixel detector data format
43 void WriteChipHeader(Int_t ChipAddr,Int_t EventCnt,ULong_t &BaseWord);
44 void WriteChipTrailer(ULong_t *buf,Int_t ChipHitCount,ULong_t &BaseWord);
45 void WriteHit(ULong_t *buf,Int_t RowAddr,Int_t HitAddr,ULong_t &BaseWord);
46 //Methods used for reading and dubugging SPD data files
47 void ReadChipHeader(Int_t &ChipAddr,Int_t &EventCnt,ULong_t BaseWord);
48 void ReadChipTrailer(Int_t &ChipHitCount,ULong_t BaseWord);
49 void DecodeWord(ULong_t Code,ULong_t BaseWord,Int_t FirstHalf,ULong_t &Decoded1,ULong_t &Decoded2);
50 Int_t fIndex;
51 Int_t fHalfStaveModule;
52 ClassDef(AliITSDDLRawData,1)
53};
54
55#endif