]>
Commit | Line | Data |
---|---|---|
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 | ||
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 | // 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 |