《粒子物理与核物理实验中的数据分析.ppt》由会员分享,可在线阅读,更多相关《粒子物理与核物理实验中的数据分析.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、粒子物理与核物理实验中的数据分析,杨振伟清华大学第五讲:ROOT在数据分析中的应用(3),2,上讲摘要,ROOT的TTree类 TTree *tree = new TTree(“tree”,”mytree”); tree-Branch(“br1”,3,本讲要点,直方图的运算 Add,Divide,.ROOT中直方图拟合 h1-Fit();ROOT小结,一维直方图之间的操作(1),相加,rootTH1F *h3=new TH1F(*h1);rooth3-Add(h1,h2,a,b);,常用于相同实验的数据叠加,增加统计量。a*h1+b*h2, 一般a=b=1,相减,rootTH1F *h3=ne
2、w TH1F(*h1);rooth3-Sumw2();rooth3-Add(h1,h2,a,-b);,常用于从实验测量的分布中,扣除本底得到纯信号的分布。a*h1-b*h2, 一般a=-b=1,图形归一化,rootFloat_t norm=1000; rooth1-Scale(norm/h1-Integral(); rooth2-Scale(norm/h2-Integral(); rooth1-Draw(); h2-Draw(“same”) ;,常用于比较两种分布,找出区别。 Scale后BinContent之和为norm,5,一维直方图之间的运算(2),相除,rootTH1F *h3=new
3、 TH1F(*h1);rooth3-Sumw2();rooth3-Divide(h1,h2,a,b);rooth3-Divide(h1,h2,a,b,“B”);,常用于效率的计算。,相乘,rootTH1F *h3=new TH1F(*h1);rooth3-Sumw2();rooth3-Multiply(h1,h2,a,b);,常用于对分布进行诸如效率等的修正。,6,一维直方图之间运算的误差,虽然ROOT都提供了较完善的一维直方图运算功能,但对最终结果的误差一定要仔细检查。很多情况下,用户需要从图中读出各频数数值与误差值,并确认运算无误。,7,拟合直方图(1),将鼠标放到直方图上,右键,出现直方
4、图操作选项,选择FitPanel,可以在FitPanel中选择拟合的各个选项,比如用什么函数拟合,拟合的区间,等等。,8,用默认的高斯拟合,并在Options菜单中选上Fit Parameters选项,可以看到拟合的结果。,拟合直方图(2),并不推荐这种拟合方式:1)不适合自定义函数拟合2)不适合批处理,9,hpx-Fit(“gaus”);hpx-Fit(“gaus”,“”,“”,-3,3);,拟合直方图(3)/home/yangzw/workdir/examples/Lec5/ex51.C,自定义拟合函数TF1 *fcn = new TF1(fcn,gaus,-3,3);hpx-Fit(fc
5、n,”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(),用自定义的函数拟合直方图,10,共振峰(Breit-Wigner分布)加上二次函数本底的拟合(一共6个参数)这是$ROOTSYS/fit/FittingDemo.C的简化先自定义本底函数(background)和共振峰
6、函数(lorentianPeak),再定义这两个函数的和为拟合函数:fitFunction利用fitFunction定义TF1,拟合直方图(3)/home/yangzw/workdir/examples/Lec5/ex52.C,这里指定函数区间为0-3,6个参数,运行:root -l root 0 .L ex52.C,注意TLegend的使用,TF1 *fitFcn = new TF1(fitFcn,fitFunction,0,3,6);,fitFcn-SetParameter(4,0.2); 为某个参数设初值(width)fitFcn-SetParameter(5,1); (peak ),1
7、1,ROOT小结,设定ROOT环境变量: ROOTSYS,PATH,LD_LIBRARY_PATH绘制各种直方图,散点图,数学函数 TH1F,TH2F,TF1,.随机数产生子,各种分布 gRandom-Rndm,Uniform,Gaus,Exp,.创建、保存root文件 TFile *f = new TFile(“myfile.root”,”recreate”); f-Write();TTree, TChain的使用 TTree *mytree = new TTree(“mytree”,”my tree”); mytree-Branch(.); 用TChain分析相同格式的数据文件。直方图的运
8、算,拟合 h1-Fit(“function_name”);,12,ROOT的重要功能或用法(1),ROOT手册13、14章分别是数学库和线性代数,提供很多数学功能,比如Lorentz矢量的操作,特殊函数,矩阵求解运算,求极值等等ROOT手册第4章介绍Graphs,适用于不等距数据的图形分析(当然也可以构造不等bin的直方图)RooFit,最大似然法拟合等神经网络分析方法,TMVA(多元数据分析)ROOT中使用PYTHIA、Geant3/4图形接口.,13,ROOT的重要功能或用法(2),MakeClass,MakeSelector的运用,比如当前/projects/yangzw/example
9、s/Lec5/目录下有文件ex51.root,其中含有复杂的tree。可以用MakeClass或MakeSelector自动产生分析文件和头文件:,root 0 TFile f(ex51.root);root 1 .lsTFile* ex51.root TFile* ex51.root KEY: TTree t4;1 Reconst eventsroot 2 t4-MakeClass();或: t4-MakeClass(“MyClass”);,MakeSelector的用法类似:root 0 TFile f(ex51.root);root 1 t4-MakeSelector();或 t4-Ma
10、keSelector(“MySelector”);,14,ROOT的重要功能或用法(3),独立编译程序进行ROOT分析 尽管在ROOT环境中运行ROOT脚本很方便,但如果分析处理的东西比较复杂,需要长时间运行,独立编译运行比在ROOT环境中运行要快很多,大约有数量级的差别。/home/yangzw/workdir/examples/Lec5/standalone目录是独立编译运行ROOT的例子。这实际上是SDA习题3.7c的一部分。进入standalone目录后,gmake进行编译就可以运行。,15,习题,练习需要的root文件都存放在下面目录里:/home/yangzw/workdir/ex
11、amples/Lec5/exercise/1. 查看该double_gaus.root文件。其中存储了名为tree1的TTree。画出tree1的pz分布,并对该分布进行拟合,在图上显示出拟合的结果,并在屏幕上打印出拟合结果。 (提示:该分布为两个高斯的叠加,可以自定义一个包含6个参数的TF1进行拟合,分布比较复杂的时候,需要先估计参数的大概值,为拟合函数预设估计值。) 思考:假设函数fun=p0*exp(-(x-p1)2/2/p22) +p3*exp(-(x-p4)2/2/p52) 由拟合得到的结果,比较两个高斯的份额2. hist.root中有两个直方图,对这两个直方图进行加减乘除运算。除法时,查看用”B”选项和不用“B”选项时误差的不同。 (提示:h1的事例包含于h2的事例,计算误差需要用”B”选项)3. 利用1.root和2.root,将其中的px分别画到两个直方图h1,h2中。对h1,h2进行加减乘除运算,查看误差情况。比较调用与不调用Sumw2()的差别。,16,参考资料,ROOT手册第5章:Fitting Histogram$ROOTSYS/tutorials/fit目录中的例子http:/root.cern.ch/tutorials.html 中与Fit有关的例子http:/root.cern.ch/howto.html 中与Fit有关的例子,