PyROOTのTips

pyrootを起動したときにもrootlogon.Cとかを読む

別にrootlogon.Cじゃなくても多分任意のCルートマクロを読めると思う。

ROOT.gROOT.Macro(os.path.expanduser("~/soft/root/tutorials/rootlogon.C"))

TreeのBranchを自動で全部イテレートする

f = ROOT.TFile("treefile.root")
t = f.Get("tree")

oa = t.GetListOfBranches()

namelst = []
for i in range(oa.GetEntries()):
    namelst.append(oa.At(i).GetName())

for i in range(10):
    print "--- entry %(i)d ---"%locals()
    t.GetEntry(i)
    for name in namelst:
        print name, " = ", getattr(t, name)

TreeのBranchが"x","xerr"とかだったら

--- entry 0 ---
x = 0.5
xerr = 0.1
--- entry 1 ---
x = 1.5
xerr = 0.2
--- entry 2 ---
...

とか出る。