]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveDet/AliEveITSScaledModule.h
Fixes for inconsistent types in BinarySearch
[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
10#ifndef ALIEVE_ITSScaledModule_H
11#define ALIEVE_ITSScaledModule_H
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:
fd31e9de 26 enum StatType_e { kST_Occup, kST_Average, kST_Rms };
3b868b75 27
32e219c2 28 // Bool_t fAutoUpdatePalette;
3b868b75 29private:
d810d0de 30 AliEveDigitScaleInfo(const AliEveDigitScaleInfo&); // Not implemented
31 AliEveDigitScaleInfo& operator=(const AliEveDigitScaleInfo&); // Not implemented
3b868b75 32
32e219c2 33protected:
698e2c9b 34 Int_t fScale; // Current scale.
35 Int_t fStatType; // Digit scaling algorithm, see StatType_e.
51346b82 36
698e2c9b 37 Bool_t fSyncPalette; // Synchronize palette on next usage.
32e219c2 38
3b868b75 39public:
d810d0de 40 AliEveDigitScaleInfo();
698e2c9b 41 virtual ~AliEveDigitScaleInfo() {}
51346b82 42
698e2c9b 43 Int_t GetScale() const { return fScale; }
44 void ScaleChanged(Int_t s);
3b868b75 45
698e2c9b 46 Int_t GetStatType() const { return fStatType; }
47 void StatTypeChanged(Int_t t);
32e219c2 48
698e2c9b 49 Bool_t GetSyncPalette() const { return fSyncPalette; }
50 void SetSyncPalette(Bool_t x) { fSyncPalette = x; }
3b868b75 51
d810d0de 52 ClassDef(AliEveDigitScaleInfo, 1);
3b868b75 53};
54
57ffa5fb 55/******************************************************************************/
3b868b75 56// ScaledDigit
57ffa5fb 57/******************************************************************************/
3b868b75 58
57ffa5fb 59/******************************************************************************/
d810d0de 60// AliEveITSScaledModule
57ffa5fb 61/******************************************************************************/
3b868b75 62
d810d0de 63class AliEveITSScaledModule : public AliEveITSModule
3b868b75 64{
65 friend class ITSSDSubEditor;
c76ea574 66
67public:
68 struct ScaledDigit : public TObject
69 {
70 public:
71 Int_t N;
72 Float_t sum;
73 Float_t sqr_sum;
74 Int_t min_i,min_j;
75 Int_t max_i,max_j;
76
77 ScaledDigit();
78 ScaledDigit(Int_t di, Int_t dj);
79
80 void Dump() const;
81 };
82
3b868b75 83private:
fd31e9de 84 std::map<Int_t, ScaledDigit> fDigitsMap;
51346b82 85
d810d0de 86 AliEveITSScaledModule(const AliEveITSScaledModule&); // Not implemented
87 AliEveITSScaledModule& operator=(const AliEveITSScaledModule&); // Not implemented
3b868b75 88
89protected:
c76ea574 90 Int_t fNx; // per module
3b868b75 91 Int_t fNz;
92
93 Int_t fNCx; // per cell
94 Int_t fNCz;
95
d810d0de 96 AliEveDigitScaleInfo* fScaleInfo;
03dfc4a7 97
3b868b75 98public:
d810d0de 99 AliEveITSScaledModule(Int_t gid, AliEveITSDigitsInfo* info, AliEveDigitScaleInfo* si );
100 virtual ~AliEveITSScaledModule();
3b868b75 101
32e219c2 102 virtual void DigitSelected(Int_t idx);
3b868b75 103
104 virtual void LoadQuads();
105 void SetQuadValues();
106
32e219c2 107 void SyncPalette();
108
109 void GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total);
c76ea574 110 AliEveDigitScaleInfo* GetScaleInfo() { return fScaleInfo; }
3b868b75 111
698e2c9b 112 ClassDef(AliEveITSScaledModule, 1); // Visualization of an ITS module with digits aggregated on a grid of pre-defined size.
d810d0de 113}; // endclass AliEveITSScaledModule
3b868b75 114
115#endif