print "typemap :", len(typemap), "header : ", len(header) # we should not have added any variable raise Exception # should not happen # create the branches for var in header: type=typemap[var] if type=="float": maps [ var ] = array.array('f',[0.0]) tree.Branch(var , maps[var], '% s/F' % (var)) elif type=="int": maps [ var ] = array.array('i',[0]) tree.Branch(var , maps[var], '% s/I' % (var)) if debug: tree.GetListOfBranches().Print() # now fill the tree ientry=0 nvar=len(header) for entry in allentries: for ivar in range(nvar): varval=entry[ivar] varname=header[ivar] type=typemap[varname] if varname=="Label": if varval=="s": varval=1 elif varval=="b": varval=0 else:
def get_branch_size(b): result = 0 l = b.GetListOfBranches() for i in xrange(l.GetLast() + 1): sub = l.At(i) result += sub.GetTotalSize() return result * 1.0 f = TFile(sys.argv[1], "READ") trees = ['CollectionTree', 'RunMetadataTree'] for tree in trees: t = TTree() t = f.Get(tree) branchnames = map(lambda branch: branch.GetName(), t.GetListOfBranches()) MB = 1e6 GB = 1e9 zipbytes = t.GetZipBytes() # returns compressed size. names = {} sizes = {} for b in branchnames: branch = t.GetBranch(b) if b in names.keys(): names[b] += 1 #print "names[b]=", names[b] continue s = get_branch_size(branch) names[b] = 1