-
Whitney Armstrong authored
modified: db2/auto_standard_coin.kinematics modified: db2/csv_run_count_list.json modified: db2/csv_run_list_extra.json modified: db2/hms_run_count_list.json modified: db2/run_list_coin.json modified: db2/shms_run_count_list.json modified: scripts/good_coin_counter3.cxx
Whitney Armstrong authoredmodified: db2/auto_standard_coin.kinematics modified: db2/csv_run_count_list.json modified: db2/csv_run_list_extra.json modified: db2/hms_run_count_list.json modified: db2/run_list_coin.json modified: db2/shms_run_count_list.json modified: scripts/good_coin_counter3.cxx
do_good_coin 4.27 KiB
#!/bin/bash
function print_the_help {
echo "USAGE: do_good_coin -c count_goal [-r run_number] [-n nevents]"
echo "OPTIONS: "
echo " -c,--count count goal. "
echo " -I,--no-update Don't update run info or charge goals. Also set when count goal = 0."
echo " -r,--run run number [default: most current run]"
echo " -n,--nevents Number of events to replay. [default: 100000, full:-1]"
echo " -h,--help print help"
echo " "
echo " This script will do the following: "
echo " 1. Replay the data using the latest run and 100k events if not specified. "
echo " 2. Run the good event counters"
echo " 3. Update the charge goal on the blue screen (on the big display)."
echo " 4. Fill a json database with useful run information."
echo " db2/run_list.json (read only)"
echo " db2/run_list_extra.json"
echo " db2/run_count_list.json"
echo " "
echo " Note the replay used is **not the standard hcana**. It has been modified to"
echo " pause when it reaches the end of the coda file unless a coda end-of-run event,"
echo " is read or nevents has been processed. An end-of-run event is produced when "
echo " stop is pressed in the DAQ GUI."
echo " "
echo " Also, a full replay can be started soon after a run start. After the first coda "
echo " events are written to disk, and using the option '-n -1' the full replay "
echo " will only stop at the end of run event."
echo " "
echo " Finally, the output ROOT file can also be read while it is being written. So "
echo " monitoring scripts will work even if the run is still being replayed. "
echo " "
echo "EXAMPLES:"
echo " "
echo "Set the charge goal to be equivalent to 30k good coin events. "
echo " $ do_good_coin -c 30000 "
echo " "
echo "Set process the latest a full run but not update the charge/count goals."
echo " $ do_good_coin -c 0 -n -1 -r 1234 "
echo " "
echo "Update the estimated charge goals using 100k event replay. "
echo " $ do_good_coin -c 5000 -n 100000 "
echo " "
echo "CONTACT: Whit Armstrong (whit@jlab.org) 717-341-1080 "
exit
}
function yes_or_no {
while true; do
read -p "$* [y/n]: " yn
case $yn in
[Yy]*) return 0 ;;
[Nn]*) echo "No entered" ; return 1 ;;
esac
done
}
if [[ $# -eq 0 ]] ; then
print_the_help
exit
fi
count_goal=0
num_events=-1
run_number=$(latest_run -t shms)
update_run_info=1
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift # past argument
print_the_help
;;
-r|--run)
run_number="$2"
shift # past argument
shift # past value
;;
-n|--nevents)
num_events="$2"
shift # past argument
shift # past value
;;
-c|--count)
count_goal="$2"
shift # past argument
shift # past value
;;
-I|--no-update)
update_run_info=0
shift # past argument
;;
*) # unknown option
#POSITIONAL+=("$1") # save it in an array for later
echo "unknown option $1"
print_the_help
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
## target
if [[ -z "$count_goal" ]] ;
then
echo "Error: provide count goal with '-c number' or '--count number' argument "
exit
fi
if [[ "$count_goal" -eq "0" ]] ;
then
update_run_info=0
fi
pushd $CURRENT_REPLAY_DIR
mkdir -p monitoring/${run_number}
#root -l -b -q "scripts/good_coin_counter2.cxx+(${run_number},${num_events},0,${update_run_info},${count_goal})"
root -l -b -q "scripts/good_elastic_counter.cxx+(${run_number},${num_events},0,${update_run_info},${count_goal})"
root -l -b -q "scripts/good_coin_counter3.cxx+(${run_number},${num_events},0,${update_run_info},${count_goal})"
./bin/monitor_singles -r ${run_number}
#root -l -b -q "good_coin_counter.cxx(${run_number},${num_events},0,${update_run_info},${count_goal})"
#@root -l -b -q "good_hms_counter.cxx(${run_number},${num_events})"
#root -l -b -q "scripts/good_shms_counter.cxx(${run_number},${num_events})"
popd