Compare commits

..

2 Commits

Author SHA1 Message Date
Vignesh Sitaraman c0c49be0c9 modified: TrackRecon.C consolidated the ditehr sigma, the timing cuts and reset the beam xy to (0,0), beamenergy gets set to 0.001 instead of returning for values that are beyond calculated catima range.
Moved some diagnostic plots because they were out of range for the boleans to actually catch them, lifted the si time ditehring so that it gets applied everywhere for smootehr time plots.
	modified:   eloss_calculations/Eloss.py introduced a external scaling factr to allow eloss calculations to be paired with the run scripts to figure out the right dEdx scaling
	modified:   run_27Al.sh
2026-08-18 15:14:18 -04:00
Vignesh Sitaraman 9416638af6 modified: TrackRecon.C changed the vertex by wire to be calibrated dE 2026-08-17 13:53:26 -04:00
3 changed files with 312 additions and 209 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,9 @@
import pycatima as catima import pycatima as catima
import numpy as np import numpy as np
import os
DEDX_SCALE = float(os.environ.get("DEDX_SCALE", "1.0"))
print(f"Using dEdX scale factor: {DEDX_SCALE}")
# --- 1. Constants --- # --- 1. Constants ---
P_TORR = 250 P_TORR = 250
@ -32,7 +36,7 @@ fine_step_cm = 0.03 # row spacing near the Bragg peak
fine_zone_frac = 0.085 # fraction of the *total* range treated as "near the peak" fine_zone_frac = 0.085 # fraction of the *total* range treated as "near the peak"
def generate_lookup(z, mass_u, e_start_mev, label): def generate_lookup(z, mass_u, e_start_mev, label):
filename = f"{label}_lookup_{e_start_mev}MeV_{P_TORR}torr_{P_CO2}pc.dat" filename = f"/home/vsitaraman/ANASEN_analysis/eloss_calculations/{label}_lookup_{e_start_mev}MeV_{P_TORR}torr_{P_CO2}pc.dat"
header = f"Energy(MeV) \tmg/cm2 \tcm\nStarting Energy: {e_start_mev} MeV" header = f"Energy(MeV) \tmg/cm2 \tcm\nStarting Energy: {e_start_mev} MeV"
# Pass 1: integrate at full precision just to find the total range (needed # Pass 1: integrate at full precision just to find the total range (needed
@ -78,7 +82,7 @@ def generate_lookup(z, mass_u, e_start_mev, label):
projectile.T(e_u) projectile.T(e_u)
# dedx returns MeV / (g/cm2) # dedx returns MeV / (g/cm2)
if(mass_u >=10.0): if(mass_u >=10.0):
loss_mev = catima.dedx(projectile, gas_mix) * step_g_cm2 * 0.89 loss_mev = catima.dedx(projectile, gas_mix) * step_g_cm2 * DEDX_SCALE
else: else:
loss_mev = catima.dedx(projectile, gas_mix) * step_g_cm2 loss_mev = catima.dedx(projectile, gas_mix) * step_g_cm2

View File

@ -6,14 +6,15 @@ export OUT_DIR="Output_27Al"
export reactiondata=1 export reactiondata=1
export CO2percent=3 export CO2percent=3
export pressure_in_torr=250 export pressure_in_torr=250
export CATHODE_GAIN=4.0 export CATHODE_GAIN=3.0
export source_vertex=-200.0 export source_vertex=-200.0
export BEAM_AXIS_X=-15 export DEDX_SCALE=0.90
export BEAM_AXIS_Y=-5 # export BEAM_AXIS_X=-15
# export BEAM_AXIS_Y=-5
export CUTLIST=cuts_list.txt export CUTLIST=cuts_list.txt
# Clean up previous runs # Clean up previous runs
rm -f Output_27Al/*.root rm -f Output_27Al_$DEDX/*.root
echo "Pre-compiling TrackRecon.C safely on a single core..." echo "Pre-compiling TrackRecon.C safely on a single core..."
root -q -l -b -e '.L TrackRecon.C++O' root -q -l -b -e '.L TrackRecon.C++O'
@ -22,9 +23,9 @@ process_run() {
local wrun=$(printf "%03d" "$1") local wrun=$(printf "%03d" "$1")
local prefix="${PREFIX:-Run_}" local prefix="${PREFIX:-Run_}"
local infile="../ANASEN_analysis/data/${DATASET}_Data/${prefix}${wrun}_mapped.root" local infile="../ANASEN_analysis/data/${DATASET}_Data/${prefix}${wrun}_mapped.root"
local out="Output_27Al/results_run${wrun}.root" local out="Output_27Al_$DEDX_SCALE/results_run${wrun}.root"
mkdir -p Output_27Al mkdir -p Output_27Al_$DEDX_SCALE
root -q -l -b -x "$infile" \ root -q -l -b -x "$infile" \
-e "tree->Process(\"TrackRecon.C+\", \"${out}\")" > /dev/null 2>&1 -e "tree->Process(\"TrackRecon.C+\", \"${out}\")" > /dev/null 2>&1
@ -38,9 +39,11 @@ process_run() {
export -f process_run export -f process_run
echo "Running Eloss.py with a scaling parameter of $DEDX_SCALE"
python3 eloss_calculations/Eloss.py
echo "Starting parallel processing..." echo "Starting parallel processing..."
# time parallel --bar -j 8 process_run ::: {24..41} time parallel --bar -j 8 process_run ::: {24..41}
time parallel --bar -j 3 process_run ::: 44 45 46 time parallel --bar -j 3 process_run ::: 44 45 46
time parallel --bar -j 8 process_run ::: {50..59} 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 4 process_run ::: 62 63 66 67 68
@ -49,7 +52,7 @@ time parallel --bar -j 8 process_run ::: {50..59}
# time parallel --bar -j 4 process_run ::: {78..89} # time parallel --bar -j 4 process_run ::: {78..89}
echo "Merging files..." echo "Merging files..."
hadd -k -j 4 Output_27Al/output_27Al.root Output_27Al/results_run*.root hadd -k -j 4 Output_27Al_$DEDX_SCALE/output_27Al.root Output_27Al_$DEDX_SCALE/results_run*.root
# rootbrowse Output_27Al/output_27Al.root # rootbrowse Output_27Al/output_27Al.root
@ -68,4 +71,5 @@ unset A1C1_Z_OFF_SX3
unset BEAM_AXIS_X unset BEAM_AXIS_X
unset BEAM_AXIS_Y unset BEAM_AXIS_Y
unset CUTLIST unset CUTLIST
unset DEDX_SCALE
echo "Script execution finished." echo "Script execution finished."