首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将C++转换为pyroot:如何从pyroot中的文件中获取文件对象?

将C++转换为pyroot:如何从pyroot中的文件中获取文件对象?
EN

Stack Overflow用户
提问于 2018-07-20 17:56:24
回答 1查看 1.9K关注 0票数 1
  1. 我正在做中微子研究,要求我通过叠加直方图来进行数据分析。我们正在使用根。我目前正在尝试将以下代码从C++转换为pyroot: #包含"TFile.h“#包括"TCanvas.h”#包括"TString.h“void (){//从文件5A_data TFile* file =TFile::Open(”5A_data“)中获取一个名为5A_data的直方图;tH1* hist = file->Get(" vtx_0 ");TCanvas*画布=新TCanvas("c1",”动态填充示例“),200,10,700,500);hist->5A_data();
  2. 这是我到目前为止用python重新编写的代码: 从根导入TFile、TH1F、TCanvas、TString def myscript():#get vtx_0 from 5A_data TFile file1 = open("5A_data") TH1F hist =
  3. 我对Python的接触有限。上面的Python代码主要是通过查看各种在线示例创建的,因此我甚至不确定到目前为止所写的内容是否正确。
  4. 我最需要的,也是我在网上找不到的,是如何在C++中将下面的一行隐藏在Python中。 hist = file->Get("vtx_0");

一个人是怎么做到的?

  1. 此外,如果您看到我到目前为止编写的Python代码有什么问题,请告诉我我做错了什么,以及如何修复它。谢谢。
EN

回答 1

Stack Overflow用户

发布于 2018-07-20 18:34:05

变量声明不需要类型,类似这样的内容可能会让您开始:

代码语言:javascript
复制
from ROOT import TFile, TH1F, TCanvas, TString
def myscript():
    tf = TFile("5A_data")
    print(dir(tf))
    #tree = tf.Get("vtx_0")
    fo = tf.GetObject("vtx_0")
    print(dir(fo))
    for x in fo:
        print(x)
    import pdb;pdb.set_trace()

参考资料:

  • pyroot.html
  • http://lcgapp.cern.ch/project/pi/Examples/PyAIDAProxy/examples/readTree.py
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51448012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档