2016-08-07 4 views
0

pyroot를 사용하여 루트 파일을 읽기 시작했으며 jupyter 노트북을 사용하여 파일에서 데이터를 읽을 수 없습니다.PyRoot를 사용하여 루트에서 TTree 읽기

import ROOT as root 
import numpy as np 

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

entries = myTree.GetEntriesFast() 

까지 그것이 작동하고 내가 항목을 인쇄하는 경우 난에있는 entires의 오른쪽 번호를 여기까지 :

enter image description here

내가 같이 시작 : 여기처럼 TBrowser는 모습입니다 파일. 하지만 트리에서 실제 데이터를 읽는 법을 모르겠습니다 (event_number, n_channels 등). myTree.events 또는 myTree.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과 함께, 당신은 같은 것을 할 수 있습니다. 일반 파이썬 인터프리터를 사용하여 동일한 스크립트를 실행 해 보았습니까?

+0

이 오류가 발생하는 경우 TypeError : 요청한 클래스 'ROOT :: Event'가 존재하지 않습니다. – Silviu

+0

Event 클래스의 ROOT 사전이 누락 된 것 같습니다 (사용자 클래스가 아니라고 가정합니다. 핵심 루트 하나?). 'root.gInterpreter.GenerateDictionary ("\ path \ to \ Event.h")'와 같은 라인을 추가 할 수 있어야합니다. ROOT를 사용하여 사전을 즉시 생성 할 수 있습니다. 또는 http://wlav.web.cern.ch/wlav/pyroot/tpymyclass.html을보십시오. –