2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
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 **************************************************************************/
10 #ifndef AliEveITSScaledModule_H
11 #define AliEveITSScaledModule_H
14 #include <EveDet/AliEveITSModule.h>
19 /******************************************************************************/
20 // AliEveDigitScaleInfo
21 /******************************************************************************/
23 class AliEveDigitScaleInfo : public TQObject, public TEveRefBackPtr
26 enum StatType_e { kSTOccup, kSTAverage, kSTRms };
28 AliEveDigitScaleInfo();
29 virtual ~AliEveDigitScaleInfo() {}
31 Int_t GetScale() const { return fScale; }
32 void ScaleChanged(Int_t s);
34 Int_t GetStatType() const { return fStatType; }
35 void StatTypeChanged(Int_t t);
37 Bool_t GetSyncPalette() const { return fSyncPalette; }
38 void SetSyncPalette(Bool_t x) { fSyncPalette = x; }
41 Int_t fScale; // Current scale.
42 Int_t fStatType; // Digit scaling algorithm, see StatType_e.
44 Bool_t fSyncPalette; // Synchronize palette on next usage.
47 AliEveDigitScaleInfo(const AliEveDigitScaleInfo&); // Not implemented
48 AliEveDigitScaleInfo& operator=(const AliEveDigitScaleInfo&); // Not implemented
50 ClassDef(AliEveDigitScaleInfo, 0);
53 /******************************************************************************/
55 /******************************************************************************/
57 /******************************************************************************/
58 // AliEveITSScaledModule
59 /******************************************************************************/
61 class AliEveITSScaledModule : public AliEveITSModule
63 friend class ITSSDSubEditor;
66 AliEveITSScaledModule(Int_t gid, AliEveITSDigitsInfo* info, AliEveDigitScaleInfo* si );
67 virtual ~AliEveITSScaledModule();
69 virtual void DigitSelected(Int_t idx);
71 virtual void LoadQuads();
76 void GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total) const;
77 AliEveDigitScaleInfo* GetScaleInfo() { return fScaleInfo; }
82 struct ScaledDigit_t : public TObject
92 ScaledDigit_t(Int_t di, Int_t dj);
98 Int_t fNx; // per module
101 Int_t fNCx; // per cell
104 AliEveDigitScaleInfo* fScaleInfo;
107 std::map<Int_t, ScaledDigit_t> fDigitsMap;
109 AliEveITSScaledModule(const AliEveITSScaledModule&); // Not implemented
110 AliEveITSScaledModule& operator=(const AliEveITSScaledModule&); // Not implemented
112 ClassDef(AliEveITSScaledModule, 0); // Visualization of an ITS module with digits aggregated on a grid of pre-defined size.