Hello,
The fit with range seems to be something wrong
{
gROOT->Reset();
gSystem->Load("libRooFit");
using namespace RooFit;
TFile f1("4body-rootest.100.root");
TH1* h1103 = (TH1*)gDirectory->Get("h1103");
RooRealVar dE("dE", "#DeltaE", -0.2, 0.2, "GeV");
//RooRealVar dE("dE", "#DeltaE", -0.1, 0.2, "GeV");
RooDataHist hdata("hdata", "dataset for dE", dE, h1103);
RooRealVar mean("mean", "mean of gaussian", 0.0, -0.01, 0.01);
RooRealVar sigma("sigma", "width of gaussian", 0.01, 0, 0.02);
RooGaussian gauss("gauss", "gaussian PDF", dE, mean, sigma);
RooRealVar dELine("dELine", "dE slope", -3., -0.05);
RooPolynomial bkgDeltaE("bkgDeltaE", "background Delta E", dE, RooArgList(dELine));
RooRealVar nsig("nsig", "signal fraction", 1400, 0, 100000);
RooRealVar nbkg("nbkg", "background fraction", 10000, 0, 100000);
RooAddPdf model("model", "gauss+bkgDeltaE", RooArgList(gauss, bkgDeltaE), RooArgList(nsig, nbkg));
RooFitResult* r = model.fitTo(hdata, Extended(kTRUE), Range(-0.1, 0.2), Save(kTRUE));
RooPlot* dEframe = dE.frame(Title("#DeltaE distribution"));
hdata.plotOn(dEframe);
model.plotOn(dEframe);
model.paramOn(dEframe, Format("NEU"), Layout(0.6, 0.98, 0.95));
dEframe->Draw();
c1->Print("ex1.jpg");
//c1->Print("ex2.jpg");
}
The yield of partial range fit is different from that of full range fit.
The full range fit is consistent with the result of mn_fit.
4body-rootest.100.root (5.78 KB)