root在数据分析中的应用(3)

上传人:n**** 文档编号:117480824 上传时间:2019-12-05 格式:PDF 页数:20 大小:312.65KB
返回 下载 相关 举报
root在数据分析中的应用(3)_第1页
第1页 / 共20页
root在数据分析中的应用(3)_第2页
第2页 / 共20页
root在数据分析中的应用(3)_第3页
第3页 / 共20页
root在数据分析中的应用(3)_第4页
第4页 / 共20页
root在数据分析中的应用(3)_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《root在数据分析中的应用(3)》由会员分享,可在线阅读,更多相关《root在数据分析中的应用(3)(20页珍藏版)》请在金锄头文库上搜索。

1、粒子物理与核物理实验中的粒子物理与核物理实验中的 数据分析数据分析 杨振伟 清华大学 第五讲:ROOT在数据分 析中的应用(3) 2 上讲摘要上讲摘要 ?ROOT的TTreeTTree类 TTree *tree = new TTree(“tree”,”mytree”); tree-Branch(“br1”, ?填充tree,将tree写入root文件 tree-Fill(); /填充 TFile *f = new TFile(“f1.root”,”recreate”); tree-Write(); /写入root文件 ?查看root文件中tree的信息 TFile *f = new TFile

2、(“f1.root”); f-ls(); TTree *tree = (TTree*)f-Get(“tree”); tree-Scan(),tree-Show(i),tree-Print() ?处理tree格式相同的多个文件root文件: TChainTChain TChain *chain = new TChain(); chain-Add(“f1.root/treename”); 3 本讲要点本讲要点 ?直方图的运算 加减乘除: Add,Divide,. 归一化:Scale ?ROOT中直方图拟合 h1-Fit(); ?含参数的ROOT脚本 ?ROOT小结 4 直方图归一化(1) “归一化

3、“后,不仅BinContent变化了,BinError也变化了 直方图的归一化 void TH1:Scale(Double_t c1, Option_t *option) http:/root.cern.ch/root/html522/TH1.html#TH1:Scale 默认c1=1,把直方图每个区间的值(BinContent)乘以c1 假设sum=h1-Integral() h1-Scale(c1)之后, h1-Integral() = c1*sum 不加参数时,h1-Scale() 没有变化(默认c1=1) 5 直方图的归一化(2) root0TH1F *h1=new TH1F(“h1“

4、,“,100,-5,5); root1TH1F *h2=new TH1F(“h2“,“,100,-5,5); root2h1-FillRandom(“gaus“,5000); root3h2-FillRandom(“gaus“,10000); root4float norm=1000; root5h1-Scale(norm/h1-Integral(); root6h2-Scale(norm/h2-Integral(); root7h1-Draw(“e“); root8h2-Draw(“esames”) ; “归一化“之后,h1或h2-Integral()=norm 在同一张图上可以看出比较2个

5、分布的差别。 归一化常用于比较两种分布,找出区别。归一化常用于比较两种分布,找出区别。 所以,将所以,将2个直方图归一化到积分相同进行比较才直观。个直方图归一化到积分相同进行比较才直观。 注意Draw()函数的选项 6 直方图四则运算(1) 重要提示: 1. 对直方图进行四则运算操作,一定要想明白运算的意义 比如两个直方图的相加与两个随机变量的卷积有什么区别 2. 两个直方图的四则运算,区间大小和区间数相同才有意义 四则运算“加减乘除“分别对应 统计量(BinContent)的相加、相减、相乘、相除 3. 如果需要正确处理统计误差,统计误差,需要在对ROOT脚本中 调用TH1的某个静态成员函数

6、,即 TH1:SetDefaultSumw2(); void SetDefaultSumw2(Bool_t sumw2 = kTRUE) /static function. When this static function is called with sumw2=kTRUE, all new histograms will automatically activate the storage of the sum of squares of errors, ie TH1:Sumw2 is automatically called. 7 直方图的四则运算(2) 22 1212 ()nn=+=

7、+误差:假设h1和h2独立 root1TH1:SetDefaultSumw2(); root1TH1F *h3=new TH1F(*h1); root2h3-Add(h1,h2,a,b); 结果:h3的BinContent被a*h1+b*h2替换,一般a=b=1 相加:相加:常用于相同实验的数据叠加,增加统计量。常用于相同实验的数据叠加,增加统计量。 root1TH1F *h3=new TH1F(*h1); root2h3-Sumw2();/也可在定义h3前TH1:SetDefaultSumw2(); root3h3-Add(h1,h2,a,-b); 结果:h3的BinContent被a*h1

8、+b*h2替换,一般a=-b=1 相减:相减:常用于从实验测量的分布中扣除本底。常用于从实验测量的分布中扣除本底。 8 直方图的四则运算(3) 相除 root1TH1F *h3=new TH1F(*h1); root2h3-Sumw2(); root3h3-Divide(h1,h2,a,b); root4h3-Divide(h1,h2,a,b); 常用于效率的计算。常用于效率的计算。 常用于效率的计算。常用于效率的计算。 相乘 常用于对分布进行诸如效率等的修正。常用于对分布进行诸如效率等的修正。 rootTH1F *h3=new TH1F(*h1); rooth3-Sumw2(); rooth

9、3-Multiply(h1,h2,a,b); 常用于对分布进行诸如效率等的修正。常用于对分布进行诸如效率等的修正。 12 12 11 n n nn =+ 1 212 11 (h1h2) n nnn =+和独立 思考:如果h1和h2不独立,怎么办?比如h1包含于h2 11 22 2 (1) nn nn n = 二 项 分 布 误 差 root4h3-Divide(h1,h2,a,b,“B“); 9 直方图四则运算的误差处理 ?虽然虽然ROOT都提供了较完善的一维直方图都提供了较完善的一维直方图 运算功能,但对最终结果的误差一定要仔细检运算功能,但对最终结果的误差一定要仔细检 查。很多情况下,用户

10、需要从图中读出各频数查。很多情况下,用户需要从图中读出各频数 数值与误差值,并确认运算无误数值与误差值,并确认运算无误。 包括归一化和加减乘除在内,包括归一化和加减乘除在内, 如果希望使用直方图的误差,都需要调用如果希望使用直方图的误差,都需要调用 TH1:SetDefaultSumw2(); 或者,对每个直方图或者,对每个直方图(如如hist)调用调用 hist-Sumw2(); ?虽然虽然ROOT都提供了较完善的一维直方图都提供了较完善的一维直方图 运算功能,但对最终结果的误差一定要仔细检运算功能,但对最终结果的误差一定要仔细检 查。很多情况下,用户需要从图中读出各频数查。很多情况下,用户

11、需要从图中读出各频数 数值与误差值,并确认运算无误数值与误差值,并确认运算无误。 包括包括归一化归一化和和加减乘除加减乘除在内,在内, 如果希望使用直方图的误差,都需要调用如果希望使用直方图的误差,都需要调用 TH1:SetDefaultSumw2(); 或者,对每个直方图或者,对每个直方图(如如hist)调用调用 hist-Sumw2(); 10 拟合直方图(1) 将鼠标放到直方图上,右键,出现直方图操将鼠标放到直方图上,右键,出现直方图操 作选项,选择作选项,选择FitPanel,可以在,可以在FitPanel中选中选 择拟合的各个选项,比如用什么函数拟合,择拟合的各个选项,比如用什么函数

12、拟合, 拟合的区间,等等。拟合的区间,等等。 将鼠标放到直方图上,右键,出现直方图操将鼠标放到直方图上,右键,出现直方图操 作选项,选择作选项,选择FitPanel,可以在,可以在FitPanel中选中选 择拟合的各个选项,比如用什么择拟合的各个选项,比如用什么函数函数拟合,拟合, 拟合的拟合的区间区间,等等。,等等。 11 用默认的高斯拟合,并在用默认的高斯拟合,并在Options菜单中选上菜单中选上 Fit Parameters选项,可以看到拟合的结果。选项,可以看到拟合的结果。 用默认的高斯拟合,并在用默认的高斯拟合,并在Options菜单中选上菜单中选上 Fit Parameters选

13、项,可以看到拟合的结果。选项,可以看到拟合的结果。 拟合直方图(2) 并不推荐这种拟并不推荐这种拟 合方式合方式: 1)不适合自定义不适合自定义 函数拟合函数拟合 2)不适合批处理不适合批处理 拟合结果给出了高拟合结果给出了高 斯分布的斯分布的3个参数个参数: 常系数、均值、均常系数、均值、均 方差,以及拟合的方差,以及拟合的 好坏好坏chi2/ndf 拟合结果给出了高拟合结果给出了高 斯分布的斯分布的3个参数个参数: 常系数、均值、均常系数、均值、均 方差,以及拟合的方差,以及拟合的 好坏好坏chi2/ndf 12 下载本讲的例子 cd cp -r yangzw/examples/Lec5

14、. 或者下载到自己本地机器上: scp -r username166.111.32.64:/home/yangzw/ examples/Lec5 . wget Ana/examples/Lec5.tgz tar -zxvf Lec5.tgz 13 hpx-Fit(“gaus“); hpx-Fit(“gaus“,“,“,-3,3); hpx-Fit(“gaus“); hpx-Fit(“gaus“,“,“,-3,3); 自定义拟合函数自定义拟合函数 TF1 *fcn = new TF1(“fcn“,“gaus“,-3,3); hpx-Fit(fcn,”R”); 拟合直方图(3) /home/yan

15、gzw/examples/Lec5/ex51.C 自定义拟合函数自定义拟合函数 TF1 *fcn = new TF1(“fcn“,“gaus“,-3,3); hpx-Fit(fcn,”R”); gStyle-SetOptFit();/设置拟合选项 拟合前往往需要给出合理的参数初值 fcn-SetParameters(500,mean,sigma); 拟合后取出拟合得到的参数 Double_t mypar3; fcn-GetParameters( 运行:root -l root 0 .L ex51.C root 1 ex51r() root 2 ex51r2() 用自定义的函数拟合直方图 14

16、共振峰共振峰(Breit-Wigner分布分布)加上二次函数加上二次函数 本底的拟合本底的拟合(一共一共6个参数个参数) 这是下面例子的简化版:这是下面例子的简化版: $ROOTSYS/tutorials/fit/FittingDemo.C 先自定义本底函数先自定义本底函数(background)和共振和共振 峰函数峰函数(lorentianPeak),再定义这两个函,再定义这两个函 数的和为拟合函数数的和为拟合函数:fitFunction 利用利用fitFunction定义定义TF1函数函数 共振峰共振峰(Breit-Wigner分布分布)加上二次函数加上二次函数 本底的拟合本底的拟合(一共一共6个参数个参数) 这是下面例子的简化版:这是下面例子的简化版: $ROOTSYS/tutorials/fit/FittingDemo.C 先自定义本底函数先自定义本底函数(background)和共振和共振 峰函数峰函

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号