]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIITSUSUZE02_H | |
2 | #define ALIITSUSUZE02_H | |
3 | ||
4 | #include <Riostream.h> | |
5 | #include <TMatrixF.h> | |
6 | #include <TH1F.h> | |
7 | ||
8 | //******************************************************************* | |
9 | // | |
10 | // Simulation of the SUZE02 readout | |
11 | // Origin: Serhiy.Senuykov@cern.ch | |
12 | // (see macros/ScanDigitsSuze02*.C for an example of use) | |
13 | // | |
14 | //******************************************************************* | |
15 | ||
16 | class AliITSUSuze02{ | |
17 | public: | |
18 | AliITSUSuze02(Int_t Nrows, Int_t Ncols); | |
19 | AliITSUSuze02(const AliITSUSuze02& suze); | |
20 | AliITSUSuze02 &operator=(const AliITSUSuze02& suze); | |
21 | virtual ~AliITSUSuze02(); | |
22 | ||
23 | void SetEncodingWindowSize(Int_t Wrows, Int_t Wcols); | |
24 | void SetQuotas(Int_t q32, Int_t qHalfFSBB, Int_t qFSBB); | |
25 | //void InitHistos(); | |
26 | void AddDigit(Int_t row, Int_t col); | |
27 | void Process(TH1F* OverflowCodes, TH1F* NDigitsPerEncodingWindowDist, Bool_t Verbose=kFALSE); | |
28 | //void Process(Bool_t Verbose=kFALSE); | |
29 | ||
30 | void GetResults(); | |
31 | Int_t GetNDigitsEncoded() {return fNDigitsEncoded;} | |
32 | Int_t GetNEncodedWindows() {return fNEncodedWindows;} | |
33 | Int_t GetNDigitsLost() {return fNDigitsLost;} | |
34 | Int_t GetNLostWindows() {return fNLostWindows;} | |
35 | ||
36 | Int_t GetDataSize() {return fDataSizePerChip;} | |
37 | ||
38 | Int_t GetNWindowsPer32colsMin() {return fNWindowsPer32colsMin;} | |
39 | Int_t GetNWindowsPerHalfFSBBMin() {return fNWindowsPerHalfFSBBMin;} | |
40 | Int_t GetNWindowsPerFSBBMin() {return fNWindowsPerFSBBMin;} | |
41 | ||
42 | void ResetChip(); | |
43 | ||
44 | private: | |
45 | static const Int_t kNumberOfFSBB=3; | |
46 | static const Int_t kNumberOfHalfFSBB=2; | |
47 | ||
48 | //matrix to be processed by Suze02 | |
49 | Int_t fNRowsChip; | |
50 | Int_t fNColsChip; | |
51 | TMatrixF* fChip; | |
52 | ||
53 | //Suze02 parameters | |
54 | Int_t fTestColumnSize; //Number of rows of the encoding window | |
55 | Int_t fTestRowSize; //Number of columns of the encoding window | |
56 | ||
57 | //Suze02 quotas | |
58 | Int_t fNWindowsPer32colsMax; | |
59 | Int_t fNWindowsPerHalfFSBBMax; | |
60 | Int_t fNWindowsPerFSBBMax; | |
61 | ||
62 | //results | |
63 | Int_t fNDigitsEncoded; | |
64 | Int_t fNEncodedWindows; | |
65 | ||
66 | Int_t fNDigitsLost; | |
67 | Int_t fNLostWindows; | |
68 | ||
69 | //TH1F* fOverflowCodes; | |
70 | //TH1F* fNDigitsPerEncodingWindowDist; | |
71 | ||
72 | Int_t fDataSizePerChip; | |
73 | ||
74 | Int_t fNWindowsPer32colsMin; | |
75 | Int_t fNWindowsPerHalfFSBBMin; | |
76 | Int_t fNWindowsPerFSBBMin; | |
77 | ||
78 | ClassDef(AliITSUSuze02,1) | |
79 | }; | |
80 | ||
81 | #endif |