29x = np.array( [ 1.913521, 1.953769, 2.347435, 2.883654, 3.493567, 4.047560,
30 4.337210, 4.364347, 4.563004, 5.054247, 5.194183, 5.380521, 5.303213,
31 5.384578, 5.563983, 5.728500, 5.685752, 5.080029, 4.251809, 3.372246,
32 2.207432, 1.227541, 0.8597788, 0.8220503, 0.8046592, 0.7684097, 0.7469761,
33 0.8019787, 0.8362375, 0.8744895, 0.9143721, 0.9462768, 0.9285364,
34 0.8954604, 0.8410891, 0.7853871, 0.7100883, 0.6938808, 0.7363682,
35 0.7032954, 0.6029015, 0.5600163, 0.7477068, 1.188785, 1.938228, 2.602717,
36 3.472962, 4.465014, 5.177035, ], dtype=np.float32,)
40h = ROOT.TH1F(
"h",
"Example of several fits in subranges", n_x, 85, 134)
43for i, x_i
in enumerate(x):
44 h.SetBinContent(i + 1, x[i])
50g1 = ROOT.TF1(
"g1",
"gaus", 85, 95)
51g2 = ROOT.TF1(
"g2",
"gaus", 98, 108)
52g3 = ROOT.TF1(
"g3",
"gaus", 110, 121)
55total = ROOT.TF1(
"total",
"gaus(0)+gaus(3)+gaus(6)", 85, 125)
59c = ROOT.TCanvas(
"multifit",
"multifit", 800, 400)
70h.Fit(g3,
"+",
"", 110, 121);
73g1.GetParameters(par[:3])
74g2.GetParameters(par[3:6])
75g3.GetParameters(par[6:])
80total.SetParameters(par)
86c.SaveAs(
"multifit.png")