diff --git a/Phys/B2KShh/job/look_in_file.py b/Phys/B2KShh/job/look_in_file.py new file mode 100644 index 0000000..25a91b4 --- /dev/null +++ b/Phys/B2KShh/job/look_in_file.py @@ -0,0 +1,58 @@ +import sys +import ROOT as r + +def getall(d, basepath="/"): + "Generator function to recurse into a ROOT file/dir and yield (path, obj) pairs" + keylist = d.GetListOfKeys() + for key in keylist: + kname = key.GetName() + if key.IsFolder() and d.Get(kname).ClassName() == 'TDirectoryFile' : + for i in getall(d.Get(kname), basepath+kname+"/"): + yield i + else: + yield basepath+kname, d.Get(kname) + +def getLeaves(t): + keylist = t.GetListOfLeaves() + for key in keylist: + #print key + yield t.GetName() + '/' + key.GetName(), key + +def getAllLeaves(f): + for k, o in getall(f): + #print o.ClassName(), k + yield k, o + if 'TTree' in o.ClassName(): + for l, lo in getLeaves(o): + #print lo.ClassName(), l + yield k+'/'+l, lo + + +fname = str(sys.argv[1]) +basepath = '/disk/users/elena/B2KShh/ntuples/jobs/' + +f = r.TFile(basepath + fname, 'read') + +# dirs = [] +# print '%s :' % fname +# for k in f.GetListOfKeys(): +# print '\t %s :' % k.GetName() +# dirs.append(k.GetName()) +# f.cd(k.GetName()) +# f.cd() +# for item in r.gDirectory.GetList(): +# print '\t\t %s' % item.GetName() + +#for k, o in getall(f): +# print o.ClassName(), k + +leaves = [] +for k, o in getAllLeaves(f): + print o.ClassName(), k + leaves.append((k, o)) + +polarity = [l for l in leaves if 'polarity'.lower() in l[0].lower()] +polarity += [l for l in leaves if 'pol'.lower() in l[0].lower()] +polarity += [l for l in leaves if 'magnet'.lower() in l[0].lower()] +polarity += [l for l in leaves if 'mag'.lower() in l[0].lower()] +#polarity += [l for l in leaves if 'h1'.lower() in l[0].lower()]