89 lines
2.6 KiB
Bash
89 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
export DATASET="27Al"
|
|
export PREFIX="Run_"
|
|
export OUT_DIR="Output_27Al"
|
|
export reactiondata=1
|
|
export CO2percent=3
|
|
export pressure_in_torr=250
|
|
export CATHODE_GAIN=3.0
|
|
export source_vertex=-200.0
|
|
export DEDX_SCALE=0.89
|
|
export CUTLIST=cuts_list.txt
|
|
export BEAM_AXIS_X=0
|
|
export BEAM_AXIS_Y=0
|
|
|
|
echo "Pre-compiling TrackRecon.C safely on a single core..."
|
|
root -q -l -b -e '.L TrackRecon.C++O'
|
|
|
|
process_run() {
|
|
local wrun=$(printf "%03d" "$1")
|
|
local prefix="${PREFIX:-Run_}"
|
|
local infile="../ANASEN_analysis/data/${DATASET}_Data/${prefix}${wrun}_mapped.root"
|
|
|
|
# Dynamically point to the correct output directory for this X/Y iteration
|
|
local current_out_dir="Output_27Al_X${BEAM_AXIS_X}_Y${BEAM_AXIS_Y}"
|
|
local out="${current_out_dir}/results_run${wrun}.root"
|
|
|
|
root -q -l -b -x "$infile" \
|
|
-e "tree->Process(\"TrackRecon.C+\", \"${out}\")" > /dev/null 2>&1
|
|
|
|
if [ -f "$out" ]; then
|
|
echo "Run $wrun completed successfully in ${current_out_dir}."
|
|
else
|
|
echo "ERROR: Run $wrun failed to generate $out"
|
|
fi
|
|
}
|
|
|
|
export -f process_run
|
|
|
|
# for x in -5 5
|
|
# do
|
|
# BEAM_AXIS_X=$x
|
|
# for y in -5 5
|
|
# do
|
|
# BEAM_AXIS_Y=$y
|
|
|
|
# Define and create a clean directory name BEFORE running parallel tasks
|
|
# CURRENT_OUT_DIR="Output_27Al_X${BEAM_AXIS_X}_Y${BEAM_AXIS_Y}"
|
|
CURRENT_OUT_DIR="Output_27Al"
|
|
mkdir -p "$CURRENT_OUT_DIR"
|
|
|
|
echo "Running Eloss.py with a scaling parameter of $DEDX_SCALE"
|
|
echo "running with a beam offset of $BEAM_AXIS_X $BEAM_AXIS_Y"
|
|
python3 eloss_calculations/Eloss.py
|
|
|
|
echo "Starting parallel processing..."
|
|
time parallel --bar -j 10 process_run ::: {24..41}
|
|
time parallel --bar -j 3 process_run ::: 44 45 46
|
|
time parallel --bar -j 8 process_run ::: {50..59}
|
|
# time parallel --bar -j 4 process_run ::: 62 63 66 67 68
|
|
# time parallel --bar -j 1 process_run ::: 73
|
|
# time parallel --bar -j 1 process_run ::: 74
|
|
# time parallel --bar -j 4 process_run ::: {78..89}
|
|
|
|
echo "Merging files..."
|
|
# Fixed: Safely merge using the clean directory variable (added -f to overwrite if re-running)
|
|
hadd -k -f -j 4 "${CURRENT_OUT_DIR}/output_27Al.root" "${CURRENT_OUT_DIR}/results_run"*.root
|
|
# done
|
|
# done
|
|
|
|
# Cleanup
|
|
unset DATASET
|
|
unset PREFIX
|
|
unset OUT_DIR
|
|
unset reactiondata
|
|
unset CO2percent
|
|
unset pressure_in_torr
|
|
unset CATHODE_GAIN
|
|
unset source_vertex
|
|
unset A1C1_LOWBAND_RFACTOR
|
|
unset A1C1_Z_SCALE_QQQ
|
|
unset A1C1_Z_OFF_QQQ
|
|
unset A1C1_Z_OFF_SX3
|
|
unset BEAM_AXIS_X
|
|
unset BEAM_AXIS_Y
|
|
unset CUTLIST
|
|
unset DEDX_SCALE
|
|
unset CURRENT_OUT_DIR
|
|
echo "Script execution finished." |