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