欢迎光临散文网 会员登陆 & 注册

gaus拟合(Roofit)

2023-06-26 20:59 作者:黄盖波汾永远的神  | 我要投稿

using namespace RooFit;          使用roofit

void roofitgaus()                 主函数,脚本名也是roofitguas.C

{

RooRealVar x("x", "x", -10, 10);               定义变量x, parameters:name,title,minvalue,maxvalue
RooRealVar mean("mean", "mean", 1, -10, 10);    定义变量mean,同上par3是value

RooRealVar sigma("sigma", "sigma", 1, 0.1, 10);  同上

RooGaussian f("f", "f", x, mean, sigma);    RooGaussian,rootfit已经有定义的函数。3个参数用变量代替。


RooPlot* p1 = x.frame(Title("p1"));       
RooPlot* p2 = x.frame(Title("p2"));        定义2个框架

RooDataSet* data = f.generate(x, 10000);    用上面定义的gauss生成数据


f.plotOn(p1);             将f图像导入p1


data->plotOn(p2);          将生成的数据导入p2
f.plotOn(p2);
f.fitTo(*data);         将f图像也导入p2,原始图与数据拟合


mean.Print();
sigma.Print();            打印变量



TCanvas* c = new TCanvas("c", "c");    生成画布

c->Divide(1,2);              将画布分为2个
c->cd(1);
p1->Draw();                      
c->cd(2);
p2->Draw();           分别进入2个画布并输出图像

}

gaus拟合(Roofit)的评论 (共 条)

分享到微博请遵守国家法律