杨振伟 清华大学 第五讲:ROOT在数据分析中的应用(3)

Slides:



Advertisements
Similar presentations
全国普通高等院校招生统一 考试考务培训. 考 试 时 间 全国统考科目时间表 考试日期上 午下 午 6 月 7 日 星期日 语文( 9:00-11:30 )数学( 15:00-17:00 ) 6 月 8 日 星期一 文课综合 / 理科综合 ( 9:00-11:30 ) 英语( 15:00-16:40.
Advertisements

2007 年 6 月 楚雄师范学院计科系 离 散 数 学 第三章 逻辑代数 ( 上 ) 命题演算.
大公教育行政职业能力测验讲义 邢长文老师. Page 2 大公教育全国客服热线:
商管群科科主任 盧錦春 年 3 月份初階建置、 4 月份進階建置、 5 月份試賣與對外營業。
第八章 土地行政管理.
「互联网金融2.0时代」与房地产的融合 广州互联网金融协会会长、广州e贷总裁 方颂.
企业会计学(三) 人大版本 吕 昌.
湘雅医院中层干部培训讲座之二 医院行政管理工作思路 孙 虹 2010年10月27日.
南宁市中考网上报名录取系统 使用手册 2014年5月.
小学科学中的化学 武威十九中 刘玉香.
杨振伟 清华大学 第十一讲:大作业介绍、计算机拟合方法
神州五号、六号的发射和回收都取得了成功 ,圆了几代中国人的航天梦,让全中国人为之骄傲和自豪 神州五号、六号的发射和回收都取得了成功 ,圆了几代中国人的航天梦,让全中国人为之骄傲和自豪!但是你们知道我们的科学家是怎样迅速地找到返回舱着陆的位置的吗? 这全依赖于GPS——卫星全球定位系统”。大家一定觉得很神奇吧!学习了今天的内容,你就会明白其中的奥妙。
苗栗縣大埔國小-蘇國樺、白書萍、梁詠琪 製作
营 改 增 政 策 交 流 烟台市国家税务局.
毛峰教授 北京师范大学教授,博士生导师 国家社科基金项目专家 北京华文教育顾问
據點考核與評鑑 報告人:臺南市政府 照顧服務管理中心.
第二章 复式记账原理*** 主要内容、重点难点: 1.会计要素与会计等式*** 2.会计科目与账户*** 3. 借贷记账法***
特殊族群運動健康訓練(I).
依据教材 全国高等教育自学考试指定教材 《西方行政学说史》, 竺乾威主编,高等教育出版社。
正 信 讀 書 會 主 持 群 : 姚 永 錩 、 鄭 健 、 陳 淑 珍 佛法的生活應用 2008/07/23.
非法集资典型案例评析 南京师范大学法学院 蔡道通 2016年1月.
专题(二) 交往沟通 掌握技能 命 题 解 读 背 景 材 料 新 题 演 练 考 点 链 接 1.
恒泰期货研究所2016年 期债暴跌告一段落,短期波动降低 国债期货周报
松竹梅岁寒三友 步入建交 桃李杏村暖一家 迈进职教 活出精彩.
1、分别用双手在本上写下自己的名字 2、双手交叉
1.6 中国人口迁移.
愛之花.
保良局方王錦全小學 學校健康促進經驗分享    盧淑宜校長.
2007年11月考试相关工作安排 各考试点、培训中心和广大应考人员:
关于职教发展的几个理念 上海市教育科学研究院 周亚弟.
分式的乘除(1) 周良中学 贾文荣.
第八单元第二课第一课时 严守法律 温州四中 蒋莉青.
第四章 制造业企业 主要经济业务核算.
高级财务会计.
默写基础知识: 1、家庭是由 关系、 关系或 关系而结合成的亲属生活组织。家里有 ,家中有 。
《思想品德》七年级下册 教材、教法与评价的交流 金 利 2006年1月10日.
什么是颈椎病? 颈椎病是指颈椎间盘退行性变,及其继发性椎间关节退行性变所致脊髓、神经、血管损害而表现的相应症状和体征。
“深入推进依法行政加快建设法治政府” -《法治政府建设实施纲要》解读
贴近教学 服务师生 方便老师.
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
第六节 可降阶的二阶微分方程 一、 型的微分方程 二、 型的微分方程 三、 型的微分方程.
1.5 充要条件.
物理实验室管理与实验技术
第一单元 中国传统文化主流思想的演变.
 第20讲 中国的交通.
公務人員退休法、撫卹法 法制與實務講習 銓敘部退撫司 中華民國99年8月.
第十二单元 第28讲 第28讲 古代中国的科技和文艺   知识诠释  思维发散.
权力的行使:需要监督 北京市京源学校 冯 悦.
《傅雷家书》 学 科:语文 年 级:九年级 授课教师:王宁宁.
第一節 行政裁量與不確定法律概念 第二節 行政裁量
本课设置5个环节 一、限时秒杀--5分钟 二、摩拳擦掌--9分钟 三、刀锋相见--20分钟 四、现炒现卖--5分钟 五、相约课后--1分钟.
从中国与联合国的关系演进 看联合国的产生与发展
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
第二天 计算机基础技能培训 (一)linux基础知识
专业教师成绩录入指南 及教学文档材料归档要求
ROOT.
織物的認識 演示者:陳明玲 美容科:家政概論.
第二章 UNIX系统安装与常用命令.
中華大學 資訊工程學系 報告人:資訊工程學系 許慶賢 系主任.
特定消耗品說明 (指碳粉匣、墨水匣) 國立清華大學 保管組製作.
98年度兒童課後照顧學程 修課名單確認暨課程說明會 2009/09/15(二) 08:40~09:20.
第八节 算术运算符和算术表达式.
加減法文字題 國小低年級學生對加減法文字題的瞭解 小組成員 陳育娟 羅珠綾 侯宜孜
飛行器製作與飛行 講師:劉修建.
進貨管理介接更動 有關「匯入進貨資料」傳,請注意「上游業者出貨單號」,上游業者出貨單號要配合「匯出上游出貨資料」中的「出貨單號」或是「自有系統上傳的出貨單號」。 Ø  若「自有系統上傳的出貨單號」有值,則「匯入進貨資料」中的「上游業者出貨單號」就要key入「匯出上游出貨資料」中的「自有系統上傳的出貨單號」。
因果性:一个形而上学的预设 赵敦华 2008年5月.
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
杨振伟 清华大学 第五讲:ROOT在数据分析中的应用(3)
杨振伟 清华大学 第三讲:ROOT在数据分析中的应用(2)
Presentation transcript:

杨振伟 清华大学 第五讲:ROOT在数据分析中的应用(3) 粒子物理与核物理实验中的数据分析 杨振伟 清华大学 第五讲:ROOT在数据分析中的应用(3)

上讲摘要 ROOT的TTree类 TTree *tree = new TTree(“tree”,”mytree”); tree->Branch(“br1”,&br1,”br1/F”); 填充tree,将tree写入root文件 tree->Fill(); //填充 TFile *f = new TFile(“f1.root”,”recreate”); tree->Write(); //写入root文件 查看root文件中tree的信息 TFile *f = new TFile(“f1.root”); f->ls(); TTree *tree = (TTree*)f->Get(“tree”); tree->Scan(),tree->Show(i),tree->Print() 处理tree格式相同的多个文件root文件: TChain TChain *chain = new TChain(); chain->Add(“f1.root/treename”);

本讲要点 直方图的运算 加减乘除: Add,Divide,... 归一化:Scale ROOT中直方图拟合 h1->Fit();

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

直方图的归一化(2) 归一化常用于比较两种分布,找出区别。 所以,将2个直方图归一化到积分相同进行比较才直观。 root[0]TH1F *h1=new TH1F("h1","",100,-5,5); root[1]TH1F *h2=new TH1F("h2","",100,-5,5); root[2]h1->FillRandom("gaus",5000); root[3]h2->FillRandom("gaus",10000); root[4]float norm=1000; root[5]h1->Scale(norm/h1->Integral()); root[6]h2->Scale(norm/h2->Integral()); root[7]h1->Draw("e"); root[8]h2->Draw(“esames”) ; 注意Draw()函数的选项 "归一化"之后,h1或h2->Integral()=norm 在同一张图上可以看出比较2个分布的差别。

直方图四则运算(1) 重要提示: 对直方图进行四则运算操作,一定要想明白运算的意义 比如两个直方图的相加与两个随机变量的卷积有什么区别 2. 两个直方图的四则运算,区间大小和区间数相同才有意义 四则运算"加减乘除"分别对应 统计量(BinContent)的相加、相减、相乘、相除 3. 如果需要正确处理统计误差,需要在对ROOT脚本中 调用TH1的某个静态成员函数,即 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.

直方图的四则运算(2) 相加:常用于相同实验的数据叠加,增加统计量。 ...... root[1]TH1::SetDefaultSumw2(); root[1]TH1F *h3=new TH1F(*h1); root[2]h3->Add(h1,h2,a,b); 结果:h3的BinContent被a*h1+b*h2替换,一般a=b=1 相加:常用于相同实验的数据叠加,增加统计量。 ...... root[1]TH1F *h3=new TH1F(*h1); root[2]h3->Sumw2();//也可在定义h3前TH1::SetDefaultSumw2(); root[3]h3->Add(h1,h2,a,-b); 结果:h3的BinContent被a*h1+b*h2替换,一般a=-b=1 相减:常用于从实验测量的分布中扣除本底。

直方图的四则运算(3) 相除 root[1]TH1F *h3=new TH1F(*h1); root[2]h3->Sumw2(); 常用于效率的计算。 root[1]TH1F *h3=new TH1F(*h1); root[2]h3->Sumw2(); root[3]h3->Divide(h1,h2,a,b); root[4]h3->Divide(h1,h2,a,b); 思考:如果h1和h2不独立,怎么办?比如h1包含于h2 root[4]h3->Divide(h1,h2,a,b,"B"); 相乘 常用于对分布进行诸如效率等的修正。 root>TH1F *h3=new TH1F(*h1); root>h3->Sumw2(); root>h3->Multiply(h1,h2,a,b);

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

拟合直方图(1) 将鼠标放到直方图上,右键,出现直方图操作选项,选择FitPanel,可以在FitPanel中选择拟合的各个选项,比如用什么函数拟合,拟合的区间,等等。

拟合直方图(2) 并不推荐这种拟合方式: 1)不适合自定义函数拟合 2)不适合批处理 用默认的高斯拟合,并在Options菜单中选上Fit Parameters选项,可以看到拟合的结果。 拟合结果给出了高斯分布的3个参数: 常系数、均值、均方差,以及拟合的好坏chi2/ndf 并不推荐这种拟合方式: 1)不适合自定义函数拟合 2)不适合批处理

下载本讲的例子 cd <your workding directory> cp -r ~yangzw/examples/Lec5 . 或者下载到自己本地机器上: scp -r username@166.111.32.11:/home/yangzw/examples/Lec5 . wget hep.tsinghua.edu.cn/~yangzw/CourseDataAna/examples/Lec5.tgz tar -zxvf Lec5.tgz

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

拟合直方图(3) /home/yangzw/examples/Lec5/ex52.C 共振峰(Breit-Wigner分布)加上二次函数本底的拟合(一共6个参数) 这是下面例子的简化版: $ROOTSYS/tutorials/fit/FittingDemo.C 先自定义本底函数(background)和共振峰函数(lorentianPeak),再定义这两个函数的和为拟合函数:fitFunction 利用fitFunction定义TF1函数 TF1 *fitFcn = new TF1("fitFcn",fitFunction,0,3,6); 这里指定函数区间为0-3,6个参数 fitFcn->SetParameter(4, 0.2); 为某个参数设初值(width) fitFcn->SetParLimits(5, 0.6,1.4); 为某参数设置取值范围 运行:root -l root [0] .L ex52.C 注意TLegend的使用

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分析相同格式的数据文件。 直方图的运算,拟合 h1->Fit("function_name");

ROOT的重要功能或用法(1) ROOT手册13、14章分别是数学库和线性代数,提供很多数学功能,比如Lorentz矢量的操作,特殊函数,矩阵求解运算,求极值等等 ROOT手册第4章介绍Graphs,适用于不等距数据的图形分析(当然也可以构造不等bin的直方图) RooFit,最大似然法拟合等 神经网络分析方法,TMVA(多元数据分析) ROOT中使用PYTHIA、Geant3/4 图形接口...

ROOT的重要功能或用法(2) MakeClass,MakeSelector的运用 比如当前/home/yangzw/examples/Lec5/目录下有文件ex51.root,其中含有复杂的tree。可以用MakeClass或MakeSelector自动产生分析文件和头文件: root [0] TFile f("ex51.root"); root [1] .ls TFile** ex51.root TFile* ex51.root KEY: TTree t4;1 Reconst events root [2] t4->MakeClass(); 或: t4->MakeClass(“MyClass”); 自动产生以t4.h和t4.C文件, 或MyClass.h和MyClass.C文件。 类的定义以及Branch地址设定、分析框架都已经自动完成。 MakeSelector的用法类似: root [0] TFile f("ex51.root"); root [1] t4->MakeSelector(); 或 t4->MakeSelector(“MySelector”);

ROOT的重要功能或用法(3) 独立编译程序进行ROOT分析 尽管在ROOT环境中运行ROOT脚本很方便,但如果分析处理的东西比较复杂,需要长时间运行,独立编译运行比在ROOT环境中运行要快很多,大约有数量级的差别。 /home/yangzw/examples/Lec5/standalone目录是独立编译运行ROOT的例子。这实际上是SDA习题3.7c的一部分。 进入standalone目录后,gmake进行编译就可以运行。 比较make后运行可执行文件所需时间与直接 root -l ex37c.C的运行时间差别。

习题 练习需要的root文件都存放在下面目录里: /home/yangzw/examples/Lec5/exercise/ 1. 查看该double_gaus.root文件。其中存储了名为tree1的TTree。画出tree1中pz的分布,并对该分布进行拟合,在图上显示出拟合的结果,并在屏幕上打印出拟合结果。 (提示:该分布为两个高斯的叠加,可以自定义一个包含6个参数的TF1进行拟合,分布比较复杂的时候,需要先估计参数的大概值,为拟合函数预设估计值。) 思考:假设函数fun=p0*exp(-(x-p1)^2/2/p2^2) +p3*exp(-(x-p4)^2/2/p5^2) 由拟合得到的结果,比较两个高斯的份额 2. hist.root中有两个直方图,对这两个直方图进行加减乘除运算。除法时,查看用”B”选项和不用“B”选项时误差的不同。 (提示:h1的事例包含于h2的事例,计算误差需要用”B”选项) 3. 利用1.root和2.root,将其中的px分别画到两个直方图h1,h2中。对h1,h2进行加减乘除运算,查看误差情况。比较调用与不调用Sumw2()的差别。

参考资料 ROOT手册第5章:Fitting Histogram $ROOTSYS/tutorials/fit目录中的例子 http://root.cern.ch/tutorials.html 中与Fit有关的例子 http://root.cern.ch/howto.html