diff --git a/scaler_parse.py b/scaler_parse.py new file mode 100755 index 0000000000000000000000000000000000000000..1d1d039a2bdde286b8c288e123c5927d30eaa954 --- /dev/null +++ b/scaler_parse.py @@ -0,0 +1,79 @@ +#!/usr/bin/python + +import argparse + +def get_args(): + '''This function parses and returns arguments passed in''' + parser = argparse.ArgumentParser() + parser.add_argument( + '-r','--runs',type=str,help='Run list',required=True,nargs="+") + parser.add_argument( + '-f','--infile',type=str,help='Scaler list file',required=True) + parser.add_argument( + '-o','--outfile',type=str,help='Output file',required=True) + args = parser.parse_args() + infilename = args.infile + outfilename = args.outfile + runlist = args.runs[0].split(",") + + return runlist, infilename, outfilename + +runlist, infilename, outfilename = get_args() + +print "\nScaler File Name: [ %s ]\n" % infilename +print "\nOutput File Name: [ %s ]\n" % outfilename + +final_runlist = [] +for r in runlist: + minirunlist = r.split("-") + nruns = len(minirunlist) + if nruns == 1: + #print "Run: [%s]" % r + scaler_filename = "replay_coin_scalers_" + r + ".report" + final_runlist.append(scaler_filename) + else: + startrun=int(minirunlist[0]) + endrun=int(minirunlist[1]) + while startrun <= endrun: + #print "MiniRun: [%s]" % startrun + scaler_filename = "replay_coin_scalers_" + str(startrun) + ".report" + final_runlist.append(scaler_filename) + startrun=startrun+1 + +#print final_runlist + +basic_name_array = ["Run Number"] +scaler_name_array = [] +with open(infilename) as fp: + scaler_name_array = fp.read().splitlines() +fp.close() + +of = open(outfilename,'w') +scaler_name_array_run_number = basic_name_array+scaler_name_array +mx = len(max(scaler_name_array_run_number)) +print (" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_name_array_run_number])) +of.write(" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_name_array_run_number])) +of.write("\n") + +for runfile in final_runlist: + with open(runfile) as fp: + runfile_linelist = fp.read().splitlines() + runnumbersplit = runfile.split("_") + runnumbersplit2 = runnumbersplit[3].split(".") + run_number_array=[] + run_number_array.append(runnumbersplit2[0]) + scaler_value_array=[] + for line in runfile_linelist: + parsed_line = line.split(":") + for scaler in scaler_name_array: + if parsed_line[0].rstrip(" ") == scaler: + full_value = parsed_line[1].lstrip() + numerical_value = full_value.split(" ") + scaler_value_array.append(numerical_value[0]) + scaler_value_array_run_number=run_number_array+scaler_value_array + print (" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_value_array_run_number])) + of.write(" ".join(["{:<{mx}}".format(ele,mx=mx) for ele in scaler_value_array_run_number])) + of.write("\n") + fp.close() + +of.close()