Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
fit2d.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_fit
3/// \notebook -js
4/// Example illustrating how to fit a 2-d histogram of type y=f(x)
5///
6/// \macro_image
7/// \macro_output
8/// \macro_code
9///
10/// \author Rene Brun
11
12#include <TCanvas.h>
13#include <TCutG.h>
14#include <TH2F.h>
15#include <TProfile.h>
16#include <TRandom.h>
17
18void fit2d()
19{
20 // generate a 2-d histogram using a TCutG
21 const int n = 6;
22 float x[n] = {0.092,0.83,0.94,0.81,0.12,0.1};
23 float y[n] = {0.71,9.4,9,8,0.3,0.71};
24 TCutG *cut = new TCutG("cut",n,x,y);
25 TH2F *h2 = new TH2F("h2","h2",40,0,1,40,0,10);
26 float u,v;
27 for (int i=0;i<100000;i++) {
28 u = gRandom->Rndm();
29 v = 10*gRandom->Rndm();
30 if (cut->IsInside(u,v)) h2->Fill(u,v);
31 }
32 TCanvas *c1 = new TCanvas("c1","show profile",600,900);
33 c1->Divide(1,2);
34 c1->cd(1);
35 h2->Draw();
36 c1->cd(2);
37
38 //use a TProfile to convert the 2-d to 1-d problem
39 TProfile *prof = h2->ProfileX();
40 prof->Fit("pol1");
41}
42
R__EXTERN TRandom * gRandom
Definition TRandom.h:62
The Canvas class.
Definition TCanvas.h:23
Graphical cut class.
Definition TCutG.h:20
virtual Int_t IsInside(Double_t x, Double_t y) const
Return 1 if the point (x,y) is inside the polygon defined by the graph vertices 0 otherwise.
Definition TGraph.cxx:1819
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
Fit histogram with function fname.
Definition TH1.cxx:3894
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:295
Profile Histogram.
Definition TProfile.h:32
Double_t Rndm() override
Machine independent random number generator.
Definition TRandom.cxx:559
Double_t y[n]
Definition legend1.C:17
return c1
Definition legend1.C:41
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16