116def container_sizes(sTree,perEvent=False):
117 counter = {}
118 print("name ZipBytes[MB] TotBytes[MB] TotalSize[MB]")
119 counter['total']=[0,0,0]
120 for l in sTree.GetListOfLeaves():
121 b = l.GetBranch()
122 nm = b.GetName()
123 print("%30s :%8.3F %8.3F %8.3F "%(nm,b.GetZipBytes()/1.E6,b.GetTotBytes()/1.E6,b.GetTotalSize()/1.E6))
124 bnm = nm.split('.')[0]
125 if bnm not in counter: counter[bnm]=[0,0,0]
126 counter[bnm][0]+=b.GetZipBytes()/1.E6
127 counter[bnm][1]+=b.GetTotBytes()/1.E6
128 counter[bnm][2]+=b.GetTotalSize()/1.E6
129 counter['total'][0]+=b.GetZipBytes()/1.E6
130 counter['total'][1]+=b.GetTotBytes()/1.E6
131 counter['total'][2]+=b.GetTotalSize()/1.E6
132 print("---> SUMMARY <---------------")
133 N = sTree.GetEntries()/1000.
134 if perEvent:
135 print(" name ZipBytes[kB]/ev TotBytes[kB]/ev TotalSize[kB]/ev")
136 else:
137 print(" name ZipBytes[MB] TotBytes[MB] TotalSize[MB]")
138 sorted_c = sorted(counter.items(), key=operator.itemgetter(1))
139 sorted_c.reverse()
140 for i in range(len(sorted_c)):
141 x = sorted_c[i][0]
142 if perEvent:
143 print("%30s :%8.3F %8.3F %8.3F"%(x,counter[x][0]/N,counter[x][1]/N,counter[x][2]/N))
144 else:
145 print("%30s :%8.3F %8.3F %8.3F"%(x,counter[x][0],counter[x][1],counter[x][2]))
146