5 import matplotlib.pyplot
as plt
9 from root_numpy
import hist2array
11 from utils
import get_vertices
15 parser = argparse.ArgumentParser(description=
'Plot data dumped to ROOT file.')
16 parser.add_argument(
'-i',
'--input', help=
"Input file", default=
'datadump_hist.root')
17 parser.add_argument(
'-e',
'--event', help=
"Event index", default=
'0')
18 parser.add_argument(
'-v',
'--view', help=
"view index", default=
'')
19 parser.add_argument(
'-m',
'--module', help=
"LArSoft module name", default=
'datadump')
20 args = parser.parse_args()
22 if args.view !=
'': view_base =
'view_' + args.view
25 file0 = TFile(args.input)
26 raw_keys = [k.GetName()
for k
in file0.Get(args.module).GetListOfKeys()
if view_base +
'_raw' in k.GetName()]
27 pdg_keys = [k.GetName()
for k
in file0.Get(args.module).GetListOfKeys()
if view_base +
'_pdg' in k.GetName()]
28 dep_keys = [k.GetName()
for k
in file0.Get(args.module).GetListOfKeys()
if view_base +
'_deposit' in k.GetName()]
30 ev_idx =
int(args.event)
31 if ev_idx >= len(raw_keys):
32 print 'event index out of range' 34 print len(raw_keys),
'keys in the file, reading event key:', raw_keys[ev_idx]
36 dep = hist2array(file0.Get(args.module +
'/' + dep_keys[ev_idx]))
37 raw = hist2array(file0.Get(args.module +
'/' + raw_keys[ev_idx]))
38 mc = hist2array(file0.Get(args.module +
'/' + pdg_keys[ev_idx]))
43 vtx_hadr = vtx_list[:,2] & 1
44 vtx_pi0 = (vtx_list[:,2] >> 1) & 1
45 vtx_decay = (vtx_list[:,2] >> 2) & 1
46 vtx_conv = (vtx_list[:,2] >> 3) & 1
47 vtx_eend = (vtx_list[:,2] >> 4) & 1
48 vtx_list[:,2] = vtx_hadr + 2*vtx_pi0 + 3*vtx_decay + 4*vtx_conv + 5*vtx_eend
49 print 'all vtx:', np.count_nonzero(vtx_list[:,2]), \
50 'hadr:', np.count_nonzero(vtx_hadr), \
51 'pi0:', np.count_nonzero(vtx_pi0), \
52 'decay:', np.count_nonzero(vtx_decay), \
53 'conv:', np.count_nonzero(vtx_conv), \
54 'eend:', np.count_nonzero(vtx_eend)
56 fig, ax = plt.subplots(1, 3, figsize=(36, 10))
58 cs = ax[0].pcolor(np.transpose(pdg), cmap=
'gist_ncar')
59 ax[0].scatter(vtx_list[:,0]+0.5, vtx_list[:,1]+0.5, s=50, c=vtx_list[:,2], cmap=
'rainbow', alpha=0.75)
60 ax[0].set_title(
'PDG')
61 fig.colorbar(cs, ax=ax[0])
63 cs = ax[1].pcolor(np.transpose(dep), cmap=
'jet')
64 ax[1].set_title(
'MC truth deposit')
65 fig.colorbar(cs, ax=ax[1])
67 cs = ax[2].pcolor(np.transpose(raw), cmap=
'jet')
68 ax[2].scatter(vtx_list[:,0]+0.5, vtx_list[:,1]+0.5, s=50, c=vtx_list[:,2], cmap=
'rainbow', alpha=0.75)
69 ax[2].set_title(
'ADC')
70 fig.colorbar(cs, ax=ax[2])
75 if __name__ ==
"__main__":