Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ROOT
- import tempfile
- import os
- import array
- treename = 'mytree'
- branchname = 'mybranch'
- aliasname = 'myalias'
- tmpdir = tempfile.mkdtemp()
- files = []
- files.append(os.path.join(tmpdir, 'f1.root'))
- files.append(os.path.join(tmpdir, 'f2.root'))
- for i, fname in enumerate(files):
- f = ROOT.TFile.Open(fname, 'NEW')
- t = ROOT.TTree(treename, treename)
- t.SetDirectory(f)
- # add alias
- t.SetAlias(aliasname, '{0:d} * {1:s}'.format(i+1, branchname))
- # create branch
- branchvals = array.array('f', [3.1415926])
- branch = t.Branch(branchname, branchvals, "{0:s}/F".format(branchname))
- #branch.Fill()
- t.Fill()
- t.Write("", ROOT.TObject.kWriteDelete)
- f.Close()
- scanExpression = ":".join([branchname, aliasname])
- print 'Scan expression:',scanExpression
- for fname in files:
- print 'Scanning',os.path.basename(fname)
- f = ROOT.TFile.Open(fname)
- getattr(f, treename).Scan(scanExpression)
- print 'Using TChain'
- tc = ROOT.TChain(treename)
- for fname in files: tc.Add(fname)
- tc.Scan(scanExpression)
- print 'Using TChain (add files in reverse)'
- tc = ROOT.TChain(treename)
- for fname in files[::-1]: tc.Add(fname)
- tc.Scan(scanExpression)
Add Comment
Please, Sign In to add comment