Guest User

Untitled

a guest
Jun 19th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. import ROOT
  2. import tempfile
  3. import os
  4. import array
  5.  
  6. treename = 'mytree'
  7. branchname = 'mybranch'
  8. aliasname = 'myalias'
  9.  
  10. tmpdir = tempfile.mkdtemp()
  11.  
  12. files = []
  13. files.append(os.path.join(tmpdir, 'f1.root'))
  14. files.append(os.path.join(tmpdir, 'f2.root'))
  15.  
  16. for i, fname in enumerate(files):
  17. f = ROOT.TFile.Open(fname, 'NEW')
  18. t = ROOT.TTree(treename, treename)
  19. t.SetDirectory(f)
  20. # add alias
  21. t.SetAlias(aliasname, '{0:d} * {1:s}'.format(i+1, branchname))
  22. # create branch
  23. branchvals = array.array('f', [3.1415926])
  24. branch = t.Branch(branchname, branchvals, "{0:s}/F".format(branchname))
  25. #branch.Fill()
  26. t.Fill()
  27. t.Write("", ROOT.TObject.kWriteDelete)
  28. f.Close()
  29.  
  30.  
  31. scanExpression = ":".join([branchname, aliasname])
  32. print 'Scan expression:',scanExpression
  33. for fname in files:
  34. print 'Scanning',os.path.basename(fname)
  35. f = ROOT.TFile.Open(fname)
  36. getattr(f, treename).Scan(scanExpression)
  37.  
  38. print 'Using TChain'
  39. tc = ROOT.TChain(treename)
  40. for fname in files: tc.Add(fname)
  41. tc.Scan(scanExpression)
  42.  
  43. print 'Using TChain (add files in reverse)'
  44. tc = ROOT.TChain(treename)
  45. for fname in files[::-1]: tc.Add(fname)
  46. tc.Scan(scanExpression)
Add Comment
Please, Sign In to add comment