26 def get_argument_parser():
27 """Function returning the argument parser. Done this way for the automatic
28 documentation in sphinx"""
31 parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
32 parser.add_argument(
"filename", help=
"Filename containing the run information, "
33 "one run per line with the values separated by whitespace")
41 if __name__ ==
"__main__":
42 parser = get_argument_parser()
43 args = parser.parse_args()
44 if not os.path.exists(args.filename):
45 B2FATAL(f
"Input filename {args.filename} does not exist")
53 with open(args.filename)
as f:
54 for i, line
in enumerate(f, 1):
66 exp, run, runtype, starttime, stoptime, receivedNevent, acceptedNevent,
67 sentNevent, runlength, trigger_rate, pxd, svd, cdc, top, arich, ecl,
68 klm, badrun = line.split()
71 info.setRunType(int(runtype))
72 info.setStartTime(int(starttime))
73 info.setStopTime(int(stoptime))
74 info.setReceivedNevent(int(receivedNevent))
75 info.setAcceptedNevent(int(acceptedNevent))
76 info.setSentNevent(int(sentNevent))
77 info.setRunLength(int(runlength))
78 info.setTriggerRate(double(trigger_rate))
79 info.setBelle2Detector(*[int(e)
for e
in (pxd, svd, cdc, top, arich, ecl, klm)])
80 info.setBadRun(int(badrun))
83 B2DEBUG(100, f
"Exp: {exp}\tRun: {run}\t RunType: {runtype} ...")
86 except Exception
as e:
87 B2ERROR(f
"Problem reading line {i}: {e}. Skipping ...")
97 B2INFO(f
"Imported {imported} RunInfo objects")
99 B2FATAL(f
"{errors} errors occured")