7 auto fSignal = qTOF(100, 0., 0.05, 1.3, 1.);
8 auto gWalk =
new TGraphErrors;
10 for (
int ix = 0; ix < hin->GetNbinsX(); ++ix) {
11 auto amp = hin->GetXaxis()->GetBinCenter(ix + 1);
12 auto ampe = hin->GetXaxis()->GetBinWidth(ix + 1) / std::sqrt(12.);
13 auto hpy = hin->ProjectionY(
"hpy", ix + 1, ix + 1);
15 if (hpy->Integral() < 100) {
20 auto maxbin = hpy->GetMaximumBin();
21 auto maxcen = hpy->GetBinCenter(maxbin);
22 auto maxval = hpy->GetBinContent(maxbin);
23 fSignal->SetParameter(0, maxval);
24 fSignal->SetParameter(1, maxcen);
25 fSignal->SetParameter(2, 0.1);
26 fSignal->SetParameter(3, 1.3);
27 fSignal->SetParameter(4, 1.);
28 auto fitmin = fSignal->GetParameter(1) - 3. * fSignal->GetParameter(2);
29 auto fitmax = fSignal->GetParameter(1) + 3. * fSignal->GetParameter(2);
30 hpy->Fit(fSignal,
"0q",
"", fitmin, fitmax);
31 fitmin = fSignal->GetParameter(1) - 3. * fSignal->GetParameter(2);
32 fitmax = fSignal->GetParameter(1) + 3. * fSignal->GetParameter(2);
33 hpy->Fit(fSignal,
"0q",
"", fitmin, fitmax);
35 auto n = gWalk->GetN();
36 gWalk->SetPoint(n, amp, fSignal->GetParameter(1));
37 gWalk->SetPointError(n, ampe, fSignal->GetParError(1));