]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Alieve/ITSScaledModule.h
9def2f29295d11a7767929cf631818f5e6fd8015
[u/mrichter/AliRoot.git] / EVE / Alieve / ITSScaledModule.h
1 // $Header$
2
3 #ifndef ALIEVE_ITSScaledModule_H
4 #define ALIEVE_ITSScaledModule_H
5
6 #include <Reve/Reve.h>
7 #include <Alieve/ITSModule.h>
8
9 #include <TQObject.h>
10
11 namespace Alieve {
12
13 /**************************************************************************/
14 // DigitScaleInfo
15 /**************************************************************************/
16
17 class DigitScaleInfo : public TQObject, public Reve::ReferenceBackPtr
18 {
19 public:
20   enum StatType_e { ST_Occup, ST_Average, ST_Rms };
21
22   // Bool_t           fAutoUpdatePalette;
23 private:
24   DigitScaleInfo(const DigitScaleInfo&);            // Not implemented
25   DigitScaleInfo& operator=(const DigitScaleInfo&); // Not implemented
26
27 protected:
28   Int_t            fScale;    
29   Int_t            fStatType;
30   
31   Bool_t           fSyncPalette;
32
33 public:
34   DigitScaleInfo();
35   virtual ~DigitScaleInfo(){}
36     
37   Int_t            GetScale() { return fScale; }
38   void             ScaleChanged(Int_t s);
39
40   Int_t            GetStatType() { return fStatType; }
41   void             StatTypeChanged(Int_t t);
42
43   Bool_t           GetSyncPalette(){return fSyncPalette;}
44   void             SetSyncPalette(Bool_t x){fSyncPalette = x;}
45
46   ClassDef(DigitScaleInfo, 1);
47 };
48
49 /**************************************************************************/
50 // ScaledDigit
51 /**************************************************************************/
52
53 class ScaledDigit : public TObject
54 {
55 public:
56   Int_t N;
57   Float_t sum;
58   Float_t sqr_sum;
59   Int_t min_i,min_j;
60   Int_t max_i,max_j;
61
62   ScaledDigit();
63   ScaledDigit(Int_t di, Int_t dj);
64   
65   virtual void Dump() const;
66 }; 
67
68 /**************************************************************************/
69 // ITSScaledModule
70 /**************************************************************************/
71
72 class ITSScaledModule : public ITSModule
73 {
74   friend class ITSSDSubEditor;
75 private:
76   map<Int_t, ScaledDigit> fDigitsMap;  
77   
78   ITSScaledModule(const ITSScaledModule&);            // Not implemented
79   ITSScaledModule& operator=(const ITSScaledModule&); // Not implemented
80
81 protected:
82   Int_t       fNx;  //  per module 
83   Int_t       fNz;
84
85   Int_t       fNCx;  // per cell
86   Int_t       fNCz;
87
88   DigitScaleInfo* fScaleInfo;
89
90 public:
91   ITSScaledModule(Int_t gid, ITSDigitsInfo* info, DigitScaleInfo* si );
92   virtual ~ITSScaledModule();
93
94   virtual void DigitSelected(Int_t idx);
95
96   virtual void LoadQuads();
97   void         SetQuadValues();
98
99   void         SyncPalette();
100
101   void         GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total);
102   DigitScaleInfo*  GetScaleInfo(){ return fScaleInfo; }
103
104   ClassDef(ITSScaledModule, 1);
105 }; // endclass ITSScaledModule
106
107 }
108
109 #endif