File indexing completed on 2025-12-16 10:37:34
0001
0002 set -Eu
0003 trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
0004 IFS=$'\n\t'
0005
0006 out=${1?Specify output}
0007 file=${2?Specify filename}
0008 ext=${3?Specify extension}
0009 nevents=${4?Specify nevents}
0010 n_lines_per_event=${5?Specify n_lines_per_event}
0011 n_events_test=${NEVENTS_PER_TEST:-100}
0012
0013 n=$n_events_test
0014 if [[ $ext != "hepmc3.tree.root" && $ext != "steer" ]]; then
0015 echo "Error: Input extension is not recognized. Only 'hepmc3.tree.root' or 'steer' format is accepted. Please see the input pre-processing policy https://eic.github.io/epic-prod/documentation/input_preprocessing.html"
0016 exit -1
0017 fi
0018
0019 if [ -n "${dt0:-}" -a -n "${dt1:-}" ] ; then
0020
0021 echo "$file,$ext,$nevents,$dt0,$dt1" | tee -a "${out}"
0022 exit
0023 fi
0024
0025
0026 nlines=$((2*n_events_test*n_lines_per_event))
0027
0028
0029 dir=$(dirname EVGEN/${file}.${ext})
0030 mkdir -p ${dir}
0031
0032 logfile=${RESULTS_BASE:-results}/logs/${file}.out
0033 mkdir -p $(dirname ${logfile})
0034
0035 echo "INFO [determine_timing.sh] - DETECTOR_CONFIG = ${DETECTOR_CONFIG:-epic_craterlake}"
0036 echo "INFO [determine_timing.sh] - DETECTOR_VERSION = ${DETECTOR_VERSION:-main}"
0037 echo "INFO [determine_timing.sh] - EBEAM = ${EBEAM:-18}"
0038 echo "INFO [determine_timing.sh] - PBEAM = ${PBEAM:-275}"
0039 echo "INFO [determine_timing.sh] - NEVENTS_PER_TEST = ${n_events_test}"
0040 echo "INFO [determine_timing.sh] - RESULTS_BASE = ${RESULTS_BASE:-results}"
0041
0042
0043 t1=$(date +%s.%N)
0044 /opt/campaigns/hepmc3/scripts/run.sh EVGEN/${file} ${ext} 1 2>&1 | tee ${logfile}.1
0045 t2=$(date +%s.%N)
0046 dt01=$(echo "scale=5; ($t2-$t1)" | bc -l)
0047 duf01=$(du -sc $TMPDIR/*/FULL | tail -n 1 | awk '{print($1)}')
0048 dur01=$(du -sc $TMPDIR/*/RECO | tail -n 1 | awk '{print($1)}')
0049
0050
0051 t1=$(date +%s.%N)
0052 /opt/campaigns/hepmc3/scripts/run.sh EVGEN/${file} ${ext} ${n} 2>&1 | tee ${logfile}.n
0053 t2=$(date +%s.%N)
0054 dt0n=$(echo "scale=5; ($t2-$t1)" | bc -l)
0055 duf0n=$(du -sc $TMPDIR/*/FULL | tail -n 1 | awk '{print($1)}')
0056 dur0n=$(du -sc $TMPDIR/*/RECO | tail -n 1 | awk '{print($1)}')
0057
0058
0059 dt1=$(echo "scale=5; if($dt0n-$dt01>0.1*$dt01) print(($dt0n-$dt01)/($n-1)) else print(0.1*$dt01/$n)" | bc -l)
0060 dt0=$(echo "scale=5; if($dt01>$dt1) print(($dt01-$dt1)) else print(100)" | bc -l)
0061
0062
0063
0064 duf1=$(echo "scale=5; if($duf0n-$duf01>0.1*$duf01) print(($duf0n-$duf01)/($n-1)) else print(0.1*$duf01/$n)" | bc -l)
0065 duf0=$(echo "scale=5; if($duf01>$duf1) print(($duf01-$duf1)) else print(100)" | bc -l)
0066
0067 dur1=$(echo "scale=5; if($dur0n-$dur01>0.1*$dur01) print(($dur0n-$dur01)/($n-1)) else print(0.1*$dur01/$n)" | bc -l)
0068 dur0=$(echo "scale=5; if($dur01>$dur1) print(($dur01-$dur1)) else print(100)" | bc -l)
0069
0070
0071 echo "$file,$ext,$nevents,$dt0,$dt1,$duf0,$duf1,$dur0,$dur1" | tee -a "${out}"