8 from array
import array
13 histfilename = histfile
if histfile
else "hist.root"
17 for filename
in xAODFiles:
18 cmd = [
'checkxAOD', filename]
19 outlog = subprocess.Popen(cmd, stdout = subprocess.PIPE)
20 lines =
str(outlog.communicate()).
split(
"\\n")
25 if line.startswith(
"CSV"):
26 domainlist = lines[iline+1].strip().
split(
",")
27 domainsize = lines[iline+2].strip().
split(
",")
28 domaindict = dict(zip(domainlist, domainsize))
30 sizes.append(
float(domaindict[
'Total']))
33 hfile = ROOT.TFile( histfilename,
'UPDATE',
'ROOT file with histograms' )
39 hsize = ROOT.TH1F(
'hist PHYSLITE PHYS AOD event size',
'hist PHYSLITE PHYS AOD event size', len(sizes), -0.5, len(sizes)-0.5 )
40 for i
in range(0,len(sizes)):
41 hsize.Fill(i, sizes[i])
45 xbins = [*
range(len(sizes))]
47 for i
in range(len(sizes)):
51 grsize = ROOT.TGraph(len(sizes),x,y)
52 grsize.SetTitle(
'graph PHYSLITE PHYS AOD file size')
53 grsize.SetName(
'graph PHYSLITE PHYS AOD file size')
57 xbinsLabel = [
'PHYSLITE %3.1f'%sizes[0],
58 'PHYS %3.1f'%sizes[1],
59 'AOD %3.1f'%sizes[2] ]
61 graxis = grsize.GetXaxis()
62 for ibin
in range(0,len(sizes)):
63 tmpbin = graxis.FindBin(ibin)
64 graxis.SetBinLabel(tmpbin, xbinsLabel[ibin])
73 parser = argparse.ArgumentParser(
74 description=
"Extracts a few basic quantities from the xAOD file and dumps them into a hist ROOT file")
75 parser.add_argument(
"--xAODFiles", help=
"xAOD filenames (comma separated) for size/event check",
76 action=
"store", default=
None)
77 parser.add_argument(
"--outputHISTFile", help=
"histogram output filename",
78 action=
"store", default=
None)
79 parser.add_argument(
"--addgraphlabel", help=
"Add PHYSLITE PHYS AOD x-Axis graph label and size",
80 action=
"store_true", default=
False)
82 args = parser.parse_args()
89 filelist = args.xAODFiles.split(
',')
92 checkxAODSize(filelist, args.outputHISTFile, args.addgraphlabel)
96 if __name__ ==
"__main__":