[英]Converting C++ to pyroot: How to get a file object from a file in pyroot?
我正在進行中微子研究,需要我通過疊加直方圖進行數據分析。 我們正在使用ROOT。 我目前正在嘗試將以下代碼從C ++轉換為pyroot:
#include "TFile.h" #include "TH1F.h" #include "TCanvas.h" #include "TString.h" void myscript() { //get a histogram named vtx_0 from the file 5A_data TFile* file = TFile::Open("5A_data"); TH1F* hist = file->Get("vtx_0"); TCanvas* canvas = new TCanvas("c1", "Dynamic Filling Example", 200, 10, 700,500); hist->Draw(); }
這是我到目前為止用python重新編寫的代碼:
from ROOT import TFile, TH1F, TCanvas, TString def myscript(): #get vtx_0 from 5A_data TFile file1 = open("5A_data") TH1F hist =
我對Python的接觸有限。 上面的Python代碼主要是通過查看各種在線示例創建的,因此,我什至不確定我到目前為止編寫的內容是否正確。
我最需要和不能在網上找到的是如何將C ++中的下一行隱藏到Python中的等效行中。
TH1F* hist = file->Get("vtx_0");
如何做到這一點?
變量聲明不需要類型,這樣的操作可能會讓您入門:
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()
引用:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.