Fix for ITS dictionaries
[u/mrichter/AliRoot.git] / ITS / UPGRADE / ITSUpgradeSim / AliITSUSuze02.h
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