Logo ROOT   6.12/07
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 
37  TGTransientFrame(p, main, 10, 10, kVerticalFrame),
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();
79  width = TMath::Max(width, fClose->GetDefaultWidth());
80  frame->Resize((width + 20) * 2, height);
81 
82  fMainFrame->AddFrame(frame, new TGLayoutHints(kLHintsBottom | kLHintsRight, 0, 0, 5, 0));
83 
85 
86  ConnectSlots();
87 
88  SetWindowName("Advanced Drawing Tools");
89 
90  // map all widgets and calculate size of dialog
91  MapSubwindows();
92 
93  width = GetDefaultWidth();
94  height = GetDefaultHeight();
95 
96  Resize(width, height);
97  MapWindow();
98 
99  // position relative to the parent's window
100  CenterOnParent();
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 
142  fContourPar1 = new TGComboBox(frame, kAGD_CONTPAR1);
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 
156  fContourPar2 = new TGComboBox(frame, kAGD_CONTPAR2);
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);
228  TGListBox *lb = fScanPar->GetListBox();
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);
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,
389  fScanMin->GetNumber(),
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();
406  const ROOT::Fit::FitResult::IModelFunction* function = result.FittedFunction();
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());
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());
457  g->SetFillStyle(3001);
458  g->Draw("C3same");
459  }
460  gPad->Update();
461 }
462 
463 ////////////////////////////////////////////////////////////////////////////////
464 /// Cleanup dialog.
465 
467 {
468  Cleanup();
469 }
void DoChangedScanPar(Int_t selected)
Changes the Min and Max default values of the scan method, depending on the selected parameter...
void DrawConfidenceLevels()
Generates all necessary data for the Scan method from its tab.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition: TAttLine.h:43
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
virtual void Resize(UInt_t w, UInt_t h)
Resize the listbox widget.
Definition: TGListBox.cxx:1419
Int_t GetCurrent() const
Definition: TGTab.h:105
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...
Definition: TGTab.h:62
void ConnectSlots()
Connect the slots (buttons mainly + specific methods)
void GetConfidenceIntervals(unsigned int n, unsigned int stride1, unsigned int stride2, const double *x, double *ci, double cl=0.95, bool norm=true) const
get confidence intervals for an array of n points x.
Definition: FitResult.cxx:560
virtual void CenterOnParent(Bool_t croot=kTRUE, EPlacement pos=kCenter)
Position transient frame centered relative to the parent frame.
Definition: TGFrame.cxx:1913
void SetWindowName(const char *name=0)
Set window name. This is typically done via the window manager.
Definition: TGFrame.cxx:1746
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
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...
~TAdvancedGraphicsDialog()
Cleanup dialog.
virtual void SetNumber(Double_t val)
TAxis * GetYaxis() const
Get y axis of the graph.
Definition: TGraph.cxx:1602
virtual void Draw(Option_t *option="P0")
Specific drawing options can be used to paint a TGraph2D:
Definition: TGraph2D.cxx:705
#define gClient
Definition: TGClient.h:166
Backward compatible implementation of TVirtualFitter.
int Int_t
Definition: RtypesCore.h:41
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:373
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
Definition: TAttFill.h:39
virtual void SetTitle(const char *title="")
Set graph title.
Definition: TGraph.cxx:2208
Definition: Rtypes.h:59
const IModelFunction * FittedFunction() const
fitting quantities
Definition: FitResult.h:149
UInt_t GetWidth() const
Definition: TGFrame.h:271
void CreateContourFrame()
Create the frame that contains all the necessary information for the Contour method.
virtual void Draw(Option_t *chopt="")
Draw this graph with its current attributes.
Definition: TGraph.cxx:745
const double * Coords(unsigned int ipoint) const
return a pointer to the coordinates data for the given fit point
Definition: FitData.h:246
virtual Double_t GetParError(Int_t ipar) const
Parameter error.
Double_t x[n]
Definition: legend1.C:17
virtual void SetTitle(const char *title="")
Sets the 2D graph title.
Definition: TGraph2D.cxx:1743
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
virtual void SetPointError(Int_t i, Double_t ex, Double_t ey, Double_t ez)
Set ex, ey and ez values for point number i.
void CreateScanFrame()
Create the frame that contains all the necessary information for the Scan method. ...
void DoDraw()
Calls the correspoding method, depending on the selected tab.
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:443
virtual Int_t GetNumberTotalParameters() const
Number of total parameters.
int main(int argc, char **argv)
const ROOT::Fit::FitData & GetFitData() const
virtual EButtonState GetState() const
Definition: TGButton.h:112
unsigned int Size() const
return number of fit points
Definition: FitData.h:303
const ROOT::Fit::FitResult & GetFitResult() const
TAdvancedGraphicsDialog(const TAdvancedGraphicsDialog &)
virtual TGListBox * GetListBox() const
Definition: TGComboBox.h:130
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition: TAttLine.h:40
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
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:371
Pixel_t GetColor() const
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition: TAttFill.h:37
void CreateConfFrame()
Create the frame that contains all the necessary information for the Confidence Level method...
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:84
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition: TGTab.cxx:341
unsigned int UInt_t
Definition: RtypesCore.h:42
void DrawContour()
Generates all necessary data for the Contour method from its tab.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:237
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:1751
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
Definition: BinData.h:53
Definition: graph.py:1
TAxis * GetXaxis() const
Get x axis of the graph.
Definition: TGraph.cxx:1592
const Bool_t kFALSE
Definition: RtypesCore.h:88
static ULong_t Number2Pixel(Int_t ci)
Static method that given a color index number, returns the corresponding pixel value.
Definition: TColor.cxx:1990
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:238
class containg the result of the fit and all the related information (fitted parameter values...
Definition: FitResult.h:48
virtual void SetPoint(Int_t i, Double_t x, Double_t y, Double_t z)
Set x, y and z values for point number i.
double Double_t
Definition: RtypesCore.h:55
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1054
virtual void AddEntry(TGString *s, Int_t id)
Definition: TGComboBox.h:106
virtual Double_t GetNumber() const
Double_t y[n]
Definition: legend1.C:17
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1146
Abstract Base Class for Fitting.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
Definition: TGraph.cxx:2184
virtual Int_t GetSelected() const
Definition: TGComboBox.h:134
TGNumberEntryField * GetNumberEntry() const
virtual void MapWindow()
Definition: TGFrame.h:251
Short_t Max(Short_t a, Short_t b)
Definition: TMathBase.h:200
void MakeZombie()
Definition: TObject.h:49
A Graph is a graphics object made of two arrays X and Y with npoints each.
Definition: TGraph.h:41
A TGraphErrors is a TGraph with error bars.
Definition: TGraphErrors.h:26
void SetWMSize(UInt_t w, UInt_t h)
Give the window manager a window size hint.
Definition: TGFrame.cxx:1849
#define gPad
Definition: TVirtualPad.h:285
virtual const char * GetParName(Int_t ipar) const
Return name of parameter ipar.
Definition: Rtypes.h:59
void DrawScan()
Generates all necessary data for the Scan method from its tab.
unsigned int NDim() const
return coordinate data dimension
Definition: FitData.h:311
virtual void SetPointError(Double_t ex, Double_t ey)
Set ex and ey values for point pointed by the mouse.
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition: TGFrame.cxx:949
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Definition: TNamed.cxx:164
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
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:395
Graph 2D class with errors.
virtual Double_t GetParameter(Int_t ipar) const
Parameter value.
static constexpr double g