Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TAdvancedGraphicsDialog.cxx
Go to the documentation of this file.
1// @(#)root/fitpanel:$Id$
2// Author: David Gonzalez Maline 11/12/2008
3
4/*************************************************************************
5 * Copyright (C) 1995-2006, 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
13/** \class TAdvancedGraphicsDialog
14 \ingroup fitpanel
15
16Allows to create advanced graphics from the last fit made in the
17fitpanel. This includes the scan graphics, the contour and the
18confidence levels.
19
20*/
21
22
24#include "TGraph.h"
25#include "TAxis.h"
26#include "TVirtualPad.h"
27#include "TColor.h"
28
29#include "Fit/BinData.h"
30#include "Math/IParamFunction.h"
31#include "TGraphErrors.h"
32#include "TGraph2DErrors.h"
33
34#include <sstream>
35
36#include <string>
37
40 fFitter((TBackCompFitter *) TVirtualFitter::GetFitter())
41{
42 // Creates the Advanced Graphics Dialog.
43
44
45 if (!p && !main) {
46 MakeZombie();
47 return;
48 }
50
51 fMainFrame = new TGVerticalFrame(this);
52
53 fTab = new TGTab(fMainFrame, 10, 10);
54 fMainFrame->AddFrame(fTab, new TGLayoutHints(kLHintsExpandY | kLHintsExpandX, 5,5,5,0));
55 fTab->SetCleanup(kDeepCleanup);
56 fTab->Associate(this);
57
58 // Add the first method to the dialog (Contour)
60 fTab->AddTab("Contour", fContourFrame);
61
62 // Add the second method to the dialog (Scan)
64 fTab->AddTab("Scan", fScanFrame);
65
67 fTab->AddTab("Conf Intervals", fConfFrame);
68
70
71 fDraw = new TGTextButton(frame, "&Draw", kAGD_BDRAW);
72 fDraw->Associate(this);
73 frame->AddFrame(fDraw, new TGLayoutHints(kLHintsCenterY | kLHintsExpandX, 5, 5, 0, 0));
74
75 fClose = new TGTextButton(frame, "&Close", kAGD_BCLOSE);
76 fClose->Associate(this);
77 frame->AddFrame(fClose, new TGLayoutHints(kLHintsCenterY | kLHintsExpandX, 5, 5, 0, 0));
78
79 UInt_t width = 0, height = 0;
80 height = fClose->GetDefaultHeight();
81 width = TMath::Max(width, fClose->GetDefaultWidth());
82 frame->Resize((width + 20) * 2, height);
83
84 fMainFrame->AddFrame(frame, new TGLayoutHints(kLHintsBottom | kLHintsRight, 0, 0, 5, 0));
85
87
89
90 SetWindowName("Advanced Drawing Tools");
91
92 // map all widgets and calculate size of dialog
94
95 width = GetDefaultWidth();
96 height = GetDefaultHeight();
97
98 Resize(width, height);
99 MapWindow();
100
101 // position relative to the parent's window
103
104 // make the message box non-resizable
105 SetWMSize(width, height);
106 SetWMSizeHints(width, height, width, height, 0, 0);
107
113
114 // popup dialog and wait till user replies
115 gClient->WaitFor(this);
116}
117
118////////////////////////////////////////////////////////////////////////////////
119/// Create the frame that contains all the necessary information for
120/// the Contour method.
121
123{
126
127 TGLabel* label = new TGLabel(frame, "Number of Points: ");
128 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
129
130 fContourPoints = new TGNumberEntry(frame, 40,
131 5, kAGD_SCANMIN,
135 fContourPoints->Resize(130, 20);
136 fContourPoints->GetNumberEntry()->SetToolTipText("Sets the number of points used for the contour");
137 frame->AddFrame(fContourPoints, new TGLayoutHints(kLHintsNormal, 8, 0, 5, 0));
138 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
139
140 frame = new TGHorizontalFrame(fContourFrame);
141 label = new TGLabel(frame, "Parameter 1: ");
142 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
143
146 fContourPar1->Resize(130, 20);
147 fContourPar1->Associate(this);
148 TGListBox *lb = fContourPar1->GetListBox();
149 lb->Resize(lb->GetWidth(), 200);
150 frame->AddFrame(fContourPar1, new TGLayoutHints(kLHintsNormal, 37, 0, 5, 0));
151 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
152
153 frame = new TGHorizontalFrame(fContourFrame);
154
155 label = new TGLabel(frame, "Parameter 2: ");
156 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
157
161 fContourPar2->Resize(130, 20);
162 fContourPar2->Associate(this);
163 lb = fContourPar2->GetListBox();
164 lb->Resize(lb->GetWidth(), 200);
165 frame->AddFrame(fContourPar2, new TGLayoutHints(kLHintsNormal, 37, 0, 5, 0));
166
167 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
168
169 frame = new TGHorizontalFrame(fContourFrame);
170
171 label = new TGLabel(frame, "Confidence Level: ");
172 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
173
174 fContourError = new TGNumberEntry(frame, 0.683, 5, kAGD_CONTERR,
178 fContourError->Resize(130, 20);
179 fContourError->GetNumberEntry()->SetToolTipText("Sets the contour confidence level");
180 frame->AddFrame(fContourError, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
181
182 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 5));
183
184 frame = new TGHorizontalFrame(fContourFrame);
185
186 label = new TGLabel(frame, "Fill Colour: ");
187 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
188
190 frame->AddFrame(fContourColor, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
191
192 fContourOver = new TGCheckButton(frame, "Superimpose", kAGD_CONTOVER);
193 fContourOver->SetToolTipText("If checked, the new contour will overlap the previous one");
194 frame->AddFrame(fContourOver, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
195
196 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 5));
197}
198
199////////////////////////////////////////////////////////////////////////////////
200/// Create the frame that contains all the necessary information for
201/// the Scan method.
202
204{
207
208 TGLabel* label = new TGLabel(frame, "Number of Points: ");
209 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
210
211 fScanPoints = new TGNumberEntry(frame, 40,
212 5, kAGD_SCANMIN,
216 fScanPoints->Resize(140, 20);
217 fScanPoints->GetNumberEntry()->SetToolTipText("Sets the number of points used in the scan");
218 frame->AddFrame(fScanPoints, new TGLayoutHints(kLHintsNormal, 0, 0, 5, 0));
219 fScanFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
220
221 frame = new TGHorizontalFrame(fScanFrame);
222
223 label = new TGLabel(frame, "Parameter: ");
224 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
225
226 fScanPar = new TGComboBox(frame, kAGD_SCANPAR);
228 fScanPar->Resize(140, 20);
229 fScanPar->Associate(this);
230 TGListBox *lb = fScanPar->GetListBox();
231 lb->Resize(lb->GetWidth(), 200);
232 frame->AddFrame(fScanPar, new TGLayoutHints(kLHintsNormal, 39, 0, 5, 0));
233 fScanFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
234
235 frame = new TGHorizontalFrame(fScanFrame);
236 label = new TGLabel(frame, "Min: ");
237 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
238
239 double val = fFitter->GetParameter( fScanPar->GetSelected() - kAGD_PARCOUNTER );
240 double err = fFitter->GetParError( fScanPar->GetSelected() - kAGD_PARCOUNTER );
241 fScanMin = new TGNumberEntry(frame, val - 2.*err ,
242 5, kAGD_SCANMIN,
246 fScanMin->Resize(70, 20);
247 fScanMin->GetNumberEntry()->SetToolTipText("Sets the minimum parameter value");
248 frame->AddFrame(fScanMin, new TGLayoutHints(kLHintsNormal, 2, 0, 5, 0));
249
250 label = new TGLabel(frame, "Max: ");
251 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 35, 5, 5, 0));
252 fScanMax = new TGNumberEntry(frame, val + 2.*err,
253 5, kAGD_SCANMAX,
257 fScanMax->Resize(70, 20);
258 fScanMax->GetNumberEntry()->SetToolTipText("Sets the maximum parameter value");
259 frame->AddFrame(fScanMax, new TGLayoutHints(kLHintsNormal, 2, 0, 5, 0));
260 fScanFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
261
262}
263
264////////////////////////////////////////////////////////////////////////////////
265/// Create the frame that contains all the necessary information for
266/// the Confidence Level method.
267
269{
272
273 TGLabel* label = new TGLabel(frame, "Confidence Level: ");
274 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
275
276 fConfLevel = new TGNumberEntry(frame, 0.95,
277 5, kAGD_SCANMIN,
281 0, 0.9999);
282 fConfLevel->Resize(140, 20);
283 fConfLevel->GetNumberEntry()->SetToolTipText("Sets the value of the confidence level");
284 frame->AddFrame(fConfLevel, new TGLayoutHints(kLHintsNormal, 0, 0, 5, 0));
285 fConfFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
286
287 frame = new TGHorizontalFrame(fConfFrame);
288
289 label = new TGLabel(frame, "Fill Colour: ");
290 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
291
293 frame->AddFrame(fConfColor, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
294
295 fConfFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 5));
296}
297
299{
300 // Add all the parameters of the VirtualFitter into a comboBox
301 // (helper method)
302
303 for ( Int_t i = 0; i < fFitter->GetNumberTotalParameters(); ++i ) {
304 comboBox->AddEntry(fFitter->GetParName(i), kAGD_PARCOUNTER + i);
305 }
306 comboBox->Select(kAGD_PARCOUNTER, kFALSE);
307}
308
309////////////////////////////////////////////////////////////////////////////////
310/// Connect the slots (buttons mainly + specific methods)
311
313{
314 // Buttons
315 fClose->Connect("Clicked()", "TAdvancedGraphicsDialog", this, "CloseWindow()");
316 fDraw->Connect("Clicked()", "TAdvancedGraphicsDialog", this, "DoDraw()");
317
318 // Slots for the Scan method
319 fScanPar->Connect("Selected(Int_t)", "TAdvancedGraphicsDialog", this, "DoChangedScanPar(Int_t)");
320}
321
322////////////////////////////////////////////////////////////////////////////////
323/// Changes the Min and Max default values of the scan method,
324/// depending on the selected parameter.
325
327{
328 double val = fFitter->GetParameter( selected - kAGD_PARCOUNTER );
329 double err = fFitter->GetParError( selected - kAGD_PARCOUNTER );
330 fScanMin->SetNumber( val -2 * err );
331 fScanMax->SetNumber( val +2 * err );
332}
333
334////////////////////////////////////////////////////////////////////////////////
335/// Calls the corresponding method, depending on the selected tab.
336
338{
339 if ( fTab->GetCurrent() == 0 ) {
340 DrawContour();
341 } else if ( fTab->GetCurrent() == 1 ) {
342 DrawScan();
343 } else if ( fTab->GetCurrent() == 2 ) {
345 }
346}
347
348////////////////////////////////////////////////////////////////////////////////
349/// Generates all necessary data for the Contour method from its
350/// tab. Then it call Virtual Fitter to perform it.
351
353{
354 static TGraph * graph = 0;
355 std::string options;
356 if ( ! (fContourOver->GetState() == kButtonDown) ) {
357 if ( graph )
358 delete graph;
359 options = "ALF";
360 } else
361 options = "LF";
362 graph = new TGraph( static_cast<int>(fContourPoints->GetNumber()) );
363 Int_t par1 = fContourPar1->GetSelected() - kAGD_PARCOUNTER;
364 Int_t par2 = fContourPar2->GetSelected() - kAGD_PARCOUNTER;
365 if ( par1 == par2 ) {
366 Error("TAdvancedGraphicsDialog::DrawContour", "Parameters cannot be the same");
367 return;
368 }
369 // contour error is actually the desired confidence level
370 Double_t cl = fContourError->GetNumber();
371 fFitter->Contour( par1, par2, graph, cl);
372 graph->SetFillColor( TColor::GetColor( fContourColor->GetColor() ) );
373 graph->GetXaxis()->SetTitle( fFitter->GetParName(par1) );
374 graph->GetYaxis()->SetTitle( fFitter->GetParName(par2) );
375 graph->Draw( options.c_str() );
376 gPad->Update();
377}
378
379////////////////////////////////////////////////////////////////////////////////
380/// Generates all necessary data for the Scan method from its
381/// tab. Then it call Virtual Fitter to perform it.
382
384{
385 static TGraph * graph = 0;
386 if ( graph )
387 delete graph;
388 graph = new TGraph( static_cast<int>(fScanPoints->GetNumber()) );
389 Int_t par = fScanPar->GetSelected() - kAGD_PARCOUNTER;
390 fFitter->Scan( par, graph,
391 fScanMin->GetNumber(),
392 fScanMax->GetNumber() );
393 graph->SetLineColor(kBlue);
394 graph->SetLineWidth(2);
395 graph->GetXaxis()->SetTitle(fFitter->GetParName(par) );
396 graph->GetYaxis()->SetTitle("FCN" );
397 graph->Draw("APL");
398 gPad->Update();
399}
400
401////////////////////////////////////////////////////////////////////////////////
402/// Generates all necessary data for the Scan method from its
403/// tab. Then it call Virtual Fitter to perform it.
404
406{
407 const ROOT::Fit::FitResult& result = fFitter->GetFitResult();
408 const ROOT::Fit::FitResult::IModelFunction* function = result.FittedFunction();
409 const ROOT::Fit::BinData* data = dynamic_cast<const ROOT::Fit::BinData*>(&(fFitter->GetFitData()));
410 if ( !data )
411 {
412 Error("DrawConfidenceLevels","Unbinned data set cannot draw confidence levels.");
413 return;
414 }
415
416 if ( !function )
417 {
418 Error("DrawConfidenceLevels","Fit Function does not exist!");
419 return;
420 }
421
422 std::vector<Double_t> ci(data->Size());
423 result.GetConfidenceIntervals(*data, &ci[0], fConfLevel->GetNumber());
424
425 if ( data->NDim() == 1 )
426 {
427 TGraphErrors* g = new TGraphErrors(ci.size());
428 for (unsigned int i = 0; i < ci.size(); ++i)
429 {
430 const Double_t *x = data->Coords(i);
431 const Double_t y = (*function)(x);
432 g->SetPoint(i, *x, y);
433 g->SetPointError(i, 0, ci[i]);
434 }
435 std::ostringstream os;
436 os << "Confidence Intervals with " << fConfLevel->GetNumber()
437 << " conf. band.";
438 g->SetTitle(os.str().c_str());
439 g->SetLineColor( TColor::GetColor( fConfColor->GetColor() ));
440 g->SetFillColor( TColor::GetColor( fConfColor->GetColor() ));
441 g->SetFillStyle(3001);
442 g->Draw("C3same");
443 } else if ( data->NDim() == 2 )
444 {
445 TGraph2DErrors* g = new TGraph2DErrors(ci.size());
446 for (unsigned int i = 0; i < ci.size(); ++i)
447 {
448 const Double_t *x = data->Coords(i);
449 const Double_t y = (*function)(x);
450 g->SetPoint(i, x[0], x[1], y);
451 g->SetPointError(i, 0, 0, ci[i]);
452 }
453 std::ostringstream os;
454 os << "Confidence Intervals with " << fConfLevel->GetNumber()
455 << " conf. band.";
456 g->SetTitle(os.str().c_str());
457 g->SetLineColor( TColor::GetColor( fConfColor->GetColor() ));
458 g->SetFillColor( TColor::GetColor( fConfColor->GetColor() ));
459 g->SetFillStyle(3001);
460 g->Draw("C3same");
461 }
462 gPad->Update();
463}
464
465////////////////////////////////////////////////////////////////////////////////
466/// Cleanup dialog.
467
@ kVerticalFrame
Definition GuiTypes.h:382
#define g(i)
Definition RSha256.hxx:105
int Int_t
Signed integer 4 bytes (int).
Definition RtypesCore.h:59
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
Definition RtypesCore.h:60
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
@ kBlue
Definition Rtypes.h:67
@ kYellow
Definition Rtypes.h:67
Error("WriteTObject","The current directory (%s) is not associated with a file. The object (%s) has not been written.", GetName(), objname)
@ kButtonDown
Definition TGButton.h:54
#define gClient
Definition TGClient.h:157
@ kMWMDecorResizeH
Definition TGFrame.h:65
@ kMWMFuncAll
Definition TGFrame.h:49
@ kMWMFuncResize
Definition TGFrame.h:50
@ kMWMDecorMaximize
Definition TGFrame.h:69
@ kMWMDecorMinimize
Definition TGFrame.h:68
@ kMWMDecorMenu
Definition TGFrame.h:67
@ kMWMDecorAll
Definition TGFrame.h:63
@ kMWMFuncMaximize
Definition TGFrame.h:53
@ kMWMInputModeless
Definition TGFrame.h:57
@ kMWMFuncMinimize
Definition TGFrame.h:52
@ kDeepCleanup
Definition TGFrame.h:42
@ kLHintsRight
Definition TGLayout.h:26
@ kLHintsExpandY
Definition TGLayout.h:31
@ kLHintsLeft
Definition TGLayout.h:24
@ kLHintsCenterY
Definition TGLayout.h:28
@ kLHintsNormal
Definition TGLayout.h:32
@ kLHintsBottom
Definition TGLayout.h:29
@ kLHintsTop
Definition TGLayout.h:27
@ kLHintsExpandX
Definition TGLayout.h:30
Double_t err
#define gPad
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
Definition BinData.h:52
class containing the result of the fit and all the related information (fitted parameter values,...
Definition FitResult.h:44
ROOT::Math::IParamMultiFunction IModelFunction
Definition FitResult.h:48
void GetConfidenceIntervals(unsigned int n, unsigned int stride1, unsigned int stride2, const double *x, double *ci, double cl=0.95, bool norm=false) const
get confidence intervals for an array of n points x.
const IModelFunction * FittedFunction() const
fitting quantities
Definition FitResult.h:133
TBackCompFitter * fFitter
Fitter.
~TAdvancedGraphicsDialog() override
Cleanup dialog.
TGVerticalFrame * fContourFrame
Contour Frame.
TGNumberEntry * fScanMax
Max Value for Contour.
void DoDraw()
Calls the corresponding method, depending on the selected tab.
void CreateScanFrame()
Create the frame that contains all the necessary information for the Scan method.
void CreateConfFrame()
Create the frame that contains all the necessary information for the Confidence Level method.
TGComboBox * fContourPar1
Parameter 1 for Contour.
TGComboBox * fScanPar
Parameter for Scan.
void ConnectSlots()
Connect the slots (buttons mainly + specific methods).
TGNumberEntry * fScanPoints
Number of points for the graph.
TGNumberEntry * fContourError
Error Level for Contour.
TGTextButton * fDraw
ok button
TGComboBox * fContourPar2
Parameter 2 for Contour.
TGVerticalFrame * fMainFrame
Main Vertical Frame.
TGColorSelect * fConfColor
Color for the graph.
TGVerticalFrame * fScanFrame
Scan Frame.
void CreateContourFrame()
Create the frame that contains all the necessary information for the Contour method.
void DrawContour()
Generates all necessary data for the Contour method from its tab.
TGNumberEntry * fConfLevel
Confidence Level.
TGTextButton * fClose
cancel button
TAdvancedGraphicsDialog(const TAdvancedGraphicsDialog &)
TGTab * fTab
Tab containing the available methods.
TGNumberEntry * fScanMin
Min Value for Contour.
TGVerticalFrame * fConfFrame
Confidence Intervals Frame.
void DoChangedScanPar(Int_t selected)
Changes the Min and Max default values of the scan method, depending on the selected parameter.
TGColorSelect * fContourColor
Color for the graph.
void DrawScan()
Generates all necessary data for the Scan method from its tab.
void DrawConfidenceLevels()
Generates all necessary data for the Scan method from its tab.
TGCheckButton * fContourOver
Superimpose the graphics.
TGNumberEntry * fContourPoints
Number of points for the graph.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition TAttFill.h:40
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition TAttLine.h:47
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition TAttLine.h:44
Backward compatible implementation of TVirtualFitter.
static Int_t GetColor(const char *hexcolor)
static ULong_t Number2Pixel(Int_t ci)
Selects different options.
Definition TGButton.h:264
Like a checkbutton but instead of the check mark there is color area with a little down arrow.
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 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...
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
Definition TGFrame.cxx:1109
UInt_t GetDefaultWidth() const override
Definition TGFrame.h:314
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition TGFrame.cxx:959
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
Definition TGFrame.cxx:1156
UInt_t GetDefaultHeight() const override
Definition TGFrame.h:316
TGCompositeFrame(const TGCompositeFrame &)=delete
void SetCleanup(Int_t mode=kLocalCleanup) override
Turn on automatic cleanup of child frames in dtor.
Definition TGFrame.cxx:1064
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
Definition TGFrame.cxx:597
void MapWindow() override
map window
Definition TGFrame.h:206
UInt_t GetWidth() const
Definition TGFrame.h:226
A composite frame that layout their children in horizontal way.
Definition TGFrame.h:387
This class handles GUI labels.
Definition TGLabel.h:24
This class describes layout hints used by the layout classes.
Definition TGLayout.h:50
A listbox is a box, possibly with scrollbar, containing entries.
Definition TGListBox.h:221
void Resize(UInt_t w, UInt_t h) override
Resize the listbox widget.
void SetWMSize(UInt_t w, UInt_t h)
Give the window manager a window size hint.
Definition TGFrame.cxx:1885
void SetWindowName(const char *name=nullptr) override
Set window name. This is typically done via the window manager.
Definition TGFrame.cxx:1780
void SetMWMHints(UInt_t value, UInt_t funcs, UInt_t input)
Set decoration style for MWM-compatible wm (mwm, ncdwm, fvwm?).
Definition TGFrame.cxx:1860
void SetWMSizeHints(UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
Give the window manager minimum and maximum size hints.
Definition TGFrame.cxx:1898
TGNumberEntry is a number entry input widget with up/down buttons.
@ kNEAPositive
Positive number.
@ kNEANonNegative
Non-negative number.
@ kNEAAnyNumber
Attributes of number entry field.
@ kNESRealThree
Fixed fraction real, three digit.
@ kNESInteger
Style of number entry field.
@ kNESRealFour
Fixed fraction real, four digit.
@ kNESRealTwo
Fixed fraction real, two digit.
@ kNELNoLimits
Limit selection of number entry field.
@ kNELLimitMinMax
Both lower and upper limits.
A tab widget contains a set of composite frames each with a little tab with a name (like a set of fol...
Definition TGTab.h:46
Yield an action as soon as it is clicked.
Definition TGButton.h:142
TGTransientFrame(const TGTransientFrame &)=delete
virtual void CenterOnParent(Bool_t croot=kTRUE, EPlacement pos=kCenter)
Position transient frame centered relative to the parent frame.
Definition TGFrame.cxx:1949
A composite frame that layout their children in vertical way.
Definition TGFrame.h:376
ROOT GUI Window base class.
Definition TGWindow.h:23
void Draw(Option_t *chopt="") override
Default Draw method for all objects.
TAxis * GetXaxis() const
TAxis * GetYaxis() const
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Definition TNamed.cxx:173
void MakeZombie()
Definition TObject.h:55
Abstract Base Class for Fitting.
int main(int argc, char **argv)
Definition hadd.cxx:631
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Definition TMathBase.h:249