Newer
Older
TB_Chris / Kepler / GangaPlugin / Lib / .svn / text-base / RecursiveSearch.py.svn-base
  1. from ROOT import *
  2.  
  3. def RecursiveSearch( directory , histograms, maxDepth, path="", depth=0 ):
  4. if type( directory ) is not TDirectoryFile :
  5. if type( directory) is not TFile :
  6. if type( directory ) is TH1D :
  7. histograms.append( path[:-1] )
  8. return
  9. if depth > maxDepth : return
  10. for i in range(0,directory.GetListOfKeys().GetEntries()):
  11. obj = directory.GetListOfKeys().At(i)
  12. RecursiveSearch( directory.Get( obj.GetName()) , histograms,maxDepth, path + obj.GetName() + "/" , depth+1)
  13. return
  14.  
  15. def makeDirectories( filename, objects):
  16. for x in objects:
  17. output = TFile.Open(filename,'UPDATE')
  18. directories = x.split('/')
  19. output.cd()
  20. layer = output
  21. path = ""
  22. for ind in range( 0, len(directories) -1 ) :
  23. tmpKey = layer.FindKey( directories[ind] )
  24. if not tmpKey :
  25. foo = layer.mkdir( directories[ind], directories[ind] )
  26. layer.cd()
  27. foo.Write()
  28. layer.Write()
  29. layer = foo
  30. else : layer = tmpKey.ReadObj()
  31. output.Close("R")
  32. del output