当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

清华大学:《粒子物理与核物理实验中的数据分析》课程教学资源(课件讲稿)第六讲 PAW与ROOT在数据分析中的应用

资源类别:文库,文档格式:PDF,文档页数:30,文件大小:346.07KB,团购合买
PAW 与 ROOT 简介 PAW 与 ROOT 的数据结构 PAW 与 ROOT 的图形运算 PAW 与 ROOT 上的随机抽样
点击下载完整版文档(PDF)

粒子物理与核物理实验中的 数据分析 陈少敏 清华大学 第六讲:PAW与RO0T在 数据分析中的应用

粒子物理与核物理实验中的 数据分析 陈少敏 清华大学 第六讲:PAW与ROOT在 数据分析中的应用

本讲要点 ■PAW与ROOT简介 ■PAW与ROOT的数据结构 ■PAW与ROOT的图形运算 ■PAW与ROOT上的随机抽样 2

2 本讲要点 „ PAW 与 ROOT 简介 „ PAW 与 ROOT 的数据结构 „ PAW 与 ROOT 的图形运算 „ PAW 与 ROOT 上的随机抽样

物理分析工作平台(PAW) PAW是英文Physics Analysis Workstation'”的缩写。 诞生于1986年,最后版本更新于2002年。 版权归西欧核子研究中心(CERN)所有,免费提供给与CERN有关的科学实验 或与CERN有科学合作的协议方免费使用。 广泛应用于2002年以前进行的实验。2002年以后新建的实验项目大都采用 基于C+的RO0T软件包。 在PAW与RO0T软件包之间有PAW+。所有三个软件包均由CERN计算机中心开 发与维护。 CERN提供了在不同操作系统运行的免费下载网址: http://cernlib.web.cern.ch/cernlib/version.html 3

3 物理分析工作平台(PAW ) PAW 是英文 “Physics Analysis Workstati o n” 的缩写。 版权归西欧核子研究中心(CERN)所有,免费提供给与CERN有关的科学实验 或与CERN有科学合作的协议方免费使用。 诞生于1986年,最后版本更新于2002年。 广泛应用于2002年以前进行的实验。2002年以后新建的实验项目大都采用 基于C++的ROOT软件包。 在PAW与ROOT软件包之间有PAW++。所有三个软件包均由CERN计算机中心开 发与维护。 CERN提供了在不同操作系统运行的免费下载网址: http://cernlib.web.cern.ch/cernlib/version.html

PAW的主要结构 PAW Data HPLOT Vectors 鋁 Tne Plotting Package 8 KUIP MINUIT Histograms User interface Minimization Package RWN Command Processor Ntuples CWN Meru Dlalogue HIGZ Motif interface Tne Graphics Package Analysis Presentation baslc graphics and HBOOK Fitting 1D.2D.and 3D Plots grapnics editor for Histogramming Smoothing SIGMA plctures in data base 体-Tupies Array Manipulation Arrays Manpulatlon Statstical Analysis FORTRAN Interpreter Cuts Projections 无-w1edee 0线G0020.FN0s ASCI RZ MCintoih,IBM PC ate ZEBRA COMIS Data Structure Manager FORTRAN Interpreter inputOutput Server Data Base Manager ZEBRA FILES ZEBRA MEMORY

4 PAW的主要结构

新一代的工作平台ROOT ROOT充分利用了计算机技术的最新发展,并且能适应现代粒子物理实验 对极大数量的数据分析以及模拟要求。在这一点上PAW已经达到了极限。 Data Event Data Detector Event Reconstruction Acquisition Analysis Simulation Generators ROOT Framework CERN提供了在不同操作系统运行的免费下载网址:http:/root.cern.ch/ 5

5 新一代的工作平台ROOT ROOT充分利用了计算机技术的最新发展,并且能适应现代粒子物理实验 对极大数量的数据分析以及模拟要求。在这一点上PAW已经达到了极限。 CERN提供了在不同操作系统运行的免费下载网址:http://root.cern.ch/

PAW与ROOT 用户界面:PAW≈ROOT 图形功能:PAW ≈ROOT 同等数据处理时间:PAW 快于ROOT 同等数据存储空间:PAW大于ROOT 2414133run615026.dat 58197330run615531.dat 1581056run615026.ntuple 内存不够 901766run615026.root 17552250run615531.root 我个人使用PAW与ROOT的感觉:对于单纯的数据处理,PAW使用 起来相对容易一些。对于非常复杂的数据结构和多次计算,ROOT 有它的优点,尤其是在处理数据量在102以上的应用。在很多指令 操作上,两者之间有不少一一对应的关系。 6

6 PAW 与 ROOT 用户界面:PAW ≈ ROOT 同等数据处理时间:PAW 快于 ROOT 同等数据存储空间:PAW 大于 ROOT 2414133 run_615026.dat 58197330 run_615531.dat 1581056 run_615026.ntuple 内存不够 901766 run_615026.root 17552250 run_615531.root 我个人使用PAW与ROOT的感觉: 对于单纯的数据处理, PAW使用 起来相对容易一些。对于非常复杂的数据结构和多次计算,ROOT 有它的优点,尤其是在处理数据量在1012以上的应用。在很多指令 操作上,两者之间有不少一一对应的关系。 我个人使用PAW与ROOT的感觉: 对于单纯的数据处理, PAW使用 起来相对容易一些。对于非常复杂的数据结构和多次计算,ROOT 有它的优点,尤其是在处理数据量在1012以上的应用。在很多指令 操作上,两者之间有不少一一对应的关系。 图形功能:PAW ≈ ROOT

数据库Ntuple Ntuple':是一个加有多种功能的N-维数据库。数据在Ntuple中按行或 列排列,而各行或列有N个数据块。例如,在分析练习中说给的数据 事例号光电倍增管号码时间测量值电荷测量值 就可以形成这样能被PAW或者ROOT识别的数据库。包含在这两种物 理分析工作平台的各种统计分析工具就可以得到充分的利用。 为了优化数据结构,可以在 PAW:CWN.RWN.BLOCK.. ROOT:TREE.BRANCH... 以加速数据处理的时间。 7

7 数据库Ntuple “Ntuple”: 是一个加有多种功能的N-维数据库。数据在 Ntuple 中按行或 列排列,而各行或列有 N 个数据块。例如,在分析练习中说给的数据 … 事例号 光电倍增管号码 时间测量值 电荷测量值 … 就可以形成这样能被 PAW 或者 ROOT 识别的数据库。包含在这两种物 理分析工作平台的各种统计分析工具就可以得到充分的利用。 为了优化数据结构,可以在 PAW: CWN, RWN,BLOCK… ROOT: TREE, BRANCH… 以加速数据处理的时间

PAW数据中的行排列与列排列 假设每个事例有观测量(x,y,z,t) Ntuple Header Header created by HBOOKN) 按行排列 x1Y12151x2Y2z2t2x3Y333t3·· Buffer filled by HFN) 用于观测量较少的情况。如果 内存大,数据处理时间较短。 LRECL HBOOK/RZ direct-access file NWBUFF Ntuple Header Header created by HBNT,HBNAME) 按列排列 Buffers filled by HFNT) x1x2X3x×5· YYzy3YYs· 2122232425 t,52t36,ts… NWBUFF 用于观测量较多的情况。该排 列方式不适用于本课程的练习。 LRECL HBOOK/RZ direct-access file 8

8 PAW数据中的行排列与列排列 假设每个事例有观测量(x,y,z,t) 按行排列 按列排列 用于观测量较少的情况。如果 内存大,数据处理时间较短。 用于观测量较少的情况。如果 内存大,数据处理时间较短。 用于观测量较多的情况。该排 列方式不适用于本课程的练习。 用于观测量较多的情况。该排 列方式不适用于本课程的练习

ROOT数据中的TREE结构 步骤: 1.建立一个TFi1e TFile *hfile new TFile("AFile.root","RECREATE"): 2.建立一个Ttree TTree *tree=new TTree("myTree","A ROOT tree"); TTree aliTree("aliTree","/aliroot"): 3.把TBranch加到Ttree Event *event=new Event(); myTree->Branch("EventBranch","Event",&event): 4.填入tree myTree->FillO); Tree H1F,H2F,Ntuple 5.写到一个文件上 等等。 hfile->Write(); 9

9 ROOT数据中的TREE结构 步骤: 1. 建立一个 TFile 2. 建立一个 Ttree 3. 把 TBranch 加到 Ttree 4. 填入 tree 5. 写到一个文件上 TFile *hfile = new TFile("AFile.root","RECREATE"); TTree *tree = new TTree("myTree","A ROOT tree"); TTree aliTree("aliTree", "/aliroot"); Event *event = new Event(); myTree->Branch("EventBranch","Event",&event); myTree->Fill(); hfile->Write(); Tree = H1F, H2F, Ntuple 等等

如何生成Ntuple数据库 subroutine readin integer nevent,pmtid 在ROOT平台 real time,charge,vect(4) gROOT->Reset(); #include "Riostream.h" parameter (nwpawc=50000,ndim=4) ifstream in; character*15 ntit(ndim) in.open("run_615026.dat"); data ntit/"nevent','pmtid','time','charge'/ Float t nevent,pmtid,time,charge; TFile *f =new TFile("run_615026.root","RECREATE"); common/pawc/h(nwpawc) TNtuple *ntuple=new TNtuple("ntuple", call hbookn(100,'Test',ndim,'',1024,ntit) "data from ascii file","nevent:pmtid:time:charge"); open(61,file='run_615026.dat') while (1){ read(61,*,end=10)nevent,pmtid,time,charge in >nevent>>pmtid >time >charge; vect(1)=nevent if (!in.good())break; ntuple->Fill(nevent,pmtid,time,charge); vect(2)=pmtid vect(3)=time in.close(); vect(4)=charge f->WriteO); root -b -q readin.C+ call hfn(100,vect) go to 1 PAW>call readin.f 10 close(61) PAW>h/fil 1 run_615026.ntuple N;cd //lun1;hrout 0;close 1 return end PAWROOT:h2root run_615026.ntuple run_615026.root

10 如何生成Ntuple数据库 subroutine readin integer nevent,pmtid real time,charge,vect(4) parameter (nw pawc=50000,ndim=4) character*15 ntit(ndim) data ntit/'nevent','pmtid','time','charg e'/ common/pawc/h(nwpaw c) call hbook n(100,'Test',ndim,' ',1024,ntit) open(61,file=‘run_615026.dat') 1 read(61,*,end=10)nevent,pmtid,tim e,charge vect(1)=nevent vect(2)=pmtid vect(3)=time vect(4)=charge call hfn(100,vect) go to 1 10 clos e(61) return end { gROOT->Reset(); #include "Riostrea m.h" ifstream in; in.open("run_615026.dat”); Float_t nevent,pmtid,time,charge; TFile *f =new TFile( "run_615026.root ","RECREATE"); TNtuple *ntuple = new TNtuple("ntuple", "data from ascii file ","nevent:pmtid:time:charg e "); w hile (1) { in >> nevent >> pmtid >> time >> charge; if (!in.good()) brea k; ntuple->Fill(nevent,pmtid,time,charge); } in.close(); f->Write(); } root –b –q readin.C+ PAW>call readin.f PAW>h/fil 1 run_615026.ntuple ! N;cd //lun1;hrout 0;close 1 在ROOT平台 从PAW 到ROOT: h2root run_615026. ntu ple ru n_615026.ro o t

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共30页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有