diff --git a/.gitignore b/.gitignore
index c140bbb12084cfae2f14ad9356d81d93e9b25b6e..ae7c1868a4b1d69f57db48e6783928a483cb962e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,13 +14,10 @@ HISTOGRAMS/*
 REPORT_OUTPUT
 REPORT_OUTPUT/*
 log/*
-full_hms.sh
-full_shms.sh
 onlineGUI/Config/kpp_*
 *.d
 *.so
 *Auto*
-run_*
 CALIBRATION/shms_cal_calib/pcal.param*
 CALIBRATION/hms_cal_calib/hcal.param*
 CALIBRATION/shms_cal_calib/calibrated.deb
diff --git a/UTIL-OL/SCRIPTS/SHELL/run_hms.sh b/UTIL-OL/SCRIPTS/SHELL/run_hms.sh
new file mode 120000
index 0000000000000000000000000000000000000000..b3c278fe18006cbffe9868492262b00f11ef7c3a
--- /dev/null
+++ b/UTIL-OL/SCRIPTS/SHELL/run_hms.sh
@@ -0,0 +1 @@
+run_shms.sh
\ No newline at end of file
diff --git a/UTIL-OL/SCRIPTS/SHELL/run_shms.sh b/UTIL-OL/SCRIPTS/SHELL/run_shms.sh
new file mode 100755
index 0000000000000000000000000000000000000000..08f8a2387ee96e70d3dc134356efe4c3670216b1
--- /dev/null
+++ b/UTIL-OL/SCRIPTS/SHELL/run_shms.sh
@@ -0,0 +1,172 @@
+#! /bin/bash
+
+# Which spectrometer are we analyzing.
+spec=${0##*_}
+spec=${spec%%.sh}
+SPEC=$(echo "$spec" | tr '[:lower:]' '[:upper:]')
+
+# What is the last run number for the spectrometer.
+# The pre-fix zero must be stripped because ROOT is ... well ROOT
+lastRun=$( \
+    ls raw/"${spec}"_all_*.dat raw/../raw.copiedtotape/"${spec}"_all_*.dat -R 2>/dev/null | perl -ne 'if(/0*(\d+)/) {print "$1\n"}' | sort -n | tail -1 \
+)
+
+# Which run to analyze.
+runNum=$1
+if [ -z "$runNum" ]; then
+  runNum=$lastRun
+fi
+
+# How many events to analyze.
+numEvents=50000
+
+# Which scripts to run.
+script="SCRIPTS/${SPEC}/PRODUCTION/replay_production_${spec}.C"
+config="CONFIG/${SPEC}/PRODUCTION/${spec}_production.cfg"
+
+# Define some useful directories
+rootFileDir="./ROOTfiles"
+monRootDir="./HISTOGRAMS/${SPEC}/ROOT"
+monPdfDir="./HISTOGRAMS/${SPEC}/PDF"
+reportFileDir="./REPORT_OUTPUT/${SPEC}/PRODUCTION"
+reportMonDir="./UTIL-OL/REP_MON"
+reportMonOutDir="./MON_OUTPUT/REPORT"
+pedMonDir="./UTIL-OL/PED_MON"
+pedMonOutDir="./MON_OUTPUT/PED"
+
+# Name of the pedestal monitoring file
+reportMonFile="reportMonitor_${spec}_${runNum}_${numEvents}.txt"
+pedMonFile="pedReport_${spec}_${runNum}_${numEvents}.txt"
+
+# Which commands to run.
+runHcana="./hcana -q \"${script}(${runNum}, ${numEvents})\""
+runOnlineGUI="./online -f ${config} -r ${runNum}"
+saveOnlineGUI="./online -f ${config} -r ${runNum} -P"
+runReportMon="./${reportMonDir}/readout_${spec}.py ${runNum} ${numEvents}"
+runPedMon="root -l -q \"${pedMonDir}/${spec}_ped.C(${runNum}, ${numEvents})\""
+openReportMon="emacs ${reportMonOutDir}/${reportMonFile}"
+
+# Name of the replay ROOT file
+replayFile="${spec}_replay_production_${runNum}"
+rootFile="${replayFile}_${numEvents}.root"
+latestRootFile="${rootFileDir}/${replayFile}_latest.root"
+
+# Names of the monitoring file
+monRootFile="${spec}_production_${runNum}.root"
+monPdfFile="${spec}_production_${runNum}.pdf"
+latestMonRootFile="${monRootDir}/${spec}_production_latest.root"
+latestMonPdfFile="${monPdfDir}/${spec}_production_latest.pdf"
+
+# Where to put log
+reportFile="${reportFileDir}/replay_${spec}_production_${runNum}_${numEvents}.txt"
+summaryFile="${reportFileDir}/summary_production_${runNum}_${numEvents}.txt"
+
+# What is base name of onlineGUI output.
+outFile="${spec}_production_${runNum}"
+outFileMonitor="output.txt"
+outFilePed="out${SPEC}.txt"
+
+# Replay out files
+replayReport="${reportFileDir}/replayReport_${spec}_production_${runNum}_${numEvents}.txt"
+
+# Start analysis and monitoring plots.
+{
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo "" 
+  date
+  echo ""
+  echo "Running ${SPEC} analysis on the run ${runNum}:"
+  echo " -> SCRIPT:  ${script}"
+  echo " -> RUN:     ${runNum}"
+  echo " -> NEVENTS: ${numEvents}"
+  echo " -> COMMAND: ${runHcana}"
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+
+  sleep 2
+  eval ${runHcana}
+
+  # Link the ROOT file to latest for online monitoring
+  ln -fs ${rootFile} ${latestRootFile}
+  
+  echo "" 
+  echo ""
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo ""
+  echo "Running onlineGUI for analyzed ${SPEC} run ${runNum}:"
+  echo " -> CONFIG:  ${config}"
+  echo " -> RUN:     ${runNum}"
+  echo " -> COMMAND: ${runOnlineGUI}"
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+
+  sleep 2
+  cd onlineGUI
+  eval ${runOnlineGUI}
+  eval ${saveOnlineGUI}
+  mv "${outFile}.pdf" "../HISTOGRAMS/${SPEC}/PDF/${outFile}.pdf"
+  mv "${outFile}.root" "../HISTOGRAMS/${SPEC}/ROOT/${outFile}.root"
+  cd ..
+  ln -fs ${monRootFile} ${latestMonRootFile}
+  ln -fs ${monPdfFile} ${latestMonPdfFile}
+
+  echo "" 
+  echo ""
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo ""
+  echo "Done analyzing ${SPEC} run ${runNum}."
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo "" 
+  echo ""
+  echo ""
+
+  sleep 2
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo ""
+  echo "Performing pedestal monitoring for ${SPEC} run ${runNum}."
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+
+  sleep 2
+  eval ${runPedMon}
+  mv "${outFilePed}" "${pedMonOutDir}/${pedMonFile}"
+
+  echo "" 
+  echo ""
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo ""
+  echo "Generating report file monitoring data file ${SPEC} run ${runNum}."
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+
+  eval ${runReportMon}
+  mv "${outFileMonitor}" "${reportMonOutDir}/${reportMonFile}"
+  eval ${openReportMon}
+  sleep 2
+
+  echo "" 
+  echo ""
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo ""
+  echo "Done producing report file monitoring data file ${SPEC} run ${runNum}."
+  echo ""
+  echo ":=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:="
+  echo "" 
+  echo ""
+  echo ""
+  echo "-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|"
+  echo ""
+  echo "So long and thanks for all the fish!"
+  echo ""
+  echo "-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|"
+  echo "" 
+  echo ""
+  echo ""
+
+} 2>&1 | tee "${replayReport}"
diff --git a/run_hms.sh b/run_hms.sh
new file mode 120000
index 0000000000000000000000000000000000000000..6d640fea1a3686e7c8a853ae758bdeb1517b45e9
--- /dev/null
+++ b/run_hms.sh
@@ -0,0 +1 @@
+UTIL-OL/SCRIPTS/SHELL/run_shms.sh
\ No newline at end of file
diff --git a/run_shms.sh b/run_shms.sh
new file mode 120000
index 0000000000000000000000000000000000000000..6d640fea1a3686e7c8a853ae758bdeb1517b45e9
--- /dev/null
+++ b/run_shms.sh
@@ -0,0 +1 @@
+UTIL-OL/SCRIPTS/SHELL/run_shms.sh
\ No newline at end of file