Logo ROOT  
Reference Guide
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// //
14// TAdvancedGraphicsDialog //
15// //
16// Allows to create advanced graphics from the last fit made in the //
17// fitpanel. This includes the scan graphics, the contour and the //
18// confidence levels. //
19//////////////////////////////////////////////////////////////////////////
20
22#include "TGraph.h"
23#include "TAxis.h"
24#include "TPad.h"
25#include "TColor.h"
26
27#include "Fit/BinData.h"
28#include "Math/IParamFunction.h"
29#include "TGraphErrors.h"
30#include "TGraph2DErrors.h"
31
32#include <sstream>
33
34#include <string>
35
38 fFitter((TBackCompFitter *) TVirtualFitter::GetFitter())
39{
40 // Creates the Advanced Graphics Dialog.
41
42
43 if (!p && !main) {
44 MakeZombie();
45 return;
46 }
48
49 fMainFrame = new TGVerticalFrame(this);
50
51 fTab = new TGTab(fMainFrame, 10, 10);
54 fTab->Associate(this);
55
56 // Add the first method to the dialog (Contour)
58 fTab->AddTab("Contour", fContourFrame);
59
60 // Add the second method to the dialog (Scan)
62 fTab->AddTab("Scan", fScanFrame);
63
65 fTab->AddTab("Conf Intervals", fConfFrame);
66
68
69 fDraw = new TGTextButton(frame, "&Draw", kAGD_BDRAW);
70 fDraw->Associate(this);
71 frame->AddFrame(fDraw, new TGLayoutHints(kLHintsCenterY | kLHintsExpandX, 5, 5, 0, 0));
72
73 fClose = new TGTextButton(frame, "&Close", kAGD_BCLOSE);
74 fClose->Associate(this);
75 frame->AddFrame(fClose, new TGLayoutHints(kLHintsCenterY | kLHintsExpandX, 5, 5, 0, 0));
76
77 UInt_t width = 0, height = 0;
78 height = fClose->GetDefaultHeight();
80 frame->Resize((width + 20) * 2, height);
81
83
85
87
88 SetWindowName("Advanced Drawing Tools");
89
90 // map all widgets and calculate size of dialog
92
94 height = GetDefaultHeight();
95
96 Resize(width, height);
97 MapWindow();
98
99 // position relative to the parent's window
101
102 // make the message box non-resizable
103 SetWMSize(width, height);
104 SetWMSizeHints(width, height, width, height, 0, 0);
105
111
112 // popup dialog and wait till user replies
113 gClient->WaitFor(this);
114}
115
116////////////////////////////////////////////////////////////////////////////////
117/// Create the frame that contains all the necessary information for
118/// the Contour method.
119
121{
124
125 TGLabel* label = new TGLabel(frame, "Number of Points: ");
126 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
127
128 fContourPoints = new TGNumberEntry(frame, 40,
129 5, kAGD_SCANMIN,
133 fContourPoints->Resize(130, 20);
134 fContourPoints->GetNumberEntry()->SetToolTipText("Sets the number of points used for the contour");
135 frame->AddFrame(fContourPoints, new TGLayoutHints(kLHintsNormal, 8, 0, 5, 0));
136 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
137
138 frame = new TGHorizontalFrame(fContourFrame);
139 label = new TGLabel(frame, "Parameter 1: ");
140 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
141
144 fContourPar1->Resize(130, 20);
145 fContourPar1->Associate(this);
147 lb->Resize(lb->GetWidth(), 200);
148 frame->AddFrame(fContourPar1, new TGLayoutHints(kLHintsNormal, 37, 0, 5, 0));
149 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
150
151 frame = new TGHorizontalFrame(fContourFrame);
152
153 label = new TGLabel(frame, "Parameter 2: ");
154 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
155
159 fContourPar2->Resize(130, 20);
160 fContourPar2->Associate(this);
161 lb = fContourPar2->GetListBox();
162 lb->Resize(lb->GetWidth(), 200);
163 frame->AddFrame(fContourPar2, new TGLayoutHints(kLHintsNormal, 37, 0, 5, 0));
164
165 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
166
167 frame = new TGHorizontalFrame(fContourFrame);
168
169 label = new TGLabel(frame, "Confidence Level: ");
170 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
171
172 fContourError = new TGNumberEntry(frame, 0.683, 5, kAGD_CONTERR,
176 fContourError->Resize(130, 20);
177 fContourError->GetNumberEntry()->SetToolTipText("Sets the contour confidence level");
178 frame->AddFrame(fContourError, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
179
180 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 5));
181
182 frame = new TGHorizontalFrame(fContourFrame);
183
184 label = new TGLabel(frame, "Fill Colour: ");
185 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
186
188 frame->AddFrame(fContourColor, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
189
190 fContourOver = new TGCheckButton(frame, "Superimpose", kAGD_CONTOVER);
191 fContourOver->SetToolTipText("If checked, the new contour will overlap the previous one");
192 frame->AddFrame(fContourOver, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
193
194 fContourFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 5));
195}
196
197////////////////////////////////////////////////////////////////////////////////
198/// Create the frame that contains all the necessary information for
199/// the Scan method.
200
202{
205
206 TGLabel* label = new TGLabel(frame, "Number of Points: ");
207 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
208
209 fScanPoints = new TGNumberEntry(frame, 40,
210 5, kAGD_SCANMIN,
214 fScanPoints->Resize(140, 20);
215 fScanPoints->GetNumberEntry()->SetToolTipText("Sets the number of points used in the scan");
216 frame->AddFrame(fScanPoints, new TGLayoutHints(kLHintsNormal, 0, 0, 5, 0));
217 fScanFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
218
219 frame = new TGHorizontalFrame(fScanFrame);
220
221 label = new TGLabel(frame, "Parameter: ");
222 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
223
224 fScanPar = new TGComboBox(frame, kAGD_SCANPAR);
226 fScanPar->Resize(140, 20);
227 fScanPar->Associate(this);
229 lb->Resize(lb->GetWidth(), 200);
230 frame->AddFrame(fScanPar, new TGLayoutHints(kLHintsNormal, 39, 0, 5, 0));
231 fScanFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
232
233 frame = new TGHorizontalFrame(fScanFrame);
234 label = new TGLabel(frame, "Min: ");
235 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
236
239 fScanMin = new TGNumberEntry(frame, val - 2.*err ,
240 5, kAGD_SCANMIN,
244 fScanMin->Resize(70, 20);
245 fScanMin->GetNumberEntry()->SetToolTipText("Sets the minimum parameter value");
246 frame->AddFrame(fScanMin, new TGLayoutHints(kLHintsNormal, 2, 0, 5, 0));
247
248 label = new TGLabel(frame, "Max: ");
249 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 35, 5, 5, 0));
250 fScanMax = new TGNumberEntry(frame, val + 2.*err,
251 5, kAGD_SCANMAX,
255 fScanMax->Resize(70, 20);
256 fScanMax->GetNumberEntry()->SetToolTipText("Sets the maximum parameter value");
257 frame->AddFrame(fScanMax, new TGLayoutHints(kLHintsNormal, 2, 0, 5, 0));
258 fScanFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
259
260}
261
262////////////////////////////////////////////////////////////////////////////////
263/// Create the frame that contains all the necessary information for
264/// the Confidence Level method.
265
267{
270
271 TGLabel* label = new TGLabel(frame, "Confidence Level: ");
272 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
273
274 fConfLevel = new TGNumberEntry(frame, 0.95,
275 5, kAGD_SCANMIN,
279 0, 0.9999);
280 fConfLevel->Resize(140, 20);
281 fConfLevel->GetNumberEntry()->SetToolTipText("Sets the value of the confidence level");
282 frame->AddFrame(fConfLevel, new TGLayoutHints(kLHintsNormal, 0, 0, 5, 0));
283 fConfFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 0));
284
285 frame = new TGHorizontalFrame(fConfFrame);
286
287 label = new TGLabel(frame, "Fill Colour: ");
288 frame->AddFrame(label, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 0));
289
291 frame->AddFrame(fConfColor, new TGLayoutHints(kLHintsNormal, 5, 0, 5, 0));
292
293 fConfFrame->AddFrame(frame, new TGLayoutHints(kLHintsExpandX, 5, 5, 0, 5));
294}
295
297{
298 // Add all the parameters of the VirtualFitter into a comboBox
299 // (helper method)
300
301 for ( Int_t i = 0; i < fFitter->GetNumberTotalParameters(); ++i ) {
302 comboBox->AddEntry(fFitter->GetParName(i), kAGD_PARCOUNTER + i);
303 }
304 comboBox->Select(kAGD_PARCOUNTER, kFALSE);
305}
306
307////////////////////////////////////////////////////////////////////////////////
308/// Connect the slots (buttons mainly + specific methods)
309
311{
312 // Buttons
313 fClose->Connect("Clicked()", "TAdvancedGraphicsDialog", this, "CloseWindow()");
314 fDraw->Connect("Clicked()", "TAdvancedGraphicsDialog", this, "DoDraw()");
315
316 // Slots for the Scan method
317 fScanPar->Connect("Selected(Int_t)", "TAdvancedGraphicsDialog", this, "DoChangedScanPar(Int_t)");
318}
319
320////////////////////////////////////////////////////////////////////////////////
321/// Changes the Min and Max default values of the scan method,
322/// depending on the selected parameter.
323
325{
326 double val = fFitter->GetParameter( selected - kAGD_PARCOUNTER );
327 double err = fFitter->GetParError( selected - kAGD_PARCOUNTER );
328 fScanMin->SetNumber( val -2 * err );
329 fScanMax->SetNumber( val +2 * err );
330}
331
332////////////////////////////////////////////////////////////////////////////////
333/// Calls the correspoding method, depending on the selected tab.
334
336{
337 if ( fTab->GetCurrent() == 0 ) {
338 DrawContour();
339 } else if ( fTab->GetCurrent() == 1 ) {
340 DrawScan();
341 } else if ( fTab->GetCurrent() == 2 ) {
343 }
344}
345
346////////////////////////////////////////////////////////////////////////////////
347/// Generates all necessary data for the Contour method from its
348/// tab. Then it call Virtual Fitter to perform it.
349
351{
352 static TGraph * graph = 0;
353 std::string options;
354 if ( ! (fContourOver->GetState() == kButtonDown) ) {
355 if ( graph )
356 delete graph;
357 options = "ALF";
358 } else
359 options = "LF";
360 graph = new TGraph( static_cast<int>(fContourPoints->GetNumber()) );
363 if ( par1 == par2 ) {
364 Error("TAdvancedGraphicsDialog::DrawContour", "Parameters cannot be the same");
365 return;
366 }
367 // contour error is actually the desired confidence level
369 fFitter->Contour( par1, par2, graph, cl);
370 graph->SetFillColor( TColor::GetColor( fContourColor->GetColor() ) );
371 graph->GetXaxis()->SetTitle( fFitter->GetParName(par1) );
372 graph->GetYaxis()->SetTitle( fFitter->GetParName(par2) );
373 graph->Draw( options.c_str() );
374 gPad->Update();
375}
376
377////////////////////////////////////////////////////////////////////////////////
378/// Generates all necessary data for the Scan method from its
379/// tab. Then it call Virtual Fitter to perform it.
380
382{
383 static TGraph * graph = 0;
384 if ( graph )
385 delete graph;
386 graph = new TGraph( static_cast<int>(fScanPoints->GetNumber()) );
388 fFitter->Scan( par, graph,
390 fScanMax->GetNumber() );
391 graph->SetLineColor(kBlue);
392 graph->SetLineWidth(2);
393 graph->GetXaxis()->SetTitle(fFitter->GetParName(par) );
394 graph->GetYaxis()->SetTitle("FCN" );
395 graph->Draw("APL");
396 gPad->Update();
397}
398
399////////////////////////////////////////////////////////////////////////////////
400/// Generates all necessary data for the Scan method from its
401/// tab. Then it call Virtual Fitter to perform it.
402
404{
405 const ROOT::Fit::FitResult& result = fFitter->GetFitResult();
407 const ROOT::Fit::BinData* data = dynamic_cast<const ROOT::Fit::BinData*>(&(fFitter->GetFitData()));
408 if ( !data )
409 {
410 Error("DrawConfidenceLevels","Unbinned data set cannot draw confidence levels.");
411 return;
412 }
413
414 if ( !function )
415 {
416 Error("DrawConfidenceLevels","Fit Function does not exist!");
417 return;
418 }
419
420 std::vector<Double_t> ci(data->Size());
421 result.GetConfidenceIntervals(*data, &ci[0], fConfLevel->GetNumber());
422
423 if ( data->NDim() == 1 )
424 {
425 TGraphErrors* g = new TGraphErrors(ci.size());
426 for (unsigned int i = 0; i < ci.size(); ++i)
427 {
428 const Double_t *x = data->Coords(i);
429 const Double_t y = (*function)(x);
430 g->SetPoint(i, *x, y);
431 g->SetPointError(i, 0, ci[i]);
432 }
433 std::ostringstream os;
434 os << "Confidence Intervals with " << fConfLevel->GetNumber()
435 << " conf. band.";
436 g->SetTitle(os.str().c_str());
437 g->SetLineColor( TColor::GetColor( fConfColor->GetColor() ));
438 g->SetFillColor( TColor::GetColor( fConfColor->GetColor() ));
439 g->SetFillStyle(3001);
440 g->Draw("C3same");
441 } else if ( data->NDim() == 2 )
442 {
443 TGraph2DErrors* g = new TGraph2DErrors(ci.size());
444 for (unsigned int i = 0; i < ci.size(); ++i)
445 {
446 const Double_t *x = data->Coords(i);
447 const Double_t y = (*function)(x);
448 g->SetPoint(i, x[0], x[1], y);
449 g->SetPointError(i, 0, 0, ci[i]);
450 }
451 std::ostringstream os;
452 os << "Confidence Intervals with " << fConfLevel->GetNumber()
453 << " conf. band.";
454 g->SetTitle(os.str().c_str());
455 g->SetLineColor( TColor::GetColor( fConfColor->GetColor() ));
456 g->SetFillColor( TColor::GetColor( fConfColor->GetColor() ));
457 g->SetFillStyle(3001);
458 g->Draw("C3same");
459 }
460 gPad->Update();
461}
462
463////////////////////////////////////////////////////////////////////////////////
464/// Cleanup dialog.
465
467{
468 Cleanup();
469}
#define g(i)
Definition: RSha256.hxx:105
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
double Double_t
Definition: RtypesCore.h:55
@ kBlue
Definition: Rtypes.h:64
@ kYellow
Definition: Rtypes.h:64
@ kAGD_CONTCOLOR
@ kAGD_PARCOUNTER
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
@ kButtonDown
Definition: TGButton.h:54
#define gClient
Definition: TGClient.h:166
@ kMWMDecorResizeH
Definition: TGFrame.h:96
@ kMWMFuncAll
Definition: TGFrame.h:80
@ kMWMFuncResize
Definition: TGFrame.h:81
@ kMWMDecorMaximize
Definition: TGFrame.h:100
@ kMWMDecorMinimize
Definition: TGFrame.h:99
@ kMWMDecorMenu
Definition: TGFrame.h:98
@ kMWMDecorAll
Definition: TGFrame.h:94
@ kMWMFuncMaximize
Definition: TGFrame.h:84
@ kMWMInputModeless
Definition: TGFrame.h:88
@ kMWMFuncMinimize
Definition: TGFrame.h:83
@ kDeepCleanup
Definition: TGFrame.h:51
@ kVerticalFrame
Definition: TGFrame.h:59
@ kLHintsRight
Definition: TGLayout.h:33
@ kLHintsExpandY
Definition: TGLayout.h:38
@ kLHintsLeft
Definition: TGLayout.h:31
@ kLHintsCenterY
Definition: TGLayout.h:35
@ kLHintsNormal
Definition: TGLayout.h:39
@ kLHintsBottom
Definition: TGLayout.h:36
@ kLHintsTop
Definition: TGLayout.h:34
@ kLHintsExpandX
Definition: TGLayout.h:37
#define gPad
Definition: TVirtualPad.h:286
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
Definition: BinData.h:53
unsigned int Size() const
return number of fit points
Definition: FitData.h:303
unsigned int NDim() const
return coordinate data dimension
Definition: FitData.h:311
const double * Coords(unsigned int ipoint) const
return a pointer to the coordinates data for the given fit point
Definition: FitData.h:246
class containg the result of the fit and all the related information (fitted parameter values,...
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.
Definition: FitResult.cxx:553
const IModelFunction * FittedFunction() const
fitting quantities
Definition: FitResult.h:149
void DoDraw()
Calls the correspoding 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.
void ConnectSlots()
Connect the slots (buttons mainly + specific methods)
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.
TAdvancedGraphicsDialog(const TAdvancedGraphicsDialog &)
void DoChangedScanPar(Int_t selected)
Changes the Min and Max default values of the scan method, depending on the selected parameter.
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.
Backward compatible implementation of TVirtualFitter.
const ROOT::Fit::FitResult & GetFitResult() const
virtual Double_t GetParError(Int_t ipar) const
Parameter error.
virtual Int_t GetNumberTotalParameters() const
Number of total parameters.
virtual Double_t GetParameter(Int_t ipar) const
Parameter value.
bool Contour(unsigned int ipar, unsigned int jpar, TGraph *gr, double confLevel=0.683)
Create a 2D contour around the minimum for the parameter ipar and jpar if a minimum does not exist or...
virtual const char * GetParName(Int_t ipar) const
Return name of parameter ipar.
const ROOT::Fit::FitData & GetFitData() const
bool Scan(unsigned int ipar, TGraph *gr, double xmin=0, double xmax=0)
Scan parameter ipar between value of xmin and xmax A graph must be given which will be on return fill...
static ULong_t Number2Pixel(Int_t ci)
Static method that given a color index number, returns the corresponding pixel value.
Definition: TColor.cxx:2003
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:1764
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:395
virtual EButtonState GetState() const
Definition: TGButton.h:112
Pixel_t GetColor() const
virtual Int_t GetSelected() const
Definition: TGComboBox.h:134
virtual void AddEntry(TGString *s, Int_t id)
Definition: TGComboBox.h:106
virtual TGListBox * GetListBox() const
Definition: TGComboBox.h:130
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...
Definition: TGComboBox.cxx:450
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:371
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition: TGFrame.cxx:949
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1054
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1146
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:373
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:237
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:238
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
virtual void MapWindow()
Definition: TGFrame.h:251
UInt_t GetWidth() const
Definition: TGFrame.h:271
virtual void Resize(UInt_t w, UInt_t h)
Resize the listbox widget.
Definition: TGListBox.cxx:1419
void SetWMSize(UInt_t w, UInt_t h)
Give the window manager a window size hint.
Definition: TGFrame.cxx:1849
void SetMWMHints(UInt_t value, UInt_t funcs, UInt_t input)
Set decoration style for MWM-compatible wm (mwm, ncdwm, fvwm?).
Definition: TGFrame.cxx:1824
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:1862
void SetWindowName(const char *name=0)
Set window name. This is typically done via the window manager.
Definition: TGFrame.cxx:1746
virtual void SetNumber(Double_t val)
TGNumberEntryField * GetNumberEntry() const
virtual Double_t GetNumber() const
Definition: TGTab.h:62
Int_t GetCurrent() const
Definition: TGTab.h:105
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition: TGTab.cxx:341
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
virtual void CenterOnParent(Bool_t croot=kTRUE, EPlacement pos=kCenter)
Position transient frame centered relative to the parent frame.
Definition: TGFrame.cxx:1913
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:84
Graph 2D class with errors.
A TGraphErrors is a TGraph with error bars.
Definition: TGraphErrors.h:26
A Graph is a graphics object made of two arrays X and Y with npoints each.
Definition: TGraph.h:41
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
void MakeZombie()
Definition: TObject.h:49
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:867
Abstract Base Class for Fitting.
int main(int argc, char **argv)
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
Definition: RExports.h:151
Short_t Max(Short_t a, Short_t b)
Definition: TMathBase.h:212
Definition: graph.py:1