2016-08-07 13 views
0

pyrootを使用してルートファイルを読み始めましたが、jupyterノートブックを使用してファイルからデータを読み取ることができませんでした。それが働いていると私はエントリを印刷する場合、私は私が持っているのentiresの右の数を取得ここまでPyRootを使用してルート内のTTreeを読み取る

import ROOT as root 
import numpy as np 

f = root.TFile("RealData.root") 
myTree = f.Get("tree") 

entries = myTree.GetEntriesFast() 

:私はこのように始まっ

enter image description here

:ここTBrowserがどのように見えるかですファイル。しかし、ツリーから実際のデータを読む方法(event_number、n_channelsなど)は分かりませんmyTree.eventsmyTree.event_numberのようなものを試すと、カーネルの動作が停止します。ツリーからデータを読み込むにはどうすればよいですか?私はそれが任意の特定の問題を引き起こすかどうかを知るために働くjupyter方法について十分に知らない

import ROOT as root 
import numpy as np 

f = root.TFile("RealData.root") 
myTree = f.Get("tree") 
for entry in myTree:   
    # Now you have acess to the leaves/branches of each entry in the tree, e.g. 
    events = entry.events 

答えて

0

通常pyROOTで、あなただけのような何かを行うことができます。通常のPythonインタプリタを使用して同じスクリプトを実行しようとしましたか?

+0

TypeError:要求されたクラス 'ROOT :: Event'が存在しません – Silviu

+0

EventクラスのROOTディクショナリがありませんように聞こえます(これはあなたが使用していないカスタムクラスですコアルート1?)。 'root.gInterpreter.GenerateDictionary(" \ path \ to \ Event.h ")'のような行を追加して、ROOTが即座に辞書を生成できるようにする必要があります。またはhttp://wlav.web.cern.ch/wlav/pyroot/tpymyclass.htmlをご覧ください。 –