Hi,
I wrote a simple script in python where I tried to fill a tree branch with an array that has two entries, but only the first entry in filled into the tree branch. The code is the following:
import ROOT as root
import numpy as np
from array import array
file = root.TFile.Open("tree_tester.root", "RECREATE")
tree = root.TTree("tree","tree")
myvar = array('i')
myvar.append(2)
myvar.append(4)
tree.Branch('myvar', myvar, 'myvar/I')
tree.Fill()
tree.Write()
So, how can I create and fill a tree branch with all the array elements?
Hi i solved this with:
myvar = array('d', [0])
tree.Branch('myvar', myvar, 'myvar/D')
for i in range(10):
myvar[0] = float(i**2)
tree.Fill()
But I have another question, if a wanted to fill the tree entry with an array with like two entries, how could i do it?
Hello,
You can proceed in a similar way, you create an array of size two and you define it as a branch.
You can find examples here:
https://root.cern.ch/doc/master/classTTree.html
If you look for the PyROOT box, it will tell you how you need to call Branch to achieve what you want.
1 Like