ANASEN_analysis/run_tr.sh
Vignesh Sitaraman 826139a26d modified: TrackRecon.C changed cathode gains for the 27 Al to have consitent cfrac and other parameters for all runs. This also should allow us to
merge runs from thboth campaigns easier. Corrected error in proton mass in stuff copied over from Sudarsan's branch.
    Changed some variable names to mka ethem more consistent and clearer as to their actuall purpose.
	modified:   run_tr.sh
2026-06-28 15:43:37 -04:00

136 lines
4.0 KiB
Bash

#!/bin/bash
# ==========================================
# ANASEN Data Processing Script
# ==========================================
echo "Pre-compiling TrackRecon.C safely on a single core..."
root -q -l -b -e '.L TrackRecon.C++O'
# Function to process a single run
process_run() {
local wrun=$(printf "%03d" "$1")
local prefix="${PREFIX:-Run_}"
local outdir="${OUT_DIR:-Output_default}"
local out="${outdir}/results_run${wrun}.root"
# Ensure the directory exists so ROOT doesn't fail silently
mkdir -p "$outdir"
root -q -l -b -x "../ANASEN_analysis/data/${DATASET}_Data/${prefix}${wrun}_mapped.root" \
-e "tree->Process(\"TrackRecon.C+\", \"${out}\")" > /dev/null 2>&1
if [ -f "$out" ]; then
echo "Run $wrun completed successfully in $outdir."
else
echo "ERROR: Run $wrun failed to generate $out"
fi
}
export -f process_run
export CO2percent=3
# --- Block 1: 27Al Source Runs No Gas (1-8) ---
if [[ 1 -eq 0 ]]; then
export DATASET="27Al"
export PREFIX="Run_"
export OUT_DIR="Output_av"
echo "Starting parallel processing for 27Al runs..."
rm -f ${OUT_DIR}/all.root
parallel --bar -j 6 process_run ::: {1..8}
fi
# --- Block 2: 27Al Alpha+Gas Runs (9, 12) ---
if [[ 1 -eq 1 ]]; then
export DATASET="27Al"
export PREFIX="Run_"
export OUT_DIR="Output_a"
export Gain=2
export CATHODE_GAIN=3.0
echo "Processing 27Al alpha+gas runs..."
export source_vertex=-5.36; export timecut_low=12.0; export timecut_high=119.0; process_run 9 "$slope"
unset timecut_high
export source_vertex=53.44; export timecut_low=400.0; process_run 12 "$slope"
unset Gain
unset CATHODE_GAIN
unset timecut_low
fi
# --- Block 4: 17F Source Runs (5-14) ---
if [[ 1 -eq 0 ]]; then
export DATASET="17F"
export PREFIX="Source_"
export OUT_DIR="Output_av"
echo "Starting parallel processing for 17F source runs..."
parallel --bar -j 6 process_run ::: {5..13}
fi
# --- Block 5: 17F Alpha Run with Gas (18-21) ---
if [[ 1 -eq 1 ]]; then
export DATASET="17F"
export PREFIX="SourceRun_"
export OUT_DIR="Output_a"
echo "Processing 17F alpha runs with dynamic source vertices..."
# Running sequentially since the source_vertex variable changes per run
export source_vertex=53.44; process_run 18
export source_vertex=14.24; process_run 19
export source_vertex=-24.96; process_run 20
export source_vertex=-73.96; process_run 21
# exit
fi
# --- Block 3: 27Al Protons+Gas Runs (15, 17-22) ---
if [[ 1 -eq 1 ]]; then
# export CO2percent=4
export DATASET="27Al"
export PREFIX="Run_"
export OUT_DIR="Output_p"
export Gain=2
export CATHODE_GAIN=3.0
rm -f ${OUT_DIR}/*protons*
export source_vertex=-200.0 # Source on the entrance window
echo "Starting parallel processing for 27Al proton runs..."
# process_run 17
# parallel --bar -j 8 process_run ::: 15 {17..22}
parallel --bar -j 8 process_run ::: {17..22}
hadd -j 4 -k ${OUT_DIR}/Al_protons.root ${OUT_DIR}/results_run0{15..22}.root
unset Gain
unset CATHODE_GAIN
fi
# --- Block 6: 17F Proton Data ---
if [[ 1 -eq 1 ]]; then
export DATASET="17F"
export PREFIX="ProtonRun_"
export OUT_DIR="Output_p"
rm -f ${OUT_DIR}/*pc*.root
export source_vertex=-200.0
parallel --bar -j 8 process_run ::: {44..48} #3% CO2
hadd -j 4 -k ${OUT_DIR}/3pc.root ${OUT_DIR}/results_run0{44..48}.root
export CO2percent=4
parallel --bar -j 8 process_run ::: {38..42} #4% CO2
hadd -j 4 -k ${OUT_DIR}/4pc.root ${OUT_DIR}/results_run0{38..42}.root
hadd -j 4 -k ${OUT_DIR}/F_protons.root ${OUT_DIR}/*pc*.root
hadd -j 4 -k ${OUT_DIR}/all_protons.root ${OUT_DIR}/*protons*.root
fi
# ==========================================
# Cleanup Environment Variables
# ==========================================
unset source_vertex
unset DATASET
unset OUT_DIR
unset PREFIX
unset CO2percent
unset timecut_low
unset timecut_high
echo "Script execution finished."