How to deal with the errors about GetEntry

Hi,
I have some problems while trying to copy entries from the branch “D0_M” of the old tree ‘t0’ and put them into a new tree named ‘t1’.

here is the error output:
Traceback (most recent call last):
File “/users/c/Desktop/simp.py”, line 18, in
t0.GetEntry(entry)
TypeError: int TTree::GetEntry(Long64_t entry, Int_t getall = 0) =>
TypeError: could not convert argument 1 (int/long conversion expects an integer object)

here is the code:
from array import array

import ROOT

f0 = ROOT.TFile.Open(“p1.root”,“READ”)

t0 = f0.Get(“DecayTree”)

t0.SetBranchStatus(“*”,0)

t0.SetBranchStatus(“D0_M”,1)

f1 = ROOT.TFile.Open(“simplify.root”, “RECREATE”)

t1 = ROOT.TTree(“tree”, “newt”)

Provide a one-element array, so ROOT can read data from this memory.

var = array(‘f’, [ 0 ])

t1.Branch(“branch0”, var, “mass”)

for entry in t0:

t0.GetEntry(entry)

t1.Fill()

Now write the header

t1.Write()

Thanks in advance,

Cheers,
Lisa

Check out the first PyROOT example on the TTree documentation (search for PyROOT on that page); it shows exactly how to get values from the tree the way you are trying (basically x = entry.branch_name inside the loop, no need for GetEntry); you can find more there, as well as in the tree Tutorials.

Thanks for your reply

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.