Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TEveCaloLegoEditor.cxx
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Author: Matevz Tadel 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#include "TEveCaloLegoEditor.h"
13#include "TEveCalo.h"
14#include "TEveGValuators.h"
15#include "TGComboBox.h"
16
17#include "TColor.h"
18#include "TGColorSelect.h"
19#include "TGLabel.h"
20#include "TG3DLine.h"
21
22/** \class TEveCaloLegoEditor
23\ingroup TEve
24GUI editor for TEveCaloLego.
25*/
26
28
29////////////////////////////////////////////////////////////////////////////////
30/// Constructor.
31
33 UInt_t options, Pixel_t back) :
34 TGedFrame(p, width, height, options | kVerticalFrame, back),
35 fM(nullptr),
36 fGridColor(nullptr),
37 fFontColor(nullptr),
38 fPlaneColor(nullptr),
39 fTransparency(nullptr),
40
41 fProjection(nullptr),
42 f2DMode(nullptr),
43 fBoxMode(nullptr),
44
45 fCell2DTextMin(nullptr),
46
47 fRebinFrame(nullptr),
48 fAutoRebin(nullptr),
49 fPixelsPerBin(nullptr),
50 fNormalizeRebin(nullptr)
51
52{
53 MakeTitle("TEveCaloLego");
54
55 { // grid color
57 TGLabel* lab = new TGLabel(f, "GridColor:");
58 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 10, 1, 1));
59
60 fGridColor = new TGColorSelect(f, 0, -1);
61 f->AddFrame(fGridColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
62 fGridColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoGridColor(Pixel_t)");
63
64 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
65 }
66 // axis
67 {
68 // font color
70 TGLabel* lab = new TGLabel(f, "FontColor:");
71 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 8, 1, 1));
72
73 fFontColor = new TGColorSelect(f, 0, -1);
74 f->AddFrame(fFontColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
75 fFontColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoFontColor(Pixel_t)");
76
77 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
78 }
79 {
80 // plane color
82 TGLabel* lab = new TGLabel(f, "PlaneColor:");
83 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 1, 1, 1));
84
85 fPlaneColor = new TGColorSelect(f, 0, -1);
86 f->AddFrame(fPlaneColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
87 fPlaneColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoPlaneColor(Pixel_t)");
88
89 fTransparency = new TGNumberEntry(f, 0., 2, -1,
93 fTransparency->GetNumberEntry()->SetToolTipText("Transparency: 0 is opaque, 100 fully transparent.");
94 f->AddFrame(fTransparency, new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
95 fTransparency->Connect("ValueSet(Long_t)","TEveCaloLegoEditor", this, "DoTransparency()");
96
97 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
98 }
99
100 Int_t lw = 80;
101
102 fProjection = MakeLabeledCombo("Project:", 1);
106 fProjection->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "DoProjection()");
107
108 f2DMode = MakeLabeledCombo("2DMode:", 4);
112 f2DMode->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "Do2DMode()");
113
114 fBoxMode = MakeLabeledCombo("Box:", 4);
118 fBoxMode->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "DoBoxMode()");
119
120 fCell2DTextMin = new TEveGValuator(this, "Cell2DTexMin:", 90, 0);
125 fCell2DTextMin->SetLimits(1, 1000);
126 fCell2DTextMin->SetToolTip("Draw cell values above N pixels.");
127 fCell2DTextMin->Connect("ValueSet(Double_t)", "TEveCaloLegoEditor", this, "DoCell2DTextMin()");
129
131}
132
133////////////////////////////////////////////////////////////////////////////////
134
136{
138
139 fAutoRebin = new TGCheckButton(fRebinFrame, "AutoRebin");
141 fAutoRebin->Connect("Toggled(Bool_t)", "TEveCaloLegoEditor", this, "DoAutoRebin()");
142
143 fNormalizeRebin = new TGCheckButton(fRebinFrame, "NormalizeRebin");
145 fNormalizeRebin->Connect("Toggled(Bool_t)", "TEveCaloLegoEditor", this, "DoNormalize()");
146
147 fPixelsPerBin = new TEveGValuator(fRebinFrame, "PixelsPerBin:", 90, 0);
152 fPixelsPerBin->SetLimits(1, 50);
153 fPixelsPerBin->SetToolTip("Number of labels along the Z axis.");
154 fPixelsPerBin->Connect("ValueSet(Double_t)", "TEveCaloLegoEditor", this, "DoPixelsPerBin()");
156}
157
158////////////////////////////////////////////////////////////////////////////////
159/// Helper function. Creates TGComboBox with fixed size TGLabel.
160
162{
163 UInt_t labelW = 60;
164 UInt_t labelH = 20;
165 TGHorizontalFrame* hf = new TGHorizontalFrame(this);
166 // label
167 TGCompositeFrame *labfr = new TGHorizontalFrame(hf, labelW, labelH, kFixedSize);
168 TGLabel* label = new TGLabel(labfr, name);
169 labfr->AddFrame(label, new TGLayoutHints(kLHintsLeft | kLHintsBottom));
170 hf->AddFrame(labfr, new TGLayoutHints(kLHintsLeft));
171 // combo
172 TGLayoutHints* clh = new TGLayoutHints(kLHintsLeft, 0,0,0,0);
173 TGComboBox* combo = new TGComboBox(hf);
174 combo->Resize(90, 20);
175 hf->AddFrame(combo, clh);
176
177 AddFrame(hf, new TGLayoutHints(kLHintsTop, 1, 1, 1, off));
178 return combo;
179}
180
181////////////////////////////////////////////////////////////////////////////////
182/// Set model object.
183
185{
186 fM = dynamic_cast<TEveCaloLego*>(obj);
187
190
193
195
199
203}
204
205////////////////////////////////////////////////////////////////////////////////
206/// Slot for GridColor.
207
209{
211 Update();
212}
213
214////////////////////////////////////////////////////////////////////////////////
215/// Slot for FontColor.
216
218{
220 Update();
221}
222
223////////////////////////////////////////////////////////////////////////////////
224/// Slot for PlaneColor.
225
227{
229 Update();
230}
231
232////////////////////////////////////////////////////////////////////////////////
233/// Slot for setting limit in pixels in which cell value is rendered.
234
236{
238 Update();
239}
240
241
242////////////////////////////////////////////////////////////////////////////////
243/// Slot for projection.
244
246{
248 Update();
249}
250
251////////////////////////////////////////////////////////////////////////////////
252/// Slot for projection.
253
255{
257 Update();
258}
259
260////////////////////////////////////////////////////////////////////////////////
261/// Slot for projection.
262
264{
266 Update();
267}
268
269////////////////////////////////////////////////////////////////////////////////
270/// Slot for Transparency.
271
273{
275 Update();
276}
277
278////////////////////////////////////////////////////////////////////////////////
279/// Slot for PixelsPerBin.
280
282{
284 Update();
285}
286
287////////////////////////////////////////////////////////////////////////////////
288
290{
292 Update();
293}
294
295////////////////////////////////////////////////////////////////////////////////
296
298{
300 Update();
301}
@ kVerticalFrame
Definition GuiTypes.h:381
@ kFixedSize
Definition GuiTypes.h:390
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
#define f(i)
Definition RSha256.hxx:104
short Color_t
Definition RtypesCore.h:92
char Char_t
Definition RtypesCore.h:37
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
#define ClassImp(name)
Definition Rtypes.h:377
@ kButtonDown
Definition TGButton.h:54
@ kButtonUp
Definition TGButton.h:53
@ kLHintsLeft
Definition TGLayout.h:24
@ kLHintsBottom
Definition TGLayout.h:29
@ kLHintsTop
Definition TGLayout.h:27
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void pixel
Option_t Option_t width
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
char name[80]
Definition TGX11.cxx:110
static ULong_t Number2Pixel(Int_t ci)
Static method that given a color index number, returns the corresponding pixel value.
Definition TColor.cxx:2320
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
Definition TColor.cxx:1839
GUI editor for TEveCaloLego.
TGCheckButton * fAutoRebin
TGVerticalFrame * fRebinFrame
TEveCaloLegoEditor(const TEveCaloLegoEditor &)
TGColorSelect * fPlaneColor
TGNumberEntry * fTransparency
void DoProjection()
Slot for projection.
TEveGValuator * fCell2DTextMin
TGCheckButton * fNormalizeRebin
void DoBoxMode()
Slot for projection.
void DoFontColor(Pixel_t color)
Slot for FontColor.
void Do2DMode()
Slot for projection.
void SetModel(TObject *obj) override
Set model object.
void DoTransparency()
Slot for Transparency.
TGColorSelect * fFontColor
void DoCell2DTextMin()
Slot for setting limit in pixels in which cell value is rendered.
TEveGValuator * fPixelsPerBin
void DoGridColor(Pixel_t color)
Slot for GridColor.
void DoPlaneColor(Pixel_t color)
Slot for PlaneColor.
void DoPixelsPerBin()
Slot for PixelsPerBin.
TGColorSelect * fGridColor
TGComboBox * MakeLabeledCombo(const char *name, Int_t off)
Helper function. Creates TGComboBox with fixed size TGLabel.
Visualization of calorimeter data as eta/phi histogram.
Definition TEveCalo.h:251
Bool_t GetNormalizeRebin() const
Definition TEveCalo.h:322
void Set2DMode(E2DMode_e p)
Definition TEveCalo.h:328
Int_t GetPixelsPerBin() const
Definition TEveCalo.h:316
Color_t GetFontColor() const
Definition TEveCalo.h:301
void SetProjection(EProjection_e p)
Definition TEveCalo.h:326
void SetFontColor(Color_t ci)
Definition TEveCalo.h:302
void SetAutoRebin(Bool_t s)
Definition TEveCalo.h:320
void SetDrawNumberCellPixels(Int_t x)
Definition TEveCalo.h:347
void SetPlaneColor(Color_t ci)
Definition TEveCalo.h:308
void SetBoxMode(EBoxMode_e p)
Definition TEveCalo.h:337
void SetPixelsPerBin(Int_t bw)
Definition TEveCalo.h:317
void SetNormalizeRebin(Bool_t s)
Definition TEveCalo.h:323
Color_t GetPlaneColor() const
Definition TEveCalo.h:307
EProjection_e GetProjection() const
Definition TEveCalo.h:325
Char_t GetPlaneTransparency() const
Definition TEveCalo.h:310
Int_t GetDrawNumberCellPixels()
Definition TEveCalo.h:346
void SetGridColor(Color_t ci)
Definition TEveCalo.h:305
E2DMode_e Get2DMode()
Definition TEveCalo.h:329
Bool_t GetAutoRebin() const
Definition TEveCalo.h:319
Color_t GetGridColor() const
Definition TEveCalo.h:304
void SetPlaneTransparency(Char_t t)
Definition TEveCalo.h:311
EBoxMode_e GetBoxMode()
Definition TEveCalo.h:338
void SetLabelWidth(Int_t w)
void SetShowSlider(Bool_t s=kTRUE)
void SetNELength(Int_t l)
Composite GUI element for single value selection (supports label, number-entry and slider).
void Build(Bool_t connect=kTRUE) override
Create sub-components (label, number entry, slider).
void SetToolTip(const char *tip)
Set the tooltip of the number-entry.
void SetLimits(Int_t min, Int_t max)
Set limits of the represented value for integer values.
Float_t GetValue() const
virtual void SetValue(Float_t v, Bool_t emit=kFALSE)
Set value, optionally emit signal.
Selects different options.
Definition TGButton.h:264
Bool_t IsOn() const override
Definition TGButton.h:310
void SetState(EButtonState state, Bool_t emit=kFALSE) override
Set check button state.
Like a checkbutton but instead of the check mark there is color area with a little down arrow.
void SetColor(Pixel_t color, Bool_t emit=kTRUE)
Set color.
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
Definition TGComboBox.h:47
virtual Int_t GetSelected() const
Definition TGComboBox.h:114
virtual void AddEntry(TGString *s, Int_t id)
Definition TGComboBox.h:86
virtual void Select(Int_t id, Bool_t emit=kTRUE)
Make the selected item visible in the combo box window and emit signals according to the second param...
The base class for composite widgets (menu bars, list boxes, etc.).
Definition TGFrame.h:287
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
Definition TGFrame.cxx:1117
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
Definition TGFrame.cxx:605
virtual void SetHeight(UInt_t h)
Definition TGFrame.h:247
A composite frame that layout their children in horizontal way.
Definition TGFrame.h:385
This class handles GUI labels.
Definition TGLabel.h:24
This class describes layout hints used by the layout classes.
Definition TGLayout.h:50
TGNumberEntry is a number entry input widget with up/down buttons.
TGNumberEntryField * GetNumberEntry() const
Get the number entry field.
virtual Double_t GetNumber() const
virtual void SetNumber(Double_t val, Bool_t emit=kTRUE)
@ kNEANonNegative
Non-negative number.
@ kNESInteger
Style of number entry field.
@ kNELLimitMinMax
Both lower and upper limits.
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
ROOT GUI Window base class.
Definition TGWindow.h:23
Base frame for implementing GUI - a service class.
Definition TGedFrame.h:27
virtual TGVerticalFrame * CreateEditorTabSubFrame(const char *name)
Create a vertical frame to be used by 'owner' in extra tab 'name'.
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition TGedFrame.cxx:95
virtual void Update()
Update the current pad when an attribute is changed via GUI.
Definition TGedFrame.cxx:72
Mother of all ROOT objects.
Definition TObject.h:41
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Definition TQObject.cxx:869