#! /usr/bin/env python
###############################################################################
# Loop on all detectors/tag/defect tag directories to execute a shell command
#
# - -location km3dq_perf
# Loop on all detectors [det] km3dq_perf/[site]/[det]/
#
# - - location km3dq_perf_dq_tag -t [dq tag]
# Loop on all detectors [det] km3dq_perf/[site]/[det]/[dq tag]
#
# - -location km3dq_lw_db
# Loop on all detectors [det] km3dq_lw_db/[site]/[det]/
#
# - -location km3dq_lw_db_defect_tag -d [defect tag]
# Loop on all detectors [det] km3dq_lw_db/[site]/[det]/[defect tag]
import os
import sys
import argparse
from km3dq_common.config_library import configure_dataquality_tag
###############################################################################
[docs]
parser = argparse.ArgumentParser(description="")
parser.add_argument(
"-s",
"--site",
dest="site",
required=True,
help=("Site. List of detectors derived from the DQ tag"),
action="store",
)
parser.add_argument(
"-t",
"--dq_tag",
dest="dq_tag",
default="",
required=True,
help="Data-quality tag.",
action="store",
)
parser.add_argument(
"-d",
"--defect_tag",
dest="defect_tag",
default="",
help="Defect tag.",
action="store",
)
parser.add_argument(
"-l",
"--location",
dest="location",
default="",
required=True,
help=(
"Location: km3dq_perf, km3dq_perf_dq_tag, "
"km3dq_lw_db, km3dq_lw_db_defect_tag"
),
action="store",
)
parser.add_argument(
"-e", "--execute", dest="execute", help=("Execute"), action="store_true"
)
[docs]
args = parser.parse_args()
[docs]
options = args.__dict__
[docs]
dq_tag = configure_dataquality_tag(options["dq_tag"])
[docs]
det_list = dq_tag["det"][site]
for i_det in det_list:
print(f"{i_det}===========")
if options["location"] == "km3dq_perf":
[docs]
dir_path = (
"/pbs/home/t/trocme/KM3Net/infrastructure/km3dq_perf/" f"{site}/{i_det}"
)
# To be edited by hand for your purposes
cmd = (
f"cd {dir_path};"
"mv mass_processing mp1_0_1-d2024_1-g24;"
"mv mass_processing_veto_sparks mp1_0_1-d2024_1-g24_vsparks;"
)
elif all((options["location"] == "km3dq_perf_dq_tag", options["dq_tag"] != "")):
dir_path = (
"/pbs/home/t/trocme/KM3Net/infrastructure/km3dq_perf/"
f"{site}/{i_det}/{options['dq_tag']}"
)
# To be edited by hand for your purposes
miss_dst_file = f"{dir_path}/processing/missing_dst.txt"
if os.path.exists(miss_dst_file) is False:
print(f"{miss_dst_file} missing")
continue
cmd = (
f"cd {dir_path};"
f"sed -e 's/hpss/sps/g' {miss_dst_file} > tmp;"
f"mv tmp {miss_dst_file}"
)
elif options["location"] == "km3dq_lw_db":
dir_path = (
"/pbs/home/t/trocme/KM3Net/infrastructure/km3dq_lw_db/" f"{site}/{i_det}"
)
# To be edited by hand for your purposes
cmd = f"cd {dir_path}/Defects;mv def-neutrino2024 d2024_0"
elif all(
(options["location"] == "km3dq_lw_db_defect_tag", options["defect_tag"] != "")
):
dir_path = (
"/pbs/home/t/trocme/KM3Net/infrastructure/km3dq_lw_db/"
f"{site}/{i_det}/Defects/{options['defect_tag']}"
)
# To be edited by hand for your purposes
cmd = f"cd {dir_path};ls"
else:
print("Wrong -l argument")
sys.exit()
print(f"Directory: {dir_path}")
print(f"Command: {cmd}")
if options["execute"]:
os.popen(cmd)
print("Done!")
if first:
confirm = input("Is it as expected [YES/NO]?)")
if confirm == "YES":
first = False
else:
sys.exit()
else:
print("No execution. Choose -e if you want to.")