]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveDet/AliEveITSScaledModule.h
Coverity
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveITSScaledModule.h
CommitLineData
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 23class AliEveDigitScaleInfo : public TQObject, public TEveRefBackPtr
3b868b75 24{
25public:
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 40protected:
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
46private:
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 61class AliEveITSScaledModule : public AliEveITSModule
3b868b75 62{
63 friend class ITSSDSubEditor;
c76ea574 64
65public:
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 97protected:
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 106private:
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