Click to edit Master title styl,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title styl,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,粒子物理与核物理实验中的数据分析,杨振伟,清华大学,第三讲:,ROOT,在数据分析中的应用,(1),粒子物理与核物理实验中的数据分析杨振伟,1,上讲摘要,C+,基本概念,类的定义与实现,.,Linux,下用,g+,编译,C+,程序,g+,-o hello.exe-I ./src/*,当前目录下输出 指定,include,目录 源文件,可执行文件,hello.exe,如,-I./include,用,makefile,进行,C+,编译,gmake,进行编译,gmake clean,清除编译结果,使用,ROOT,脚本,root-l hello.C,2,上讲摘要C+基本概念2,本讲要点,什么是,ROOT,?,登录,ROOT,环境和体验中心,ROOT,的语法简介,ROOT,的函数,直方图,随机数,文件,散点图,TF1,TH1I,TH1F,TH1D,TRandom(gRandom),TF2,TF3,TH2F,.,TFile,3,本讲要点什么是ROOT?3,什么是,ROOT,?,ROOT:Executive Summary,.provides a set of,OO frameworks,with,all,the functionality,needed to handle and analyse,large amounts of data,in a,very,efficient,way.,(,摘自,root.cern.ch/root/Mission.html,),关键字:面向对象的框架、所有功能、海量数据、非常有效,结论:很不谦虚!,4,什么是 ROOT?ROOT:Executive Summ,安装,ROOT(1),到,ROOT,主页下载需要的版本到指定目录。,比如要在,SLC3,系统的,/projects/yangzw,目录下安装,5.16.00,版本,(,注:最新版本的,ROOT,已经不为,SLC3,提供预编译版本了,而为,SLC4,和,SLC5,提供,),cd/projects/$USER,(,注:对用户,yangzw,$USER=yangzw),wget,ftp:/root.cern.ch/root/root_v5.16.00.Linux.slc3.gcc3.2.3.tar.gz,tar zxvf root_v5.16.00.Linux.slc3.gcc3.2.3.tar.gz,设置,ROOT,的环境变量,export ROOTSYS=/projects/$USER/root,export PATH=$ROOTSYS/bin:$PATH,export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH,可以把上面这,3,行放到,$HOME/.login,或者,.bashrc,或者,.tcshrc,文件中,,这样每次登录到,Linux,系统,系统就自动设置,ROOT,的环境变量,这样,进入,linux,系统之后,在终端提示行输入:,root,或,root-l,即可进入,ROOT,环境。,5,安装ROOT(1)到ROOT主页下载需要的版本到指定目录。5,安装,ROOT(2),如果是其它发行版的,Linux,,首先查看是否,ROOT,网站上是否有预编译好的程序包,一般情况下,官方提供,SLC4,和,SLC5,在各种不同,CPU,以及不同,gcc,版本下的二进制包,,ROOT,官网也提供包括,Solaris,以及,Mac OS X,以及,Windows,下的预编译包。,如果没有适合你的操作系统的预编译包,就需要到官网,root.cern.ch,下载,ROOT,的源代码,按照安装指南用,gmake,编译安装,。,Window,用户在官网下载相应的,.msi,文件直接安装即可。,Ubuntu8.10,用户可以到下面网页下载,5.22.00,版本的二进制代码,根据,Readme.txt,说明安装使用。,6,安装ROOT(2)如果是其它发行版的Linux,首先查看是否,安装,ROOT(3),实际上,,Linux,下安装程序的基本套路很简单:,1.,如果需要用源码编译,a),下载源码压缩包,b),解压缩,c),编译,d),设置环境变量,(,如果需要,),2.,如果已有预编译的包,a),下载,b),解压缩,c),设置环境变量,(,如果需要,),3.yum/apt-get,直接用网络源安装,(,预编译的包,),4.,7,安装ROOT(3)实际上,Linux下安装程序的基本套路很简,登录,ROOT,环境,运行,root,退出,root0,.q,键入,help,指令,如,root0,?,root1,.ls,root2,.!ls,ROOT,环境其它常用指令:,.L macro.C Load,文件,macro.C,.x macro.C,执行文件,macro.C,.ls,显示,ROOT,当前环境的所有信息,.!ls,显示,Linux,系统当前目录的所有信息,注:,ROOT,环境中,,ROOT,指令都以“,.,”,开头,系统指令都以“,.!,”,开头,8,登录ROOT环境运行 rootROOT环境其它常用指令:8,ROOT,体验中心,(1),在,$ROOTSYS/tutorials,目录下,有五花八门的例子。,以后会经常与这个目录打交道。先尝试一下吧。,尝试方法:,cd/projects/$USER,cp-r$ROOTSYS/tutorials.(,注意不要把这个,.,漏掉了,),cd tutorials,然后找个感兴趣的目录,/,文件,,执行,ROOT,脚本,比如,cd roofit,root-l RoofitDemo.C,小技巧提示:,根据关键字,xxxx,从,tuotorials,的例子中寻找线索,grep-sirn xxxx$ROOTSYS/tutorials,比如找随机数用法:,grep-sirn random$ROOTSYS/tutorials,Roofit,示例,9,ROOT体验中心(1)在$ROOTSYS/tutorials,ROOT,体验中心,(2),还可以在,ROOT,网站上看到一些,ROOT,图片:,root.cern.ch/drupal/image,当然,,ROOT,的功能不只是做图,它不是一个作图工具。,跟数据分析有关的东西,基本都是,ROOT,的擅长;,跟物理有关的很多东西,,ROOT,基本都可以做得很好:,事例产生、探测器模拟、事例重建、数据采集、,数据分析,10,ROOT体验中心(2)还可以在ROOT网站上看到一些ROOT,ROOT,体验中心,(3-1),日本超级神冈中微子实验事例显示(,by zhanghb,),超大的水池,内外装满了光电倍增管,,1,万多个,11,ROOT体验中心(3-1)日本超级神冈中微子实验事例显示(b,ROOT,体验中心,(3-2),仅显示被击中的光电倍增管,12,ROOT体验中心(3-2)仅显示被击中的光电倍增管12,ROOT,体验中心,(3-3),平面展开显示,13,ROOT体验中心(3-3)平面展开显示13,ROOT,体验中心,(3-4),平面展开,鼠标缩放,显示鼠标位置光电倍增管信息,14,ROOT体验中心(3-4)平面展开,鼠标缩放,显示鼠标位置光,ROOT,语法,(1),基本信息,ROOT,使用,C+,语法,一段,C+,程序可以直接在,ROOT,环境运行,数据类型重定义,int,Int_t,float,Float_t,double,Double_t,.,ROOT,的类都以,T,开头,如,TFile,TH1F,TTree,.,详细规定参阅,ROOT,手册,(5.21,版,),第,18-20,页,关于,Convention,和,Global Variables,部分。,可以直接在,ROOT,环境中运行,macro,文件,(,自动调用,cint,编译器,),,也可以在,makefile,中设置好相关参数用,g+,编译得到可执行文件运行。,15,ROOT语法(1)基本信息ROOT使用C+语法15,ROOT,语法,(2),直方图类,ROOT,中有众多已经定义好的类可供使用,比如,直方图,家族,16,ROOT语法(2)直方图类ROOT中有众多已经定义好的类可,ROOT,语法,(2),其它类,其它常用类,数学函数:,TF1,TF2,TF3.,图 形:,TGraph,TGraphErrors,TGraph2D,.,文 件:,TFile,画 布:,TCanvas,TPad,.,随 机 数:,TRandom,TRandom1,TRandom2,TRandom3,周期,10,9,10,171,10,26,10,6000,速度,(ns/call)34 242 37 45,比如跟数据结构和分析有关的:,TTree,TChain,.,参见,root.cern.ch/root/html526/ClassIndex.html,(,谨代表*邀请各位光临敝舍。注:*,=yangzw),还有很多,全局函数,,多数以,g,开头,如:,gRandom,gROOT,gStyle,gPad,gEnv,gFile.,速度与,CPU,和编译器有关,17,ROOT语法(2)其它类其它常用类速度与CPU和编译器有关,ROOT,语法,(3),随机数,gRandom,是指向当前随机数产生子的指针,该产生子默认为,TRandom3,对象。,root.cern.ch/root/html522/TRandom.html,(,为什么看,TRandom,?因为,TRandom1/2/3,都继承自,TRandom),gRandom-Binomial(ntot,p):,二项分布,gRandom-BreiWigner(mean,gamma)Breit-Wigner,分布,gRandom-Exp(tau),指数分布,gRandom-Gaus(mean,sigma),高斯分布,gRandom-Integer(imax)(0,imax-1),随机整数,gRandom-Landau(mean,sigma)Landau,分布,gRandom-Poisson(mean),泊松分布,(,返回,int),gRandom-PoissonD(mean),泊松分布,(,返回,double),gRandom-Rndm()(0,1,均匀分布,gRandom-Uniform(x1,x2)(x1,x2,均匀分布,.,使用前可根据需要改变随机数种子和机制,思考:什么情况下需要,PoissonD(mean)?,18,ROOT语法(3)随机数gRandom是指向当前随机数产生,ROOT,脚本文件示例,(1),:,Macro,文件,/home/yangzw/examples/Lec3/ex31.C,用花括号括起来,后缀名一般用,”.C”,cout Hello ROOT endl;,int Num=5;,for(int i=0;iNum;i+),cout i=i Fit(gaus);/,对直方图进行高斯拟合,TF1*f1=new TF1(f1,gaus,-5,5);,22,数学函数的定义方式(2)ROOT已经预定义了几种常用的含参函,数学函数的定义方式,(3),ROOT,中自定义含未知参数的数学函数,利用,c+,数学表达式,TF1*f1=new TF1(f1,0,*sin(,1,*x)/x,0,10);,