Common getter function to retrieve inputs by keyword
Definition at line 96 of file Input.py.
97 '''Common getter function to retrieve inputs by keyword'''
103 paths = os.getenv(
"ArtInFile",
None)
106 source =
"data" if "data" in paths
else "mc"
108 for key,value
in {
'RAW':
'BS',
'HITS':
'HITS',
'RDO':
'RDO',
'ESD':
'ESD',
'AOD':
'AOD'}.
items():
112 data_object = {
"source":source,
"format":format,
"paths":[paths]}
115 if keyword
not in data.keys():
116 log.error(
'Failed to find keyword "%s" in input JSON %s',keyword, input_json)
119 data_object = data[keyword]
124 if data_object[
"format"] ==
"BS":
128 with open(sys.argv[0],
'r')
as f:
130 if "# art-type:" in line:
131 grid = line.split()[2]==
"grid"
132 if "# art-input-nfiles:" in line:
133 Nfiles =
int(line.split()[2])
135 data_object[
"paths"] = [path
for path
in data_object[
"paths"]
if "/eos/" in path]
138 for i
in range(Nfiles):
139 f = data_object[
"paths"][i].
split(
'/')[-1]
140 if not (os.path.exists(f))
and not os.environ.get(
'TRIGVALSTEERING_DRY_RUN'):
141 print(f
'copying {data_object["paths"][i]}')
142 result = subprocess.run([
'xrdcp',f
'root://eosatlas.cern.ch/{data_object["paths"][i]}',
'.'])
143 if result.returncode != 0:
144 raise Exception(
"xrdcp failed, please check you have a valid kerberos ticket")
145 local_files.append(f)
146 data_object[
"paths"] = local_files
148 data_object[
"paths"] = [path
for path
in data_object[
"paths"]
if "/cvmfs/" in path]
150 result = TrigValInput(
152 data_object[
"source"],
153 data_object[
"format"],
157 if result.is_valid():
160 log.error(
'Failed to create a valid input object')