- from ROOT import *
-
- def RecursiveSearch( directory , histograms, maxDepth, path="", depth=0 ):
- if type( directory ) is not TDirectoryFile :
- if type( directory) is not TFile :
- if type( directory ) is TH1D :
- histograms.append( path[:-1] )
- return
-
- if depth > maxDepth : return
-
- for i in range(0,directory.GetListOfKeys().GetEntries()):
- obj = directory.GetListOfKeys().At(i)
- RecursiveSearch( directory.Get( obj.GetName()) , histograms,maxDepth, path + obj.GetName() + "/" , depth+1)
-
- return
-
- def makeDirectories( filename, objects):
- for x in objects:
- output = TFile.Open(filename,'UPDATE')
- directories = x.split('/')
- output.cd()
- layer = output
- path = ""
- for ind in range( 0, len(directories) -1 ) :
- tmpKey = layer.FindKey( directories[ind] )
- if not tmpKey :
- foo = layer.mkdir( directories[ind], directories[ind] )
- layer.cd()
- foo.Write()
- layer.Write()
- layer = foo
- else : layer = tmpKey.ReadObj()
- output.Close("R")
- del output