]>
Commit | Line | Data |
---|---|---|
d810d0de | 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 * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
3b868b75 | 9 | |
a15e6d7d | 10 | #ifndef AliEveITSScaledModule_H |
11 | #define AliEveITSScaledModule_H | |
3b868b75 | 12 | |
84aff7a4 | 13 | #include <TEveUtil.h> |
cb4245bb | 14 | #include <EveDet/AliEveITSModule.h> |
3b868b75 | 15 | |
16 | #include <TQObject.h> | |
17 | ||
3b868b75 | 18 | |
57ffa5fb | 19 | /******************************************************************************/ |
d810d0de | 20 | // AliEveDigitScaleInfo |
57ffa5fb | 21 | /******************************************************************************/ |
3b868b75 | 22 | |
d810d0de | 23 | class AliEveDigitScaleInfo : public TQObject, public TEveRefBackPtr |
3b868b75 | 24 | { |
25 | public: | |
a15e6d7d | 26 | enum StatType_e { kSTOccup, kSTAverage, kSTRms }; |
3b868b75 | 27 | |
d810d0de | 28 | AliEveDigitScaleInfo(); |
698e2c9b | 29 | virtual ~AliEveDigitScaleInfo() {} |
51346b82 | 30 | |
698e2c9b | 31 | Int_t GetScale() const { return fScale; } |
32 | void ScaleChanged(Int_t s); | |
3b868b75 | 33 | |
698e2c9b | 34 | Int_t GetStatType() const { return fStatType; } |
35 | void StatTypeChanged(Int_t t); | |
32e219c2 | 36 | |
698e2c9b | 37 | Bool_t GetSyncPalette() const { return fSyncPalette; } |
38 | void SetSyncPalette(Bool_t x) { fSyncPalette = x; } | |
3b868b75 | 39 | |
4b456ebb | 40 | protected: |
41 | Int_t fScale; // Current scale. | |
42 | Int_t fStatType; // Digit scaling algorithm, see StatType_e. | |
43 | ||
44 | Bool_t fSyncPalette; // Synchronize palette on next usage. | |
45 | ||
46 | private: | |
47 | AliEveDigitScaleInfo(const AliEveDigitScaleInfo&); // Not implemented | |
48 | AliEveDigitScaleInfo& operator=(const AliEveDigitScaleInfo&); // Not implemented | |
49 | ||
50 | ClassDef(AliEveDigitScaleInfo, 0); | |
3b868b75 | 51 | }; |
52 | ||
57ffa5fb | 53 | /******************************************************************************/ |
3b868b75 | 54 | // ScaledDigit |
57ffa5fb | 55 | /******************************************************************************/ |
3b868b75 | 56 | |
57ffa5fb | 57 | /******************************************************************************/ |
d810d0de | 58 | // AliEveITSScaledModule |
57ffa5fb | 59 | /******************************************************************************/ |
3b868b75 | 60 | |
d810d0de | 61 | class AliEveITSScaledModule : public AliEveITSModule |
3b868b75 | 62 | { |
63 | friend class ITSSDSubEditor; | |
c76ea574 | 64 | |
65 | public: | |
4b456ebb | 66 | AliEveITSScaledModule(Int_t gid, AliEveITSDigitsInfo* info, AliEveDigitScaleInfo* si ); |
67 | virtual ~AliEveITSScaledModule(); | |
68 | ||
69 | virtual void DigitSelected(Int_t idx); | |
70 | ||
71 | virtual void LoadQuads(); | |
72 | void SetQuadValues(); | |
73 | ||
74 | void SyncPalette(); | |
75 | ||
76 | void GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total) const; | |
77 | AliEveDigitScaleInfo* GetScaleInfo() { return fScaleInfo; } | |
78 | ||
79 | ||
80 | // --- Inner structs | |
81 | ||
a15e6d7d | 82 | struct ScaledDigit_t : public TObject |
c76ea574 | 83 | { |
84 | public: | |
a15e6d7d | 85 | Int_t fN; |
86 | Float_t fSum; | |
87 | Float_t fSqrSum; | |
88 | Int_t fMinI, fMinJ; | |
89 | Int_t fMaxI, fMaxJ; | |
c76ea574 | 90 | |
a15e6d7d | 91 | ScaledDigit_t(); |
92 | ScaledDigit_t(Int_t di, Int_t dj); | |
c76ea574 | 93 | |
94 | void Dump() const; | |
95 | }; | |
96 | ||
3b868b75 | 97 | protected: |
c76ea574 | 98 | Int_t fNx; // per module |
3b868b75 | 99 | Int_t fNz; |
100 | ||
101 | Int_t fNCx; // per cell | |
102 | Int_t fNCz; | |
103 | ||
d810d0de | 104 | AliEveDigitScaleInfo* fScaleInfo; |
03dfc4a7 | 105 | |
4b456ebb | 106 | private: |
107 | std::map<Int_t, ScaledDigit_t> fDigitsMap; | |
32e219c2 | 108 | |
4b456ebb | 109 | AliEveITSScaledModule(const AliEveITSScaledModule&); // Not implemented |
110 | AliEveITSScaledModule& operator=(const AliEveITSScaledModule&); // Not implemented | |
3b868b75 | 111 | |
4b456ebb | 112 | ClassDef(AliEveITSScaledModule, 0); // Visualization of an ITS module with digits aggregated on a grid of pre-defined size. |
113 | }; | |
3b868b75 | 114 | |
115 | #endif |