Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
graph2derrorsfit.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_graphs
3/// \notebook
4/// Draw and fit a TGraph2DErrors
5///
6/// \macro_image
7/// \macro_code
8///
9/// \author Olivier Couet
10
11#include <TMath.h>
12#include <TGraph2DErrors.h>
13#include <TRandom.h>
14#include <TStyle.h>
15#include <TCanvas.h>
16#include <TF2.h>
17
18void graph2derrorsfit()
19{
20 TCanvas *c1 = new TCanvas("c1");
21
22 Double_t rnd, x, y, z, ex, ey, ez;
23 Double_t e = 0.3;
24 Int_t nd = 500;
25
26 TRandom r;
27 TF2 *f2 = new TF2("f2", "1000*(([0]*sin(x)/x)*([1]*sin(y)/y))+200", -6, 6, -6, 6);
28 f2->SetParameters(1, 1);
29 TGraph2DErrors *dte = new TGraph2DErrors(nd);
30
31 // Fill the 2D graph
32 Double_t zmax = 0;
33 for (Int_t i = 0; i < nd; i++) {
34 f2->GetRandom2(x, y);
35 rnd = r.Uniform(-e, e); // Generate a random number in [-e,e]
36 z = f2->Eval(x, y) * (1 + rnd);
37 if (z > zmax)
38 zmax = z;
39 dte->SetPoint(i, x, y, z);
40 ex = 0.05 * r.Rndm();
41 ey = 0.05 * r.Rndm();
42 ez = TMath::Abs(z * rnd);
43 dte->SetPointError(i, ex, ey, ez);
44 }
45
46 f2->SetParameters(0.5, 1.5);
47 dte->Fit(f2);
48 TF2 *fit2 = (TF2 *)dte->FindObject("f2");
49 fit2->SetTitle("Minuit fit result on the Graph2DErrors points");
50 fit2->SetMaximum(zmax);
52 fit2->SetLineColor(1);
53 fit2->SetLineWidth(1);
54 fit2->Draw("surf1");
55 dte->Draw("same p0");
56}
#define e(i)
Definition RSha256.hxx:103
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
R__EXTERN TStyle * gStyle
Definition TStyle.h:436
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Definition TAttLine.h:43
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition TAttLine.h:40
The Canvas class.
Definition TCanvas.h:23
virtual void SetMaximum(Double_t maximum=-1111)
Set the maximum value along Y for this function In case the function is already drawn,...
Definition TF1.cxx:3394
void SetTitle(const char *title="") override
Set function title if title has the form "fffffff;xxxx;yyyy", it is assumed that the function title i...
Definition TF1.cxx:3558
virtual void SetParameters(const Double_t *params)
Definition TF1.h:677
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Evaluate this function.
Definition TF1.cxx:1439
A 2-Dim function with parameters.
Definition TF2.h:29
virtual void GetRandom2(Double_t &xrandom, Double_t &yrandom, TRandom *rng=nullptr)
Return 2 random numbers following this function shape.
Definition TF2.cxx:547
void Draw(Option_t *option="") override
Draw this function with its current attributes.
Definition TF2.cxx:259
Graph 2D class with errors.
void SetPoint(Int_t i, Double_t x, Double_t y, Double_t z) override
Set x, y and z values for point number i.
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.
TObject * FindObject(const char *name) const override
search object named name in the list of functions
Definition TGraph2D.cxx:791
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="")
Fits this graph with function with name fname Predefined functions such as gaus, expo and poln are au...
Definition TGraph2D.cxx:815
void Draw(Option_t *option="P0") override
Specific drawing options can be used to paint a TGraph2D:
Definition TGraph2D.cxx:762
This is the base class for the ROOT Random number generators.
Definition TRandom.h:27
void SetHistTopMargin(Double_t hmax=0.05)
Definition TStyle.h:385
Double_t y[n]
Definition legend1.C:17
return c1
Definition legend1.C:41
Double_t x[n]
Definition legend1.C:17
Double_t ey[n]
Definition legend1.C:17
Double_t ex[n]
Definition legend1.C:17
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
Definition TMathBase.h:123