28 double x[n], y[n], z[n], v[n];
33 for (
int i = 0; i < n; ++i) {
34 x[i] = r.Uniform(0,10);
35 y[i] = r.Uniform(0,10);
36 z[i] = r.Uniform(0,10);
37 v[i] = sin(x[i] ) + cos(y[i]) + z[i] + r.Gaus(0,ev);
41 ROOT::Fit::BinData data(n,3);
43 for(
int i = 0; i < n; ++i) {
48 data.Add(xx, v[i], ev);
51 TF3 * f3 =
new TF3(
"f3",
"[0] * sin(x) + [1] * cos(y) + [2] * z",0,10,0,10,0,10);
52 f3->SetParameters(2,2,2);
53 ROOT::Fit::Fitter fitter;
55 ROOT::Math::WrappedMultiTF1 wf(*f3,3);
56 fitter.SetFunction(wf);
58 bool ret = fitter.Fit(data);
60 const ROOT::Fit::FitResult & res = fitter.Result();
64 f3->SetFitResult(res);
66 double prob = res.Prob();
68 Error(
"exampleFit3D",
"Bad data fit - fit p-value is %f",prob);
70 std::cout <<
"Good fit : p-value = " << prob << std::endl;
74 Error(
"exampleFit3D",
"3D fit failed");