23 Double_t *xvalues1 =
new Double_t[n];
24 Double_t *xvalues2 =
new Double_t[n];
25 Double_t *xvalues3 =
new Double_t[n];
26 Double_t *yvalues1 =
new Double_t[n];
27 Double_t *yvalues2 =
new Double_t[n];
28 Double_t *yvalues3 =
new Double_t[n];
29 Double_t *evalues1 =
new Double_t[n];
30 Double_t *evalues2 =
new Double_t[n];
31 Double_t *evalues3 =
new Double_t[n];
37 xvalues1[i] = r.Uniform(0.1, 5);
38 xvalues2[i] = r.Uniform(3, 8);
39 xvalues3[i] = r.Uniform(9, 15);
40 yvalues1[i] = 3 + 2*xvalues1[i] + xvalues1[i]*xvalues1[i] + r.Gaus();
41 yvalues2[i] = 3 + 2*xvalues2[i] + xvalues2[i]*xvalues2[i] + r.Gaus()*10;
45 yvalues3[i] = 3 + 2*xvalues3[i] + xvalues3[i]*xvalues3[i] + r.Gaus()*20;
49 TGraphErrors *gr1 =
new TGraphErrors(n, xvalues1, yvalues1, 0, evalues1);
50 TGraphErrors *gr2 =
new TGraphErrors(n, xvalues2, yvalues2, 0, evalues2);
51 TGraphErrors *gr3 =
new TGraphErrors(n, xvalues3, yvalues3, 0, evalues3);
52 gr1->SetLineColor(kRed);
53 gr2->SetLineColor(kBlue);
54 gr2->SetMarkerStyle(24);
55 gr2->SetMarkerSize(0.3);
56 gr3->SetLineColor(kGreen);
57 gr3->SetMarkerStyle(24);
58 gr3->SetMarkerSize(0.3);
61 TMultiGraph *mg=
new TMultiGraph(
"mg",
62 "TMultiGraph of 3 TGraphErrors");
67 TCanvas *myc =
new TCanvas(
"myc",
68 "Fitting a MultiGraph of 3 TGraphErrors");
77 TF1 *fpol = mg->GetFunction(
"pol2");
78 fpol->SetLineWidth(1);
85 Double_t *xvalues1 =
new Double_t[n];
86 Double_t *xvalues2 =
new Double_t[n];
87 Double_t *xvalues3 =
new Double_t[n];
88 Double_t *yvalues1 =
new Double_t[n];
89 Double_t *yvalues2 =
new Double_t[n];
90 Double_t *yvalues3 =
new Double_t[n];
91 Double_t *evalues1 =
new Double_t[n];
92 Double_t *evalues2 =
new Double_t[n];
93 Double_t *evalues3 =
new Double_t[n];
94 Double_t *xtotal =
new Double_t[n*3];
95 Double_t *ytotal =
new Double_t[n*3];
96 Double_t *etotal =
new Double_t[n*3];
100 for (i=0; i<n; i++) {
101 xvalues1[i] = r.Uniform(-3, -1);
102 xvalues2[i] = r.Uniform(-1, 1);
103 xvalues3[i] = r.Uniform(1, 3);
104 yvalues1[i] = TMath::Gaus(xvalues1[i], 0, 1);
105 yvalues2[i] = TMath::Gaus(xvalues2[i], 0, 1);
106 evalues1[i] = 0.00001;
107 evalues2[i] = 0.00001;
108 evalues3[i] = 0.00001;
109 yvalues3[i] = TMath::Gaus(xvalues3[i], 0, 1);
112 {xtotal[i]=xvalues1[i]; ytotal[i]=yvalues1[i]; etotal[i]=0.00001;}
113 for (i=n; i<2*n; i++)
114 {xtotal[i] = xvalues2[i-n]; ytotal[i]=yvalues2[i-n]; etotal[i]=0.00001;}
115 for (i=2*n; i<3*n; i++)
116 {xtotal[i] = xvalues3[i-2*n]; ytotal[i]=yvalues3[i-2*n]; etotal[i]=0.00001;}
119 TGraphErrors *gr1 =
new TGraphErrors(n, xvalues1, yvalues1, 0, evalues1);
120 TGraphErrors *gr2 =
new TGraphErrors(n, xvalues2, yvalues2, 0, evalues2);
121 TGraphErrors *gr3 =
new TGraphErrors(n, xvalues3, yvalues3, 0, evalues3);
122 TGraphErrors *grtotal =
new TGraphErrors(n*3, xtotal, ytotal, 0, etotal);
123 TMultiGraph *mg=
new TMultiGraph(
"mg",
"TMultiGraph of 3 TGraphErrors");
132 grtotal->Fit(
"gaus");