]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveITSScaledModule.h
Move contents of EVE/Alieve to EVE/EveDet as most code will remain there.
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveITSScaledModule.h
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef ALIEVE_ITSScaledModule_H
11 #define ALIEVE_ITSScaledModule_H
12
13 #include <TEveUtil.h>
14 #include <EveDet/AliEveITSModule.h>
15
16 #include <TQObject.h>
17
18
19 /******************************************************************************/
20 // AliEveDigitScaleInfo
21 /******************************************************************************/
22
23 class AliEveDigitScaleInfo : public TQObject, public TEveRefBackPtr
24 {
25 public:
26   enum StatType_e { ST_Occup, ST_Average, ST_Rms };
27
28   // Bool_t           fAutoUpdatePalette;
29 private:
30   AliEveDigitScaleInfo(const AliEveDigitScaleInfo&);            // Not implemented
31   AliEveDigitScaleInfo& operator=(const AliEveDigitScaleInfo&); // Not implemented
32
33 protected:
34   Int_t            fScale;
35   Int_t            fStatType;
36
37   Bool_t           fSyncPalette;
38
39 public:
40   AliEveDigitScaleInfo();
41   virtual ~AliEveDigitScaleInfo(){}
42
43   Int_t            GetScale() { return fScale; }
44   void             ScaleChanged(Int_t s);
45
46   Int_t            GetStatType() { return fStatType; }
47   void             StatTypeChanged(Int_t t);
48
49   Bool_t           GetSyncPalette(){return fSyncPalette;}
50   void             SetSyncPalette(Bool_t x){fSyncPalette = x;}
51
52   ClassDef(AliEveDigitScaleInfo, 1);
53 };
54
55 /******************************************************************************/
56 // ScaledDigit
57 /******************************************************************************/
58
59 class ScaledDigit : public TObject
60 {
61 public:
62   Int_t N;
63   Float_t sum;
64   Float_t sqr_sum;
65   Int_t min_i,min_j;
66   Int_t max_i,max_j;
67
68   ScaledDigit();
69   ScaledDigit(Int_t di, Int_t dj);
70
71   virtual void Dump() const;
72 };
73
74 /******************************************************************************/
75 // AliEveITSScaledModule
76 /******************************************************************************/
77
78 class AliEveITSScaledModule : public AliEveITSModule
79 {
80   friend class ITSSDSubEditor;
81 private:
82   map<Int_t, ScaledDigit> fDigitsMap;
83
84   AliEveITSScaledModule(const AliEveITSScaledModule&);            // Not implemented
85   AliEveITSScaledModule& operator=(const AliEveITSScaledModule&); // Not implemented
86
87 protected:
88   Int_t       fNx;  //  per module
89   Int_t       fNz;
90
91   Int_t       fNCx;  // per cell
92   Int_t       fNCz;
93
94   AliEveDigitScaleInfo* fScaleInfo;
95
96 public:
97   AliEveITSScaledModule(Int_t gid, AliEveITSDigitsInfo* info, AliEveDigitScaleInfo* si );
98   virtual ~AliEveITSScaledModule();
99
100   virtual void DigitSelected(Int_t idx);
101
102   virtual void LoadQuads();
103   void         SetQuadValues();
104
105   void         SyncPalette();
106
107   void         GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total);
108   AliEveDigitScaleInfo*  GetScaleInfo(){ return fScaleInfo; }
109
110   ClassDef(AliEveITSScaledModule, 1);
111 }; // endclass AliEveITSScaledModule
112
113 #endif