7 if __name__==
"__main__":
10 parser = argparse.ArgumentParser(prog=
"l1calo-dq-file",description=
"Tries to obtain a path to a DQ HIST file",formatter_class=argparse.ArgumentDefaultsHelpFormatter)
11 parser.add_argument(
"run",help=
"run number")
12 parser.add_argument(
"stream",nargs=
'?',default=
"express_express",help=
"stream name")
13 parser.add_argument(
"--bulk",action=
'store_true',help=
"Look for bulk processing (f-tags, not x-tags)")
14 args = parser.parse_args()
15 files = glob.glob(f
"/eos/atlas/atlastier0/rucio/*/{args.stream}/*{args.run}/*merge.HIST.{'f' if args.bulk else 'x'}*/*")
23 folders = glob.glob(f
"/eos/atlas/atlastier0/rucio/*/{args.stream}/*{args.run}")
25 print(
"Cannot determine project for run",args.run,file=sys.stderr)
27 project = folders[0].
split(
"/")[5]
28 pattern = f
"{project}:{project}.{int(args.run):08}.{args.stream}.merge.HIST.{'f' if args.bulk else 'x'}*"
30 datasets = [d
for d
in subprocess.run([
"rucio",
"list-dids",
"--short", pattern],stdout=subprocess.PIPE).stdout.decode(
"utf-8").
split(
'\n')
if d !=
'']
31 except FileNotFoundError:
32 print(
"No file found. 'lsetup rucio' if you want to look further for the files",file=sys.stderr)
34 files = [f.split(
",")[0]
for f
in subprocess.run([
"rucio",
"list-files",
"--csv"]+datasets,stdout=subprocess.PIPE).stdout.decode(
"utf-8").
split(
'\n')
if f!=
'']
36 print(
"files:",*files,file=sys.stderr)
38 filePaths = [f[29:]
for f
in subprocess.run([
"rucio",
"list-file-replicas",
"--pfns",
"--rses",
"CERN-PROD_DATADISK"]+files,stdout=subprocess.PIPE).stdout.decode(
"utf-8").
split(
'\n')]
39 filePaths = [f
for f
in filePaths
if f !=
'']
41 print(
"filePaths:",*filePaths,file=sys.stderr)