|
| 1 | +import argparse |
| 2 | +import os, re |
| 3 | +from glob import glob |
| 4 | +import numpy as np |
| 5 | +import time |
| 6 | + |
| 7 | +def parsing(): |
| 8 | + parser = argparse.ArgumentParser() |
| 9 | + parser.add_argument("-i", "--input_file_template", type=str, default="../data/VME/RecoData/RecoWithTracks/v3/RawDataSaver0CMSVMETiming_RunXXX_0_Raw.root") |
| 10 | + parser.add_argument("-C", "--config", type=str, default='config/FNAL_TB_1904/VME_v1.txt', help="Config file") |
| 11 | + parser.add_argument("-S", "--save_loc", type=str, default='../results/online_dqm/', help="Saving location") |
| 12 | + parser.add_argument("-g", "--group", type=int, default=5, help="Number of runs to be grouped") |
| 13 | + args = parser.parse_args() |
| 14 | + return args |
| 15 | + |
| 16 | +def getDirsRunN(s): |
| 17 | + out = re.search('[0-9]+_DQM', s) |
| 18 | + if hasattr(out, 'group'): |
| 19 | + return int(out.group(0)[:-4]) |
| 20 | + else: |
| 21 | + return np.nan |
| 22 | + |
| 23 | +def getFileRunN(s): |
| 24 | + out = re.search('Run[0-9]+', s) |
| 25 | + if hasattr(out, 'group'): |
| 26 | + return int(out.group(0)[3:]) |
| 27 | + else: |
| 28 | + return np.nan |
| 29 | + |
| 30 | +args = parsing() |
| 31 | +if args.save_loc[-1] != '/': |
| 32 | + args.save_loc += '/' |
| 33 | + |
| 34 | +while(True): |
| 35 | + dir_list = glob(args.save_loc + '*') |
| 36 | + last_run_processed = int(np.nanmax(map(getDirsRunN, dir_list))) |
| 37 | + file_list = glob(args.input_file_template.replace('XXX', '*')) |
| 38 | + newest_run = int(np.nanmax(map(getFileRunN, file_list))) |
| 39 | + |
| 40 | + if newest_run - last_run_processed > args.group+1: |
| 41 | + cmd = 'python DQM_SiPM.py -C ' + args.config |
| 42 | + cmd += ' -S ' + args.save_loc |
| 43 | + cmd += ' -i ' + args.input_file_template |
| 44 | + cmd += ' -N {} {}'.format(last_run_processed + 1, newest_run - 1) |
| 45 | + os.system(cmd) |
| 46 | + else: |
| 47 | + print time.time(), 'Nothing to be done' |
| 48 | + time.sleep(5) |
0 commit comments