您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > 粒子物理与核物理实验中的数据分析lecture-6-PAW与ROOT在数据分析中的应用
粒子物理与核物理实验中的数据分析陈少敏清华大学第六讲:PAW与ROOT在数据分析中的应用2本讲要点PAW与ROOT简介PAW与ROOT的数据结构PAW与ROOT的图形运算PAW与ROOT上的随机抽样3物理分析工作平台(PAW)PAW是英文“PhysicsAnalysisWorkstation”的缩写。版权归西欧核子研究中心(CERN)所有,免费提供给与CERN有关的科学实验或与CERN有科学合作的协议方免费使用。诞生于1986年,最后版本更新于2002年。广泛应用于2002年以前进行的实验。2002年以后新建的实验项目大都采用基于C++的ROOT软件包。在PAW与ROOT软件包之间有PAW++。所有三个软件包均由CERN计算机中心开发与维护。CERN提供了在不同操作系统运行的免费下载网址:的主要结构5新一代的工作平台ROOTROOT充分利用了计算机技术的最新发展,并且能适应现代粒子物理实验对极大数量的数据分析以及模拟要求。在这一点上PAW已经达到了极限。CERN提供了在不同操作系统运行的免费下载网址:与ROOT用户界面:PAW≈ROOT同等数据处理时间:PAW快于ROOT同等数据存储空间:PAW大于ROOT2414133run_615026.dat58197330run_615531.dat1581056run_615026.ntuple内存不够901766run_615026.root17552250run_615531.root我个人使用PAW与ROOT的感觉:对于单纯的数据处理,PAW使用起来相对容易一些。对于非常复杂的数据结构和多次计算,ROOT有它的优点,尤其是在处理数据量在1012以上的应用。在很多指令操作上,两者之间有不少一一对应的关系。我个人使用PAW与ROOT的感觉:对于单纯的数据处理,PAW使用起来相对容易一些。对于非常复杂的数据结构和多次计算,ROOT有它的优点,尤其是在处理数据量在1012以上的应用。在很多指令操作上,两者之间有不少一一对应的关系。图形功能:PAW≈ROOT7数据库Ntuple“Ntuple”:是一个加有多种功能的N-维数据库。数据在Ntuple中按行或列排列,而各行或列有N个数据块。例如,在分析练习中说给的数据…事例号光电倍增管号码时间测量值电荷测量值…就可以形成这样能被PAW或者ROOT识别的数据库。包含在这两种物理分析工作平台的各种统计分析工具就可以得到充分的利用。为了优化数据结构,可以在PAW:CWN,RWN,BLOCK…ROOT:TREE,BRANCH…以加速数据处理的时间。8PAW数据中的行排列与列排列假设每个事例有观测量(x,y,z,t)按行排列按列排列用于观测量较少的情况。如果内存大,数据处理时间较短。用于观测量较少的情况。如果内存大,数据处理时间较短。用于观测量较多的情况。该排列方式不适用于本课程的练习。用于观测量较多的情况。该排列方式不适用于本课程的练习。9ROOT数据中的TREE结构步骤:1.建立一个TFile2.建立一个Ttree3.把TBranch加到Ttree4.填入tree5.写到一个文件上TFile*hfile=newTFile(AFile.root,RECREATE);TTree*tree=newTTree(myTree,AROOTtree);TTreealiTree(aliTree,/aliroot);Event*event=newEvent();myTree-Branch(EventBranch,Event,&event);myTree-Fill();hfile-Write();Tree=H1F,H2F,Ntuple等等。10如何生成Ntuple数据库subroutinereadinintegernevent,pmtidrealtime,charge,vect(4)parameter(nwpawc=50000,ndim=4)character*15ntit(ndim)datantit/'nevent','pmtid','time','charge'/common/pawc/h(nwpawc)callhbookn(100,'Test',ndim,'',1024,ntit)open(61,file=‘run_615026.dat')1read(61,*,end=10)nevent,pmtid,time,chargevect(1)=neventvect(2)=pmtidvect(3)=timevect(4)=chargecallhfn(100,vect)goto110close(61)returnend{gROOT-Reset();#includeRiostream.hifstreamin;in.open(run_615026.dat”);Float_tnevent,pmtid,time,charge;TFile*f=newTFile(run_615026.root,RECREATE);TNtuple*ntuple=newTNtuple(ntuple,datafromasciifile,nevent:pmtid:time:charge);while(1){inneventpmtidtimecharge;if(!in.good())break;ntuple-Fill(nevent,pmtid,time,charge);}in.close();f-Write();}root–b–qreadin.C+PAWcallreadin.fPAWh/fil1run_615026.ntuple!N;cd//lun1;hrout0;close1在ROOT平台从PAW到ROOT:h2rootrun_615026.ntuplerun_615026.root11PAW数据文件中的内容PAWh/fil1run_615026.ntuple0PAWscan100+-------+--------------+--------------+--------------+--------------+|Event|nevent|pmtid|time|charge|+-------+--------------+--------------+--------------+--------------+|1|1.|13.|17.2407|0.984996||2|1.|80.|26.8364|1.97757||3|1.|101.|20.2386|1.38074||4|1.|142.|28.0259|1.43446||5|1.|256.|18.9224|0.53552||6|1.|294.|22.6816|1.38957||7|1.|485.|-169.929|0.967207||8|1.|543.|44.1801|1.26147||9|1.|587.|14.3102|1.01928|+-------+--------------+--------------+--------------+--------------+More...?(CR/N/G)12ROOT数据文件中的内容root[0]TFilef(run_615026.root);root[1]ntuple.Scan();************************************************Row*nevent*pmtid*time*charge*************************************************0*1*13*17.240699*0.9849960**1*1*80*26.836399*1.9775700**2*1*101*20.238599*1.3807400**3*1*142*28.025899*1.4344600**4*1*256*18.922399*0.5355200**5*1*294*22.681600*1.38957**6*1*485*-169.9290*0.9672070**7*1*543*44.180099*1.2614699**8*1*587*14.310199*1.0192799**9*1*607*4.7850999*1.5807800*TypeCRtocontinueorqtoquit==13分析数据中的基本PAW指令PAWh/fil1run_615026.ntuple0读入数据文件PAWzone22;在终端显示2x2幅图PAWn/pl100.nevent;n/pl100.pmtid;n/pl100.time;n/pl100.charge画图PAWn/pl100.charge%timepmtid.eq.1第一根管tvs.q的二维散点图PAWn/pl100.charge%time%pmtid画三维散点图PAWh/cr10‘time(ns)’100–5050开出一维直方图框架PAWn/proj10100.timepmtid.eq.1填第一根管的时间分布直方图PAWh/cr20‘tvs.q’100–5050100–1090开出二维图框架PAWn/proj20100.charge%timepmtid.eq.1填第一根管tvs.q的二维图PAWzone12;h/pl10;h/pl20画图PAWslix201;h/proj20;h/pl20.slix.1画出在x轴的边缘分布图PAWve/cripmt(680);ve/crx(680);ve/cry(680);ve/crz(680)开设数组PAWve/readipmt,x,y,z/home/chensm/geom/geom.dat读入几何数据PAWve/ply%x画出xvs.y的二维散点图PAWpicture/printfile_name.gif把当前图形生成gif文件14分析数据中的基本ROOT指令root[0]TFilef(“run_615026.root”)root[1]TCanvas*c=newTcanvas(“c”,”plots”,0,0,600,600);c.Divide(2,2)root[2]c.cd(1);ntuple.Draw(“pmtid”);c.cd(2);ntuple.Draw(“time”);root[3]c.Clear();c.cd(1);ntuple.Draw(“charge:time”,“pmtid==1”);root[4]c.Clear();c.cd(1);ntuple.Draw(“charge%time%pmtid”);root[5]TH1F*h10=newTH1F(“h10”,“time(ns)”,100,-50,50);root[6]ntuple.Draw(“timeh10”,“pmtid==1”);root[7]TH2F*h20=newTH2F(“h20”,“tvs.q”,100–50,50,100,–10,90);root[8]ntuple.Draw(“charge:timeh20”,”pmtid==1”);root[9]c.Divide(1,2);c.cd(1);h10.Draw();c.cd(2);h20.Draw();root[10]h20.ProjectionX(“Xproj”);Xproj.Draw();root[11]h10.Draw(“e”);画出误差root[12]h20.Draw(“box”);画出灰度root[12]h20.Draw(“lego2”);将二维散点图表示成三维图root[14]c.SaveAs(“file_name.gif”);把当前图形生成gif文件n15Macros文件Macro文件包含了一串PAW或ROOT的指令行例如,在PAW平台中,一个叫“check.kumac”的Macr
本文标题:粒子物理与核物理实验中的数据分析lecture-6-PAW与ROOT在数据分析中的应用
链接地址:https://www.777doc.com/doc-4760630 .html