首页 > 其他分享 >空间站数据画图

空间站数据画图

时间:2023-05-20 20:33:46浏览次数:44  
标签:return iss root TFile 画图 hist 空间站 line 数据

要求:

image


打开ROOT文件,MakeClass生成两文件:

(ams) zpw@dell:~/Files/0520_iss$ root ISS_001223.root 
   ------------------------------------------------------------------
  | Welcome to ROOT 6.26/10                        https://root.cern |
  | (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Nov 17 2022, 16:18:00                 |
  | From tag , 16 November 2022                                      |
  | With                                                             |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

root [0] 
Attaching file ISS_001223.root as _file0...
(TFile *) 0x561bb71cab80
root [1] .ls
TFile**         ISS_001223.root
 TFile*         ISS_001223.root
  KEY: TTree    t1;1    ISS_001223.root
root [2] t1->MakeClass("iss")
Info in <TTreePlayer::MakeClass>: Files: iss.h and iss.C generated from TTree: t1
(int) 0
root [3] .q

image

修改 iss.h 对应部分:

Int_t iss::Cut(Long64_t entry)
{
      if (!(0.5 < q_trk && q_trk < 1.5)) return -1;
      if (!(0.5 < q_tofd && q_tofd < 3)) return -1;
      if (!(0. < rig_i && rig_i < 30)) return -1;
      if (!(beta_rich >0)) return -1;
      if (!(IsNaF == 0)) return -1;

   return 1;
}

image

修改 iss.C 对应部分:

void iss::Loop()
{
   TFile *f = new TFile("iss.root","RECREATE");
   TH1F *h = new TH1F("h","hist of pro",20., 0., 20.);

   if (fChain == 0) return;

   Long64_t nentries = fChain->GetEntriesFast();

   Long64_t nbytes = 0, nb = 0;
   for (Long64_t jentry=0; jentry<nentries;jentry++) {
      Long64_t ientry = LoadTree(jentry);
      if (ientry < 0) break;
      nb = fChain->GetEntry(jentry);   nbytes += nb;
      if (Cut(ientry) < 0) continue;
      h->Fill(nrichhit);
   }
   h->Write();
   f->Write();
   f->Close();
}

image

生成ROOT文件:

(ams) zpw@dell:~/Files/0520_iss$ root iss.C+
   ------------------------------------------------------------------
  | Welcome to ROOT 6.26/10                        https://root.cern |
  | (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Nov 17 2022, 16:18:00                 |
  | From tag , 16 November 2022                                      |
  | With                                                             |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

root [0] 
Processing iss.C+...
Info in <TUnixSystem::ACLiC>: creating shared library /home/zpw/Files/0520_iss/./iss_C.so
(iss) @0x55cb437a41b0
root [1] iss hello
(iss &) @0x7fd492fff000
root [2] hello.Loop()
root [3]

image

写个画图脚本Macros: plot.C

void plot()
{
    // open file
    TFile *input=new TFile("./iss.root");

    input->ls();
    auto *c1=new TCanvas();
    // Get histogram
    TH1F *hist=static_cast<TH1F*>(input->Get("h"));

    // setting/style
    gPad->SetLogy();
    gStyle->SetOptStat(0);
    // hist->SetMinimum(1e-5);
    // hist->SetMaximum(1.0);
    hist->Scale(1.0/hist->Integral());
    hist->GetYaxis()->SetRangeUser(1e-5,1.0);
    hist->SetLineColor(kBlue-4);
    // hist->SetMarkerColor(kBlue-4);
    // hist->SetMarkerStyle(2);
    // draw
    // hist->Draw("HIST P");
    hist->Draw("HIST");

    TLegend *leg_line = new TLegend(0.7, 0.8, 0.85, 0.72);
    leg_line->SetTextFont(3);
    leg_line->SetTextSize(25);
    leg_line->SetFillColor(0);
    leg_line->SetLineColor(1);

    leg_line->AddEntry(hist, "proton", "p");
    leg_line->Draw("SAME");

    c1->Print("./pro.png");
}

画出来root -q plot.C

image

**

标签:return,iss,root,TFile,画图,hist,空间站,line,数据
From: https://www.cnblogs.com/zhaopw5/p/17417703.html

相关文章

  • Python数据可视化小结
    1.引言原始形式的数据对大多数人来说可能都是枯燥乏味的,但是如果掌握正确的可视化工具,给人的印象就会变得引人入胜。本文通过实际例子,让我们利用数据可视化工具来探索不一样的数据体验。闲话少说,我们直接开始吧!2.举个栗子让我们从创建一个数据集开始,假设以下数据集包含2010-2020......
  • 数据库相关概念
    一:概念分析   数据库系统:分为两部分:一部分是数据库按一定的方式存储数据;另一部分数据库管理系统,为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等功能。   数据库:若干数据的集合体。数据库要由数据库管理系统进行科学的组织和管理,以确保数据库的安全性和完......
  • 学习Javaweb中遇到的数据回显显示问题
    问题描述:当点击修改按钮时,显示的内容如下:解决方案:加上isELIgnored="false"<%@pagecontentType="text/html;charset=UTF-8"language="java"isELIgnored="false"%>最终结果显示:......
  • Windows 2007卸载mysql数据库
    文档课题:Windows2007卸载mysql数据库.系统:windows2007专业版数据库:mysql5.5.621、关闭服务--在service服务中关闭MySQL服务,如下所示:2、卸载MySQL服务--在控制面板删除MySQL程序.3、删除相关文件夹--删除mysql在电脑硬盘上所有文件,位置C:\ProgramFiles\MySQL.--删除C:\Pro......
  • Python接口MongoDB实现接口查询数据库功能
    一、所需工具Python,pymongo,Mongodb,Flask二、安装1、安装Python我这里安装的是 3.8.0版本,输入python-V可以查看当前版本    2、安装pymongo命令行中输入  pip3installpymongo 命令执行即可完成安装。3、服务器安装Mongodb环境:linux系......
  • ruoyi(若依)系统使用SqlServer数据库
    https://blog.csdn.net/op4439/article/details/121469911近期使用若依前后端分离版开发一个公司内部系统,由于指定使用SqlServer数据库,所以采用若依3.7.0版,自己转换脚本及对应查询。具体修改如下:1、admin把mysql引用替换为<dependency><groupId>com.microsoft.sqlserver</g......
  • Linux命令行的输入输出重定向和管道:灵活处理数据的魔法工具
    概要:本文详细介绍了在Linux中使用输入重定向、输出重定向和管道的方法,以及它们在命令行操作中的实用性。通过适当的使用输入输出重定向和管道,我们可以灵活地处理命令的输入和输出,从而提高工作效率。文章通过丰富的示例说明了各种重定向和管道的用法,让读者能够轻松理解和应用这些功......
  • WPF.Basic.数据绑定
    WPF常用五种数据绑定方式 绑定方式一(绑定元素依赖属性)<StackPanel><SliderName="s1"Value="10"Maximum="100"></Slider><TextBlockFontSize="{BindingElementName=s1,Path=Value}"Text="看着我">......
  • c和c++各种类型数据左移溢出对比
    cint:1#include<stdio.h>2main(){3//int4intj=1;//<<31==21474836485//1<<32==16//(1<<32)-1==07//(1<<32)-2==42949672958for(inti=30;i<(1<<5)+1;i......
  • ORM——数据库连接
    在Django中使用mysql数据库:1.创建Mysql数据库,具体创建过程请见mysql文章2.设置Django配置文件DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'ftp','HOST':'172.16.24......