This is TikiWiki 1.9.7 -Sirius- © 2002–2006 by the Tiki community Sat 28 of Jun, 2025 [09:02 UTC]
Menu [hide]
Toggle  Wiki
Toggle  Blogs
Toggle  Forums
Toggle  Charts
TikiWiki Assistant
Thank you for installing TikiWiki!
Click the :: options in the Menu for more options. Please, also see TikiMovies for more setup details.

History: GEnSpecialEvents

Source of version: 8 (current)

-={ANAME()}top{ANAME}How scripts are launched=-
^Here is quote from Bob Michaels:
All the scripts except __epicsRunEnd__ are launched at the __start of a run__
by __~a-onl/scripts/getruninfo__ (which in turn calls __getruninfo_bgr__, a
background process, done that way to avoid hanging up CODA). The
script epicsRunEnd is called at the end of a run. The scripts are
specified in the CODA database, and are called automatically (presumably
by a system call but I never checked this) by CODA during the afore-
mentioned transitions.^
-=Tree of scripts/executables launched by CODA=-
* {ALINK(aname=getruninfo)}__~a-onl/scripts/getruninfo__{ALINK}
** {ALINK(aname=getruninfo_bgr)}__~a-onl/scripts/getruninfo_bgr__{ALINK}
*** {ALINK(aname=ThresGenLog)}__~a-onl/scripts/ThresGenLog__{ALINK} -- inserts thresholds as event type 135
*** {ALINK(aname=fileToEvent)}__~a-onl/scripts/fileToEvent__{ALINK} ''prescale.dat'' as event type 133
*** {ALINK(aname=HVgenlogger)}__~a-onl/scripts/HVgenlogger__{ALINK} -- inserts high Voltages readout from ))BigHand(( and ))BigBite(( inserts them as event type 134
**** {ALINK(aname=get_hvs)}__~a-onl/scripts/get_hvs__{ALINK} -- read information from particular detector
***** {ALINK(aname=hv_proc.com)}__~adev/slowc/scripts/hv_proc.com__{ALINK} -- script interface to the hvcli executable
****** __~adev/slowc/hvg/hvcli__ -- executable to read data from ))LeCroy(( 1458 High Voltage mainframe
*** {ALINK(aname=epicsRunStart)}__~a-onl/scripts/epicsRunStart__{ALINK} -- inserts start of run information as event type 130
*** {ALINK(aname=getscaler)}__~a-onl/scripts/getscaler__{ALINK} -- inserts scaler data as event type 140 every 8 seconds
*** {ALINK(aname=epicsLogger)}__~a-onl/scripts/epicsLogger__{ALINK} -- script to insert epics variables as event type 131 every 30 second
*** {ALINK(aname=fastEpicsLogger)}__~a-onl/scripts/fastEpicsLogger__{ALINK} -- script to insert epics variables as event type 131 every 4 second
* {ALINK(aname=epicsRunEnd)}__~a-onl/scripts/epicsRunEnd__{ALINK} -- inserts end of run information
-={ANAME()}getruninfo{ANAME}getruninfo=-
{ALINK(aname=top)}::Back to top::{ALINK}
This scripts started at the beginning of every run.
It starts getruninfo_bgr as background process to avoid hang of CODA.
{CODE()}#!/bin/ksh
SCRIPT_DIR=/adaqfs/halla/a-onl/scripts

$SCRIPT_DIR/getruninfo_bgr &

exit 0{CODE}
-={ANAME()}getruninfo_bgr{ANAME}getruninfo_bgr=-
{ALINK(aname=top)}::Back to top::{ALINK}
This script started at beginning of each run by getruninfo. It is a
script manager to clean up old run, set up new run and start taking specially inserted events.
{CODE()}
#!/bin/ksh
SCRIPT_DIR=/adaqfs/halla/a-onl/scripts
DETMAP_DIR=/adaqfs/halla/a-onl/detmap
PRESCALE_DIR=/adaqfs/halla/a-onl/prescale
EPICS_DIR=/adaqfs/halla/a-onl/epics
RUNNUMBER_FILE=/adaqfs/halla/a-onl/datafile/rcRunNumber
TRIGGER_FILE=/adaqfs/halla/atrig/trigger/trigger.setup
STRIP_CLEAR=/adaqfs/halla/adaq/$EXPERIMENT/scaler/clear.ctl
#
# Run number - needed by mss storage script
let num=$(eval /adaqfs/halla/a-onl/scripts/getrunnumber)
echo "$num" > $RUNNUMBER_FILE
#
if [ -e $STRIP_CLEAR ] ; then
echo "1" > $STRIP_CLEAR
fi
#
$SCRIPT_DIR/linkassn > /dev/null 2> /dev/null &
#
# reenable scalers if last run died
$SCRIPT_DIR/clevclr_bb
#
# first clean up from previous run (if necessary)
$SCRIPT_DIR/end_clean
#
# This silly script may solve the end-run "hanging caget" problem
$SCRIPT_DIR/startLooper
#
# start ET server (unless already running)
$SCRIPT_DIR/startETserver
#
# Insert various files
#$SCRIPT_DIR/fileToEvent $DETMAP_DIR/detmap.config 135
# Write GEN thresholds to event 135
$SCRIPT_DIR/ThresGenLog > /dev/null 2> /dev/null &
#
$SCRIPT_DIR/fileToEvent $PRESCALE_DIR/prescale.dat 133
#
# write GEN HV to event 134
$SCRIPT_DIR/HVgenlogger > /dev/null 2> /dev/null &
#
# $SCRIPT_DIR/fileToEvent $TRIGGER_FILE 136
#
# Charge asymmetry feedback
# To enable/disable type "feedback on" or "feedback off".
# (COMMENT OUT FOR NOW)/adaqfs/home/adaq/qasy/feedback/start_feedback
#
# Start-of-Run EPICS info to /adaqfs/halla/a-onl/epics/runfiles/Start_of_Run_NNN.epics
$SCRIPT_DIR/epicsRunStart &
#
# Launch the scaler and EPICS loggers
$SCRIPT_DIR/getscaler &
$SCRIPT_DIR/epicsLogger &
$SCRIPT_DIR/fastEpicsLogger &
#
#
exit 0
{CODE}
-={ANAME()}ThresGenLog{ANAME}ThresGenLog=-
{ALINK(aname=top)}::Back to top::{ALINK}
This script will use ~a-onl/scripts/threshold-gen to obtain the threshold values of ))BigHand((, ))BigBite(( Preshower and Shower detectors. And using ~a-onl/scripts/fileToEvent executable to insert obtained information into data stream as event type 135.
{CODE()}#!/bin/ksh
#
log() { # debug echo - send it to /dev/null when not needed
echo $* >> $thresfile
if [ ! -z "$PS1" ] ; then echo $* ; fi
}
#
thresfile=$HOME/epics/thres.dat
/bin/rm -f $thresfile
log "Neutron arm threshold: "`/adaqfs/home/a-onl/scripts/threshold-gen get 0 | gawk '{print $1}`
log "BigBite Preshower threshold: "`/adaqfs/home/a-onl/scripts/threshold-gen get 1 | gawk '{print $1}`
log "BigBite TotalShower threshold: "`/adaqfs/home/a-onl/scripts/threshold-gen get 2 | gawk '{print $1}`
$HOME/scripts/fileToEvent $thresfile 135
{CODE}
-={ANAME()}fileToEvent{ANAME}fileToEvent=-
{ALINK(aname=top)}::Back to top::{ALINK}
This is executable which read file and inserts its content into data stream as event type specified on command line. Usage:{CODE()}fileToEvent <filename> <evtype>{CODE}
-={ANAME()}HVgenlogger{ANAME}HVgenlogger=-
{ALINK(aname=top)}::Back to top::{ALINK}
Drives the readout of Neutron Arm and ))BigBite(( HV and inserts them into data stream as event type 134.
{CODE()}#!/bin/ksh
#
SCRIPTS=$HOME/scripts
EPICS_DIR=/adaqfs/halla/a-onl/epics
$SCRIPTS/get_hvs NA > $EPICS_DIR/gen_NA_hv.dat 2> /dev/null
$SCRIPTS/get_hvs BB > $EPICS_DIR/gen_BB_hv.dat 2> /dev/null
$SCRIPTS/fileToEvent $EPICS_DIR/gen_NA_hv.dat 134
$SCRIPTS/fileToEvent $EPICS_DIR/gen_BB_hv.dat 134
{CODE}
-={ANAME()}get_hvs{ANAME}get_hvs=-
{ALINK(aname=top)}::Back to top::{ALINK}
This script obtains list of maps for particular detector and retrieves individual HV maps.
{CODE()}#!/bin/bash
#
#--- To be included in CODA start of run etc...
#-- Get the HV parameters from the "hvs" server
#

PROG=`basename $0`
# echo Start $PROG

if [ $# -ne 1 ] ; then
echo " ***" Error in $PROG: "one call parameter (NA,BB,...) is needed"
help_dis
exit 2
fi

HVG=/adaqfs/home/adev/bin/hv_proc.com
if ! test -x $HVG ; then
echo " ***" Error in $PROG: binary $HVG is not found
help_dis
exit 2
fi

det=XX
tst=0
hlp=0
pid=$PPID

declare -a ftmp
i=0 ; while let $((i++)); [ $i -lt 3 ]; do
ftmp[$i]=hv2coda.$i.$pid.tmp
done

# ========== Help routine start
help_dis () {

cat <<help_doc
$PROG - a script to get HV parameters from the "hvs" server (in order to paste it into the CODA stream)

Call parameters:
$PROG detec
where:
detec - detector name ( BB, NA)
-? or ? or -h print this help default: none
Example: $PROG NA
Example: $PROG BB
help_doc
}
# ========== Help routine end
# ========== Exit routine
exit_proc () {
i=0 ; while let $((i++)); [ $i -lt 3 ]; do
fn=${ftmp[$i]}
[ -f "$fn" ] && rm -f $fn
done
}
# ========== Help routine end

if [ "$1" = "?" -o "$1" = "-?" ]; then
help_dis
exit 2
fi

# set -- `getopt htP:D: $*`
# if [ $? != 0 ] ; then
# echo *** Error in getopt . Usage:
# help_dis
# exit 2
# fi
# for i in $* ; do
# case $i in
# -t) tst=1 ; shift 1;;
# -h) hlp=1 ; shift 1;;
# -c) comm=$2 ; shift 2;;
# -P) hvpar=$2 ; shift 2;;
# -D) detec=$2 ; shift 2;;
# --) shift ; break;;
# esac
# done


det=$1
$HVG -D $det -c MAPS 1>${ftmp[1]} 2>${ftmp[2]}
if [ $? -ne 0 ]; then
cat ${ftmp[2]}
exit_proc
exit 2
fi

for map in `cat ${ftmp[1]} | awk '{print $1}'`; do
echo "# Map " $map " Measured Voltage"
$HVG -D $map -c GET -P MV
if [ $? -ne 0 ]; then
echo " Error in information retrieval in $HVS -D $map -c GET -P MV"
fi
echo "# Map " $map " Measured Current"
$HVG -D $map -c GET -P MC
if [ $? -ne 0 ]; then
echo " Error in information retrieval in $HVS -D $map -c GET -P MC"
fi
done

exit_proc
exit 0
{CODE}
-={ANAME()}hv_proc.com{ANAME}hv_proc.com=-
{ALINK(aname=top)}::Back to top::{ALINK}
Using hvcli executable readout HV values from hvs server, and format the output.
{CODE()}#!/bin/bash
#
#-- Get the HV parameters from the "hvs" server
#

PROG=`basename $0`
# echo Start $PROG

hostserv=XX
hostsna=agen
hostsbb=agen4
port=5555
detec=XX
hvpar=DV
chmap=XX
tst=0
hlp=0
comm=GET
setval=XX
fnam=XX

HVC=~/slowc/hvg/hvcli
if ! test -x $HVC ; then
HVC=/adaqfs/home/adev/slowc/hvg/hvcli
fi
if ! test -x $HVC ; then
echo *** Error: binary $HVC is not found
help_dis
exit 2
fi

pid=$PPID
declare -a ftmp
i=0 ; while let $((i++)); [ $i -lt 6 ]; do
ftmp[$i]=hv.$i.$pid.tmp
done

# ========== Help routine start
help_dis () {
cat <<help_doc
$PROG - a script to get HV parameters from the "hvs" server
Call parameters:
$PROG -D detec [-c command] -m range [-c command] [-P parameter-to-get] [-H host] [-p port] ....
where:
-c command (GET or SET or MAPS) default: $comm
MAPS: just prints the maps names
(-D should be defined, the other parameters are ignored)
-P parameter to use : DV, MV, MC, CE default: $hvpar
for -c SET the valid parameters are DV, CE
-D detector maps default: none
NA: NA_ND_L / NA_ND_R / NA_VT_L / NA_VT_R
BB: BB_SH / BB_PS_L / BB_PS_R /BB_SC_L / BB_SC_R
MO: MO_ALL (Moller)
-m colums,rows range, ex: 3,17 or 2:13,7:9 default: none
(if not defined - the max size will be taken)
-v value to SET (used if no -f declared) default: none
-f file name containing lines with "ix iy value" default: none
-t test only default: none
-H host name where the server is running default: none
if not set - tries to find the server by looking the lockfile:
a) local home directory, say ~/slowc/HV_??, where ?? is the map name
b) ~adev/slowc/HV_??
-p port number default: $port
-b client program default: $HVC
-? or ? or -h print this help default: none
Example: $PROG -c GET -P MV -D NA_ND_L -m 1:4,2:26
Example: $PROG -c GET -P MC -D BB_SH -m 1:7,1:27
Example: $PROG -c MAPS -P MC -D NA_VT_L -m 1:7,1:27
Example: $PROG -c SET -P DV -v -1200 -D NA_ND_L -m 1:7,1:27
Example: $PROG -c SET -P CE -v 1 -D NA_ND_L -m 1:7,1:27
help_doc
}
# ========== Help routine end
# ========== Exit routine
exit_proc () {
i=0 ; while let $((i++)); [ $i -lt 6 ]; do
fn=${ftmp[$i]}
[ -f "$fn" ] && rm -f $fn
done
}
# ========== Help routine end

if [ "$1" = "?" -o "$1" = "-?" ]; then
help_dis
exit 1
fi

set -- `getopt htP:D:c:v:m:f:H:p: $*`
if [ $? != 0 ] ; then
echo *** Error in getopt . Usage:
help_dis
exit 2
fi
for i in $* ; do
case $i in
-t) tst=1 ; shift 1;;
-h) hlp=1 ; shift 1;;
-c) comm=$2 ; shift 2;;
-P) hvpar=$2 ; shift 2;;
-D) detec=$2 ; shift 2;;
-m) chmap=$2 ; shift 2;;
-v) setval=$2 ; shift 2;;
-f) fnam=$2 ; shift 2;;
-H) hostserv=$2 ; shift 2;;
-p) port=$2 ; shift 2;;
-b) HVC=$2 ; shift 2;;
--) shift ; break;;
esac
done

if [ $hlp -gt 0 ]; then
help_dis
exit 1
fi

if [ ! -x $HVC ]; then
echo " *** Error - the HV client program is missing " $HVC
exit 2
fi

# Get the server name

if [ $hostserv == "XX" ]; then
ok=0
det=`echo $detec | cut -f1 -d\_`
#
# -- Try to find a lockfile and learn the server host name
#
ddet=HV_$det
lockf=.lock_hvs_$ddet

declare -a lockname
lockname[1]=~/slowc/$ddet/$lockf
lockname[2]=~adev/slowc/$ddet/$lockf
i=0 ; while let $((i++)); [ $ok -eq 0 ] && [ $i -lt 3 ]; do
lockfile=${lockname[$i]}
if test -f $lockfile ; then
hostserv=`cat $lockfile | awk '{print $1}'`
ok=1
fi
done

if [ $ok -ne 0 ]; then
echo " -- Found: server hostname " $hostserv " from the lockfile " $lockfile 1>&2
else
echo " *** Error - hostname for the server (-H) is not defined, and no local lockfile was found "
i=0 ; while let $((i++)); [ $i -lt 3 ]; do
echo " *** not found " ${lockname[$i]}
done
echo " *** Error - HV server host is unknown "
help_dis
exit 2
fi
fi


ok=0
for i in GET get SET set MAPS maps ; do
[ $comm == $i ] && ok=1
done
if [ $ok -eq 0 ]; then
echo " *** Error - server command -c "$comm " is unknown "
help_dis
exit 2
fi

# Just print the maps

if [ "$comm" == "MAPS" ]; then
$HVC -h $hostserv -p $port -m 'get maplist' | sed s"/^C/ /"
exit 0
fi

# Is the HV frame command valid?

ok=0
j=0
for i in DV CE MV MC ; do
let $((j++))
if [ "$hvpar" == "$i" ]; then
[ "$j" -le 2 ] || [ "$comm" == "GET" ] && ok=1
fi
done

if [ $ok -eq 0 ]; then
echo " *** Error - Wrong combination -c "$comm " and -P "$hvpar
help_dis
exit 2
fi

if [ "$comm" == "SET" ]; then
if [ "$fnam" == "XX" ]; then
if [ "$setval" == "XX" ]; then
echo " *** Error - for the SET operation -c "$comm " the value -c ..., of file -f ... should be defined"
help_dis
exit 2
fi
else
if [ ! -s "$fnam" ]; then
echo " *** Error - for the SET operation -c "$comm " filename set -f "$fnam " is missing"
help_dis
exit 2
fi
fi
fi

# echo $hvpar " " $detec " " $chmap " " $hostserv " " $port

$HVC -h $hostserv -p $port -m 'get maplist' > ${ftmp[1]}
# cp tmptmp ${ftmp[1]} # test
head -1 ${ftmp[1]} | grep -i error >/dev/null ; ok=$?

if [ $ok -eq 0 ]; then
echo " *** Server at host " $hostserv " is not properly responding"
exit_proc
exit 2
fi

lin=`cat ${ftmp[1]} | sed s"/^C/ /" | awk -v t=$detec ' $1 ~ t {print $2" "$3" "$4" "$5}'`
nw=`echo $lin | wc -w`
if [ $nw -lt 4 ]; then
echo " *** Map name "$detec " is missing or not properly set in the server list :"
echo $lin
cat ${ftmp[1]}
exit_proc
exit 2
fi
# --- Check the detector map

if [ $chmap == "XX" ]; then
# Get the map
chmap=`echo $lin | awk '{k1=$3-1+$1;k2=$4-1+$2;print $3":"k1","$4":"k2}'`
fi

if [ "$comm" == "SET" ]; then
$HVC -h $hostserv -p $port -m "$detec $comm $hvpar $chmap $setval"
exit_proc
exit 0
fi

# comm=GET
$HVC -h $hostserv -p $port -m "$detec $comm $hvpar $chmap" | sed s"/^C/ /" | sed s'/\*/\&/'g > ${ftmp[2]}
# $HVC -h $hostserv -p $port -m "$detec $comm $hvpar $chmap" # | sed s"/^C/ /"
# echo $HVC -h $hostserv -p $port -m "$detec $comm $hvpar $chmap" # | sed s"/^C/ /"

head -1 ${ftmp[2]} | grep -i error >/dev/null ; ok=$?

if [ $ok -eq 0 ]; then
echo " *** Error in the HV server response:"
cat ${ftmp[2]}
exit_proc
exit 1
fi

aa=`echo $chmap | cut -d, -f1`
echo $aa | grep '\:' > /dev/null ; onenmb=$?
if [ "$onenmb" -eq 1 ]; then
ix1=$aa
nx=1
ix2=$ix1
else
ix1=`echo $aa | cut -d: -f1`
ix2=`echo $aa | cut -d: -f2`
nx=$((ix2-ix1+1))
fi

aa=`echo $chmap | cut -d, -f2`
echo $aa | grep '\:' > /dev/null ; onenmb=$?
if [ "$onenmb" -eq 1 ]; then
iy1=$aa
ny=1
iy2=$iy1
else
iy1=`echo $aa | cut -d: -f1`
iy2=`echo $aa | cut -d: -f2`
ny=$((iy2-iy1+1))
fi

# echo $nx" "$ix1" "$ix2
# echo $ny" "$iy1" "$iy2

iy=$iy1
ix=$ix1
newl=1
nw=`cat ${ftmp[2]} | wc -w`
for i in `cat ${ftmp[2]}`; do
# [ "$iy" -eq "$iy1" ] && printf " %3d " $iy
# [ "$ix" -eq "$ix1" ] && printf " %3d " $iy
if [ "$ny" -gt 1 -a "$newl" -eq 1 ]; then
printf "%3d : " $iy
newl=0
fi
if [ "$i" == "&&&" ]; then
printf " XXX "
else
printf "%6.0f " "$i"
fi
let $((ix++))
if [ "$ix" -gt "$ix2" ]; then
let $((iy++))
ix=$ix1
printf "\n"
newl=1
fi
done



exit_proc

exit 0
{CODE}
-={ANAME()}epicsRunStart{ANAME}epicsRunStart=-
{ALINK(aname=top)}::Back to top::{ALINK}
* Grabs start of run information entered by user (supplementary TCL script __runstart.tcl__ is used for that).
* Includes prescale factors, EPICS variables, HV values and detector thresholds.
* Generates the halog entry.
* Inserts into data stream as event with type 130.

''NOTE: Only variables in sections 2,5,7,8,10 inserted into data stream. It is implemented using TURNON* variables.''
{CODE()}#!/bin/ksh
#
# $Id: epicsRunStart,v 1.5 2001/05/31 07:23:36 adaq Exp $
# May 18, 1998, adapted from the E91026 experiment.
# Log a bunch of EPICS data at end of run.
# The experimenters may modify this file.
#
# March 5, 1999 R.M. Use runstart_happex.tcl
# for happex. Toss out He3 stuff.
#
# July 28, 1999 R.M. Took away runstart_happex.tcl and
# restored what was there before happex,
# but runstart.tcl may need mods.
#
# Sept 14, 2000 R.M. Spectrometers are "right" and "left".
# This goes with the magnet system, not
# with the detector stack nor particle type.
# May 25, 2001 P.Z gather all filenames at the beginning
#
#
# Sept 18, 2002 K.M Modified file for E00007. Added
# readback for G0 helicity and FPP HV
#
#
# Dec 23, 2002 P.S Modified file for E01012: added polarized
# 3He variables readback.
#
# Jan 8, 2003 P.S add Helicity variables
#
# Apr 16, 2003 P.S add septum and gradient coils variables
#
# May 6, 2003 R.M. Added HALLA:p and HALLA:dpp
#
# June 5, 2005 P.M. Add septum and gradient coils variables again
#
# $Log: epicsRunStart,v $
# Revision 1.5 2001/05/31 07:23:36 adaq
# working version 0.2 for HRS left
#
# Revision 1.4 2001/05/31 05:56:17 adaq
# *** empty log message ***
#
# Revision 1.3 2001/05/29 22:29:18 adaq
# *** empty log message ***
#

log() { # debug echo - send it to /dev/null when not needed
echo $* >> $epicsfile
if [ ! -z "$PS1" ] ; then echo $* ; fi
}
#

# make it easy to turn off stuff (dont just comment it out!)
TURNON1=0
TURNON2=1 # Bigbite magnets
TURNON3=0
TURNON4=0
TURNON5=1
TURNON6=0
TURNON7=1 # injector info
TURNON8=1 # Gen thresholds for BigHnad and BigBite
TURNON9=0 # SLI data and watefall target
TURNON10=1 # 3he target variables

CAGET=$HOME/scripts/caget
WISH=$CODA_BIN/dpwish
#
RNUMFILE=$HOME/datafile/rcRunNumber # file with the run number
RUNFILES=$HOME/epics/runfiles # epics run files
PRESCALE=$HOME/prescale/prescale.dat # prescale file
HALOGCOM=~adaq/halog/src/halogentry.file #
#
RTITFILE=$HOME/scripts/RUN_INFO.TITLE
RSTAFILE=$HOME/scripts/.runstart.info
RCOMFILE=$HOME/scripts/.runstart.comments
CSCRIPTS=$HOME/scripts/cscripts
#
TKSCR=$HOME/scripts/runstart.tcl
#
num=`cat $RNUMFILE`
keyword="Start_Run_2198,Run_type=other,beam_energy=1.099,beam_polarization=%,beam_raster=off,comment_text=Data with beam Threshold set to -150 2.5 uA,daq_mode=GeN,kin_name=,leftarm_p=1.095,leftarm_theta=6.0,rightarm_p=1.097,rightarm_theta=6.0,target_halfwaveplate=out,target_name=none,target_polarization=0,target_type=BeO Carbon foils"

epicsfile=$RUNFILES/Start_of_Run_$num.epics
halogfile=$RUNFILES/halog_$num.epics
#
# exec Tcl/Tk script
#
$WISH -f $TKSCR
#
key_phrase=`cat $RTITFILE`
keyword="Start_Run_${num},${key_phrase}"
#
/bin/rm -f $epicsfile
log "Beginning-of-run EPICS data for Run Number $num at `date`"
log ""

#keyword=Start_Run_2198,Run_type=other,beam_energy=1.099,beam_polarization=%,beam_raster=off,comment_text=Data with beam Threshold set to -150 2.5 uA,daq_mode=GeN,kin_name=,leftarm_p=1.095,leftarm_theta=6.0,rightarm_p=1.097,rightarm_theta=6.0,target_halfwaveplate=out,target_name=none,target_polarization=0,target_type=BeO Carbon foils
# write prescales
cat $PRESCALE >> $epicsfile
log " ">>$epicsfile
#
# GET ALL THE EPICS INFO
# Set address list of epics hosts for magnets variables
#
EPICS_CA_ADDR_LIST="129.57.188.47 129.57.188.13 129.57.188.15 129.57.188.8 129.57.188.5 129.57.188.68 129.57.188.58 129.57.188.74"
#
# Magnet Info
#
if [ $TURNON1 -eq 1 ] ; then
#
log "Left septum set current : "`$CAGET -t MSEPLRSETI` # >> $epicsfile
log "Left septum current readback : "`$CAGET -t MSEPLMIR` # >> $epicsfile
log "Left septum upper coil T : "`$CAGET -t MSEPLUPCOILT` # >> $epicsfile
log "Left septum lower coil T : "`$CAGET -t MSEPLLOWCOILT` # >> $epicsfile
log "Right septum set current : "`$CAGET -t MSEPRRSETI` # >> $epicsfile
log "Right septum current readback : "`$CAGET -t MSEPRMIR` # >> $epicsfile
log "Right septum upper coil T : "`$CAGET -t MSEPRUPCOILT` # >> $epicsfile
log "Right septum lower coil T : "`$CAGET -t MSEPRLOWCOILT` # >> $epicsfile
#log "Left septum yoke T : "`$CAGET -t MSEPLT2R` # >> $epicsfile
#log "Left septum bore shield T : "`$CAGET -t MSEPLT5R` # >> $epicsfile
#
log "Left Arm Q1 momentum : "`$CAGET -t HacL_Q1_P0rb `
log "Left Arm Q1 power supply : "`$CAGET -t MQ171LM`
log "Left Arm Q1 gauss meter : "`$CAGET -t HacL_Q1_LS450:FLD_DATA`
log "Left Arm Q2 power supply current : "`$CAGET -t HacL_Q2_HP3458A:IOUT`
log "Left Arm Q2 momentum : "`$CAGET -t HacL_Q2_P0rb `
log "Left Arm Q2 gauss meter : "`$CAGET -t HacL_Q2_LS450:FLD_DATA`
log "Left Arm Q2 power supply polarity : "`$CAGET -t HacL_VMIC1182:0_Ch17`
log "Left Arm D1 power supply current : "`$CAGET -t HacL_D1_HP3458A:IOUT`
log "Left Arm D1 momentum : "`$CAGET -t HacL_D1_P0rb `
log "Left Arm D1 NMR : "`$CAGET -t HacL_D1_NMR:SIG`
log "Left Arm Q3 power supply current : "`$CAGET -t HacL_Q3_HP3458A:IOUT`
log "Left Arm Q3 momentum : "`$CAGET -t HacL_Q3_P0rb `
log "Left Arm Q3 gauss meter : "`$CAGET -t HacL_Q3_LS450:FLD_DATA`
log "Left Arm Q3 power supply polarity : "`$CAGET -t HacL_VMIC1182:0_Ch26`
#
log "Right Arm Q1 momentum : "`$CAGET -t HacR_Q1_P0rb `
log "Right Arm Q1 power supply : "`$CAGET -t MQ172RM`
log "Right Arm Q1 gauss meter : "`$CAGET -t HacR_Q1_LS450:FLD_DATA`
log "Right Arm Q2 power supply current : "`$CAGET -t HacR_Q2_HP3458A:IOUT`
log "Right Arm Q2 momentum : "`$CAGET -t HacR_Q2_P0rb `
log "Right Arm Q2 gauss meter : "`$CAGET -t HacR_Q2_LS450:FLD_DATA`
log "Right Arm Q2 power supply polarity : "`$CAGET -t HacR_VMIC1182:0_Ch17`
log "Right Arm D1 power supply current : "`$CAGET -t HacR_D1_HP3458A:IOUT`
log "Right Arm D1 momentum : "`$CAGET -t HacR_D1_P0rb `
log "Right Arm D1 NMR : "`$CAGET -t HacR_D1_NMR:SIG`
log "Right Arm Q3 power supply current : "`$CAGET -t HacR_Q3_HP3458A:IOUT`
log "Right Arm Q3 momentum : "`$CAGET -t HacR_Q3_P0rb `
log "Right Arm Q3 gauss meter : "`$CAGET -t HacR_Q3_LS450:FLD_DATA`
log "Right Arm Q3 power supply polarity : "`$CAGET -t HacR_VMIC1182:0_Ch26`
#
fi

if [ $TURNON2 -eq 1 ] ; then

EPICS_CA_ADDR_LIST="129.57.188.16 129.57.188.42 129.57.188.58"

# BigBite magnet
#log "BigBite magnet magnet probe : "`$CAGET -t HacR_BB_LS450:FLD_DATA`
log " -----"
log "BigBite magnet current setpoint : "`$CAGET -t MBIGBOX`
log "BigBite magnet current readback : "`$CAGET -t MBIGBOXM`

fi

if [ $TURNON3 -eq 1 ] ; then

# VDC Currents
#
EPICS_CA_ADDR_LIST="129.57.188.4 129.57.188.10 "
#
log "Left Arm Top VDC Current : "`$CAGET -t HrsH_VDC_rCURTop`
log "Left Arm Bottom VDC Current : "`$CAGET -t HrsH_VDC_rCURBot`
log "Left Arm Top VDC voltage : "`$CAGET -t HrsH_VDC_rHVTop`
log "Left Arm Bottom VDC voltage : "`$CAGET -t HrsH_VDC_rHVBot`
log "Right Arm Top VDC voltage : "`$CAGET -t HRSE_DTECTR_HPE1313A:0_Ch0`
log "Right Arm Bottom VDC voltage : "`$CAGET -t HRSE_DTECTR_HPE1313A:0_Ch2`
#
fi

if [ $TURNON4 -eq 1 ] ; then
#
# RICH stuff
EPICS_CA_ADDR_LIST="129.57.188.40"
log "RICH Vmon 16 : "`$CAGET -t CAENdatC1M2Ch16.NLH`
log "RICH Imon 16 : "`$CAGET -t CAENdatC1M2Ch16.NLK`
log "RICH Vmon 17 : "`$CAGET -t CAENdatC1M2Ch17.NLH`
log "RICH Imon 17 : "`$CAGET -t CAENdatC1M2Ch17.NLK`
log "RICH Radiator Oxygen : "`$CAGET -t HacRICH_HPE1313A:0_RadO2`
log "RICH Radiator Moisture : "`$CAGET -t HacRICH_HPE1313A:0_RadMoist`
log "RICH Radiator Pressure : "`$CAGET -t HacRICH_HPE1313A:0_Ch9`
log "RICH Condensor temperature : "`$CAGET -t HacRICH_HPE1313A:0_Cond_Temp`
log "RICH Gas Oxygen : "`$CAGET -t HacRICH_HPE1313A:0_GasO2`
log "RICH Gas Moisture : "`$CAGET -t HacRICH_HPE1313A:0_GasMoist`
log "RICH Argon Flow : "`$CAGET -t HacRICH_HPE1313A:0_Ch4`
log "RICH Methane Flow : "`$CAGET -t HacRICH_HPE1313A:0_Ch5`
log "RICH A Volts : "`$CAGET -t HacRICH_HPE1313A:0_Ch10`
log "RICH B Volts : "`$CAGET -t HacRICH_HPE1313A:0_Ch11`
#
fi

if [ $TURNON5 -eq 1 ] ; then

# Beam Info
#
# Set address list of epics hosts for beam current variables
#
EPICS_CA_ADDR_LIST="129.57.188.5"
log " -----"
log "Average current of the two cavities : "`$CAGET -t hac_bcm_average`
log "Current on Unser monitor : "`$CAGET -t hac_unser_current`
log "Current on Upstream bcm : "`$CAGET -t hac_bcm_dvm1_current`
log "Current on Downstream bcm : "`$CAGET -t hac_bcm_dvm2_current`
log "Upstream Cavity Coefficient : "`$CAGET -t hac_bcm_A1`
log "Downstream Cavity Coefficient : "`$CAGET -t hac_bcm_A2`
#
EPICS_CA_ADDR_LIST="129.57.188.5 129.57.188.2 129.57.236.67 129.57.236.70 129.57.236.87 129.57.255.4"
log " Current on IBC0L02 (source) : "`$CAGET -t IBC0L02Current`
#
EPICS_CA_ADDR_LIST="129.57.255.4 129.57.188.5 129.57.188.13 129.57.188.15 129.57.188.16 129.57.236.67"
log "Tiefenbach Hall A energy : "`$CAGET -t halla_MeV `
log "Tiefenbach Hall C energy : "`$CAGET -t hallc_MeV `
log "Delta(E)/E width (MV_AI_DXWID) : "`$CAGET -t MV_AI_DXWID `
#
EPICS_CA_ADDR_LIST="129.57.236.67 129.57.255.4" #this last address seems to give some kind of confilst (Gaskell 5/1/2002)
EPICS_CA_ADDR_LIST="129.57.255.4 "
log "HALLA:p : "`$CAGET -t HALLA:p `
log "HALLA:dpp : "`$CAGET -t HALLA:dpp `
log "MBSY1c Hall A Beam energy : "`$CAGET -t MBSY1C_energy`
log "MBSY3c Hall C Beam energy : "`$CAGET -t MBSY3C_energy`
log "MBSY1c magnet current (amp) : "`$CAGET -t MBSY1C `
log "MBSY1c Bdl : "`$CAGET -t MBSY1C.BDL `
#
# arc stuff
#
EPICS_CA_ADDR_LIST="129.57.255.4 129.57.188.5 129.57.188.13 129.57.188.15 129.57.188.16 129.57.188.2 129.57.236.67 129.57.236.70 129.57.236.87 129.57.236.128 129.57.236.129"
log "Arc1 dp/p : "`$CAGET -t Arc1_dpp`
log "Arc2 dp/p : "`$CAGET -t Arc2_dpp`
#
fi

if [ $TURNON6 -eq 1 ] ; then
#
EPICS_CA_ADDR_LIST="129.57.188.13 129.57.188.15 129.57.188.8"
log "Left Arm Collimator : "`$CAGET -t HacL_COL:ENC`
#log " Left LVDT HPM : "`$CAGET -t HacL_HPM_LVDT:VALr` # >> $epicsfile
#log " Left LVDT VPM : "`$CAGET -t HacL_VPM_LVDT:VALr` # >> $epicsfile
log " HacL_HPE1313A:0_Ch58 : "`$CAGET -t HacL_HPE1313A:0_Ch58`
log " HacL_HPE1313A:0_Ch55 : "`$CAGET -t HacL_HPE1313A:0_Ch55`
log " HacL_HPE1313A:0_Ch54 : "`$CAGET -t HacL_HPE1313A:0_Ch54`
#log " HacL_alignROLL : "`$CAGET -t HacL_alignROLL` # >> $epicsfile
#log " HacL_alignPITCH : "`$CAGET -t HacL_alignPITCH` # >> $epicsfile
#log " HacL_alignHPT : "`$CAGET -t HacL_alignHPT ` # >> $epicsfile
##
#
#EPICS_CA_ADDR_LIST="129.57.188.13 129.57.188.15 129.57.188.8"
EPICS_CA_ADDR_LIST="129.57.255.5"
log "Left Arm Angle Floor Angle : "`$CAGET -t HacL_AglMrk` # >> $epicsfile
log "Left Arm Angle Vernier : "`$CAGET -t HacL_AglVrn` # >> $epicsfile
log "Left Arm Scattering Angle : "`$CAGET -t HacL_alignAGL` # >> $epicsfile
#
#EPICS_CA_ADDR_LIST="129.57.188.13 129.57.188.15 129.57.188.8"
#log " Right Arm Arm Collimator : "`$CAGET -t HacR_COL:ENC` # >> $epicsfile
#log " Right LVDT HPM : "`$CAGET -t HacR_HPM_LVDT:VALr` # >> $epicsfile
#log " Right LVDT VPM : "`$CAGET -t HacR_VPM_LVDT:VALr` # >> $epicsfile
#log " HacR_HPE1313A:0_Ch58 : "`$CAGET -t HacR_HPE1313A:0_Ch58` # >> $epicsfile
#log " HacR_HPE1313A:0_Ch55 : "`$CAGET -t HacR_HPE1313A:0_Ch55` # >> $epicsfile
#log " HacR_HPE1313A:0_Ch54 : "`$CAGET -t HacR_HPE1313A:0_Ch54` # >> $epicsfile
#log " HacR_alignROLL : "`$CAGET -t HacR_alignROLL` # >> $epicsfile
#log " HacR_alignPITCH : "`$CAGET -t HacR_alignPITCH` # >> $epicsfile
#log " HacR_alignHPT : "`$CAGET -t HacR_alignHPT ` # >> $epicsfile
##
#
EPICS_CA_ADDR_LIST="129.57.188.13 129.57.188.15 129.57.188.8"
log "Right Arm Angle Floor Angle : "`$CAGET -t HacR_AglMrk`
log "Right Arm Angle Vernier : "`$CAGET -t HacR_AglVrn`
log "Right Arm Scattering Angle : "`$CAGET -t HacR_alignAGL`
#
fi

if [ $TURNON7 -eq 1 ] ; then

# polarized beam info
#EPICS_CA_ADDR_LIST="129.57.188.2 129.57.236.67 129.57.236.70 129.57.236.87 129.57.236.128 129.57.236.129"
#log "Laser attenuation Hall A : "`$CAGET -t psub_aa_pos`
#log "Laser power Hall A : "`$CAGET -t IGL1I00DAC0`
EPICS_CA_ADDR_LIST="129.57.255.4"
log " -----"
log "IPM1C12.XPOS : "`$CAGET -t IPM1C12.XPOS `
log "IPM1C12.YPOS : "`$CAGET -t IPM1C12.YPOS `
log "IPM1H04A.XPOS : "`$CAGET -t IPM1H04A.XPOS `
log "IPM1H04A.YPOS : "`$CAGET -t IPM1H04A.YPOS `
log "IPM1H04B.XPOS : "`$CAGET -t IPM1H04B.XPOS `
log "IPM1H04B.YPOS : "`$CAGET -t IPM1H04B.YPOS `
EPICS_CA_ADDR_LIST="129.57.242.3 129.57.242.2 129.57.236.67 129.57.236.70 129.57.236.87"
# survey offsets in bpm positions
log "Survey X offset bpmA : "`$CAGET -t IPM1H04A.XSOF `
log "Survey Y offset bpmA : "`$CAGET -t IPM1H04A.YSOF `
log "Survey X offset bpmB : "`$CAGET -t IPM1H04B.XSOF `
log "Survey Y offset bpmB : "`$CAGET -t IPM1H04B.YSOF `
#
# polarized beam information
EPICS_CA_ADDR_LIST="129.57.255.4 129.57.188.5 129.57.188.13 129.57.188.15 129.57.188.16 129.57.188.2 129.57.236.67 129.57.236.70 129.57.236.87 129.57.236.128 129.57.236.129"
EPICS_CA_ADDR_LIST="129.57.255.4"
log " -----"
log "Wien angle : "`$CAGET -t WienAngle`
log "Helicity Mode ON/OFF Random/Toggle : "`$CAGET -t IGL1I00OD16_5`
#log "Wien BDL : "`$CAGET -t MWF1I04.BDL`
log "Wien field : "`$CAGET -t IGL1I00DAC6`
log "Laser attenuation Hall A : "`$CAGET -t psub_aa_pos`
log "Laser power Hall A : "`$CAGET -t IGL1I00DAC0 `
log "Half-wave plate (off=out) : "`$CAGET -t IGL1I00OD16_16 `
log "rotating waveplate : "`$CAGET -t psub_pl_pos `
log "Beam Half-wave plate (off=out) : "`$CAGET -t IGL1I00DI24_24M `

# OTR BEAM INFO
#EPICS_CA_ADDR_LIST="129.57.238.102"
#log "target OTR x-position : "`$CAGET -t hlat:MV_AI_DXPOS `
#log "target OTR y-position : "`$CAGET -t hlat:MV_AI_DYPOS `
#log "target OTR x-width : "`$CAGET -t hlat:MV_AI_DXWID `
#log "target OTR y-width : "`$CAGET -t hlat:MV_AI_DYWID `
#log "target OTR data valid flag : "`$CAGET -t hlat:DataValid `
#log "target OTR In/Out : "`$CAGET -t hlat:DataReason `
#log "Arc OTR x-position : "`$CAGET -t hla:MV_AI_DXPOS `
#log "Arc OTR y-position : "`$CAGET -t hla:MV_AI_DYPOS `
#log "Arc OTR x-width : "`$CAGET -t hla:MV_AI_DXWID `
#log "Arc OTR y-width : "`$CAGET -t hla:MV_AI_DYWID `
#log "Arc OTR data valid flag : "`$CAGET -t hla:DataValid `
#log "Arc OTR In/Out : "`$CAGET -t hla:DataReason `


#
# CRYO TARGET INFO
#
#EPICS_CA_ADDR_LIST="129.57.188.29"
#log "Target : "`$CAGET -t haBDSSELECT`
#log "fan frequency loop 1 : "`$CAGET -t haL1_Fan_frequency_R `
#log "fan frequency loop 2 : "`$CAGET -t haL2_Fan_frequency_R `
#log "Encoder position : "`$CAGET -t haBDSPOS `
#log "temperature loop 1 : "`$CAGET -t haITC502_1_Sensor_1_R `
#log "temperature loop 1 : "`$CAGET -t haITC502_1_Sensor_2_R `
#log "temperature loop 1 : "`$CAGET -t haITC502_1_Sensor_3_R `
#log "temperature loop 2 : "`$CAGET -t haITC502_2_Sensor_1_R `
#log "temperature loop 2 : "`$CAGET -t haITC502_2_Sensor_2_R `
#log "temperature loop 2 : "`$CAGET -t haITC502_2_Sensor_3_R `
#log "pressure loop D2 : "`$CAGET -t haH2_P_Fill_Bottle_R `
#log "pressure loop H2 : "`$CAGET -t haD2_P_Fill_Bottle_R `
#
fi


if [ $TURNON8 -eq 1 ] ; then

log " -----"
log "Neutron arm threshold: "`/adaqfs/home/a-onl/scripts/threshold-gen get 0 | gawk '{print $1}`
log "BigBite Preshower threshold: "`/adaqfs/home/a-onl/scripts/threshold-gen get 1 | gawk '{print $1}`
log "BigBite TotalShower threshold: "`/adaqfs/home/a-onl/scripts/threshold-gen get 2 | gawk '{print $1}`
log " -----"
log "BigBite DC Voltage Ch1 Cathode Front : "`hv_proc.com -D BB_DC -m 1,1:1 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch1 Cathode Back : "`hv_proc.com -D BB_DC -m 2,1:1 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch1 Field : "`hv_proc.com -D BB_DC -m 3,1:1 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch2 Cathode : "`hv_proc.com -D BB_DC -m 1,2:2 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch2 Cathode : "`hv_proc.com -D BB_DC -m 2,2:2 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch2 Field : "`hv_proc.com -D BB_DC -m 3,2:2 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch3 Cathode Top Front : "`hv_proc.com -D BB_DC -m 1,3:3 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch3 Cathode Bot. Front : "`hv_proc.com -D BB_DC -m 2,3:3 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch3 Cathode Top Back : "`hv_proc.com -D BB_DC -m 3,3:3 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch3 Cathode Bot. Back : "`hv_proc.com -D BB_DC -m 4,3:3 -c GET -P MV | gawk '{print $1}`
log "BigBite DC Voltage Ch3 Field : "`hv_proc.com -D BB_DC -m 5,3:3 -c GET -P MV | gawk '{print $1}`
log " -----"
log "BigBite DC Current Ch1 Cathode Front : "`hv_proc.com -D BB_DC -m 1,1:1 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch1 Cathode Back : "`hv_proc.com -D BB_DC -m 2,1:1 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch1 Field : "`hv_proc.com -D BB_DC -m 3,1:1 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch2 Cathode : "`hv_proc.com -D BB_DC -m 1,2:2 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch2 Cathode : "`hv_proc.com -D BB_DC -m 2,2:2 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch2 Field : "`hv_proc.com -D BB_DC -m 3,2:2 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch3 Cathode Top Front : "`hv_proc.com -D BB_DC -m 1,3:3 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch3 Cathode Bot. Front : "`hv_proc.com -D BB_DC -m 2,3:3 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch3 Cathode Top Back : "`hv_proc.com -D BB_DC -m 3,3:3 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch3 Cathode Bot. Back : "`hv_proc.com -D BB_DC -m 4,3:3 -c GET -P MC | gawk '{print $1}`
log "BigBite DC Current Ch3 Field : "`hv_proc.com -D BB_DC -m 5,3:3 -c GET -P MC | gawk '{print $1}`


fi
if [ $TURNON10 -eq 1 ] ; then
EPICS_CA_ADDR_LIST="129.57.188.16 129.57.188.42 129.57.188.58"
log " -----"
log " HacAi_hpchan0: Temp at Target Cell: "`$CAGET -t HacAi_hpchan0 `
log " HacAi_hpchan1: Temp at Target Cell: "`$CAGET -t HacAi_hpchan1 `
log " HacAi_hpchan2: Temp at Target Cell: "`$CAGET -t HacAi_hpchan2 `
log " HacAi_hpchan3: Temp at Target Cell: "`$CAGET -t HacAi_hpchan3 `
log " HacAi_hpchan4: Temp at Target Cell: "`$CAGET -t HacAi_hpchan4 `
log " HacAi_hpchan5: Temp at Target Cell: "`$CAGET -t HacAi_hpchan5 `
log " HacAi_hpchan6: Temp at Target Cell: "`$CAGET -t HacAi_hpchan6 `
log " HacAi_hpchan7: Temp at Target Cell: "`$CAGET -t HacAi_hpchan7 `
log " HacAi_hpchan8: Temp at Target Cell: "`$CAGET -t HacAi_hpchan8 `
log " HacAi_hpchan9: Temp at Target Cell: "`$CAGET -t HacAi_hpchan9 `
log " HacAi_hpchan60: Temp at Target Cell: "`$CAGET -t HacAi_hpchan60 `
log " HacAi_hpchan61: Temp at Target Cell: "`$CAGET -t HacAi_hpchan61 `
log " HacAi_hpchan62: Temp at Target Cell: "`$CAGET -t HacAi_hpchan62 `
log " Target position: "`$CAGET -t HaGenTargPos `
log " Oven Air Flow: "`$CAGET -t HacOMEGA_RTD `
log " Over Heater Temperature: "`$CAGET -t HacDP41_READ `
log " -----"
log " HaGenTargBrake : "`$CAGET -t HaGenTargBrake `
log " HaGenTargBrake : "`$CAGET -t HaGenTargBrake `
#log " HacOMEGA_RTD : "`$CAGET -t HacOMEGA_RTD`
log " HacOMEGA_AL1 : "`$CAGET -t HacOMEGA_AL1`
log " HacOMEGA_READ : "`$CAGET -t HacOMEGA_READ`
log " HacOMEGA_SP1 : "`$CAGET -t HacOMEGA_SP1`
log " HacOMEGA_PROP1 : "`$CAGET -t HacOMEGA_PROP1`
log " HacOMEGA_RST1 : "`$CAGET -t HacOMEGA_RST1`
log " HacOMEGA_RATE : "`$CAGET -t HacOMEGA_RATE1`
log " pol3heSmallCoilCurrent : "`$CAGET -t pol3heSmallCoilCurrent`
log " CLASER_STATE_MB : "`$CAGET -t CLASER_STATE_MB`
log " CLASER_RDCUR : "`$CAGET -t CLASER_RDCUR`
log " CLASER_TEMP : "`$CAGET -t CLASER_TEMP`
log " CLASER2_STATE_MB : "`$CAGET -t CLASER2_STATE_MB`
log " CLASER2_RDCUR CLASER2_TEMP : "`$CAGET -t CLASER2_RDCUR CLASER2_TEMP`
log " CLASERAB_STATE_MB : "`$CAGET -t CLASERAB_STATE_MB`
log " CLASERAB_GETCUR0 : "`$CAGET -t CLASERAB_GETCUR0`
log " CLASERAB_GETCUR : "`$CAGET -t CLASERAB_GETCUR1`
log " CLASERAB_GETTEMP0 : "`$CAGET -t CLASERAB_GETTEMP0`
log " CLASERAB_GETTEMP : "`$CAGET -t CLASERAB_GETTEMP1`
log " CLASER3_STATE_MB : "`$CAGET -t CLASER3_STATE_MB`
log " CLASER3_RDCUR : "`$CAGET -t CLASER3_RDCUR`
log " CLASER3_TEMP : "`$CAGET -t CLASER3_TEMP`
log " CLASER4_STATE_MB : "`$CAGET -t CLASER4_STATE_MB`
log " CLASER4_RDCUR : "`$CAGET -t CLASER4_RDCUR`
log " CLASER4_TEMP : "`$CAGET -t CLASER4_TEMP`
log " CLASERAB2_STATE_M: "`$CAGET -t CLASERAB2_STATE_MB`
log " CLASERAB2_GETCUR0 : "`$CAGET -t CLASERAB2_GETCUR0`
log " CLASERAB2_GETCUR : "`$CAGET -t CLASERAB2_GETCUR1`
log " CLASERAB2_GETTEMP : "`$CAGET -t CLASERAB2_GETTEMP0`
log " CLASERAB2_GETTEMP1 : "`$CAGET -t CLASERAB2_GETTEMP1`
log " ----"
fi


if [ $TURNON9 -eq 1 ] ; then
EPICS_CA_ADDR_LIST="129.57.238.102 129.57.188.57"
log "SLI data valid? : "`$CAGET -t slia:DataValid`
log "SLI horiz size mm : "`$CAGET -t slia:MV_AO_DYWIDS`
log "SLI Energy spread *10^5 : "`$CAGET -t slia:MV_AO_SPREADS`
log "SLI x position : "`$CAGET -t slia:MV_AI_DYPOS`
log "SLI vert. size mm : "`$CAGET -t slia:MV_AO_DXWIDS`
log "SLI y position : "`$CAGET -t slia:MV_AI_DXPOS`
log "Waterfall Pump Speed : "`$CAGET -t HAWF_DAC1`
log "Target StepMot Pos. : "`$CAGET -t HA_WF_motpos`

fi

cp $epicsfile $halogfile

$HALOGCOM $halogfile "$keyword"

echo "epicsRunStart: script finished"

# This is sort of temporary, I want to log everything into logbook
#log ""
#log "Run Information:"
#log ""
#cat $RSTAFILE >> $epicsfile
#comfile=`cat $RCOMFILE`
#log "Using Type="
#log $1
#log ""
#if [ -z "$1" ] ; then
# elog -l runliste -h clrlpc -p 8080 -x -a Author="Auto Submission from DAQ" -a Type="DVCS" -a Number=$num -a Subject="Start of Run" -f $epicsfile "Information for run $num $comfile";
#else
# elog -l runliste -h clrlpc -p 8080 -x -a Author="Auto Submission from DAQ" -a Type="$1" -a Number=$num -a Subject="Start of Run" -f $epicsfile "Information for run $num $comfile";
#fi
{CODE}
-={ANAME()}getscaler{ANAME}getscaler=-
{ALINK(aname=top)}::Back to top::{ALINK}
Uses __~a-onl/scaler/gen/onl/scread__ executable to read out scaler and insert every 8 seconds into data stream.
{CODE()}#!/bin/ksh
SCRIPTS=/adaqfs/halla/a-onl/scripts
BBITE=/adaqfs/halla/a-onl/scaler/saw_server/RPC
pidfile=$SCRIPTS/getscalers_pid
DVCS=/adaqfs/halla/a-onl/scaler/dvcs_calo
RIGHT=/adaqfs/halla/a-onl/scaler/right
LEFT=/adaqfs/halla/a-onl/scaler/left
BB=/adaqfs/halla/a-onl/scaler/gen/onl
TSCALE=/adaqfs/halla/a-onl/vme/trigscal
echo $$>$pidfile
sleep 20
while [ 1 = 1 ] ; do
$BB/scread -i
sleep 8
done
{CODE}
-={ANAME()}epicsLogger{ANAME}epicsLogger=-
{ALINK(aname=top)}::Back to top::{ALINK}
Every 30 seconds collects the long list of epics variables and inserts them into data stream.
{CODE()}#!/bin/ksh
#
# Script to get EPICS data periodically. The time period will depend
# on the sleep commands here but also on any delays caused by missing
# EPICS channels (e.g. a computer is off).
#
# Before adding anything, make sure 'caget' works at the command
# line and you know what you are doing !!!
#
# July 04 -- RWM Added P0rb (readback of momentum setting) and
# Hac*_VMIC1182:0_Ch17
#
#
# TESTPRINT is to debug that things work.
TESTPRINT=1
EPICS_DIR=$HOME/epics
SCRIPTS=$HOME/scripts
pidfile=$EPICS_DIR/.epicsLoggerpid
epicsfile1=$EPICS_DIR/halla.epics
#
# BR added SLI stuff
#
#epicslist1="slia:DataValid slia:MV_AO_DYWIDS slia:MV_AO_SPREADS slia:MV_AI_DYWID slia:MV_AI_DYPOS slia:MV_AI_DXPOS IPM1H04A IPM1H04A.XPOS IPM1H04A.YPOS IPM1H04B IPM1H04B.XPOS IPM1H04B.YPOS IPM1C08.XPOS IPM1C10 IPM1C10.XPOS IPM1C10.YPOS IPM1C12 IPM1C12.XPOS IPM1C12.YPOS IPM1C14 IPM1C14.XPOS IPM1C14.YPOS IPM1C16 IPM1C16.XPOS IPM1C16.YPOS IPM1C18 IPM1C18.XPOS IPM1C18.YPOS IPM1C20 IPM1C20.XPOS IPM1C20.YPOS IPM1H01 IPM1H01.XPOS IPM1H01.YPOS MQA1H01RB.BDL MQM1H02RB.BDL MQO1H03RB.BDL MQO1H03ARB.BDL MBSY1C_energy MQA1H01 MQM1H02 MQO1H03 MQO1H03A MV_AI_DXPOS MV_AI_DXWID MV_AI_DYPOS MV_AI_DYWID MV_AI_XPOS MV_AI_XWID MV_AI_YPOS MV_AI_YWID MBSY3C_energy halla_MeV hallc_MeV MBSY1C.BDL MBSY1C halla_MeV MBSY1C_energy HALLA:p HALLA:dpp HELG0TSETTLEs HELG0DELAYs HELG0PATTERNs HELG0TSETTLEd HELG0DELAYd HELG0PATTERNd FB_A:use_RF FB_A:status:mbbi2.B7 IGL1I00OD16_16 IGL1I00DI24_24M IBC0L02Current"
epicslist1="IPM1H04A IPM1H04A.XPOS IPM1H04A.YPOS IPM1H04B IPM1H04B.XPOS IPM1H04B.YPOS IPM1C08.XPOS IPM1C10 IPM1C10.XPOS IPM1C10.YPOS IPM1C12 IPM1C12.XPOS IPM1C12.YPOS IPM1C14 IPM1C14.XPOS IPM1C14.YPOS IPM1C16 IPM1C16.XPOS IPM1C16.YPOS IPM1C18 IPM1C18.XPOS IPM1C18.YPOS IPM1C20 IPM1C20.XPOS IPM1C20.YPOS IPM1H01 IPM1H01.XPOS IPM1H01.YPOS FB_A:use_RF FB_A:status:mbbi2.B7 halla_MeV hallc_MeV IBC0L02Current"
#
# Readout the following from Hall A
#
#HacR_Q1_DF853:AD8 Right Arm Q1 power supply current
#HacR_Q1_LS450:FIELD? Right Arm Q1 gauss meter
#HacR_Q1_P0rb Right Arm Q1 momentum setting readback
#HacR_Q2_HP3458A:IOUT Right Arm Q2 power supply current
#HacR_Q2_LS450:FIELD? Right Arm Q2 gauss meter
#HacR_Q2_P0rb Right Arm Q2 momentum setting readback
#HacR_D1_HP3458A:IOUT Right Arm D1 power supply current
#HacR_D1_VMIC1182:0_Ch17 Right Arm D1 power supply current
#HacR_D1_NMR:SIG Right Arm D1 NMR
#HacR_D1_NMR:SIGLCK Right Arm D1 NMR Lock Status
#HacR_D1_P0rb Right Arm D1 momentum setting readback
#HacR_Q3_HP3458A:IOUT Right Arm Q3 power supply current
#HacR_Q3_LS450:FIELD? Right Arm Q3 gauss meter
#HacR_Q3_P0rb Right Arm Q3 momentum setting readback
#
#HacL_Q1_DF853:AD8 Left Arm Q1 power supply current
#HacL_Q1_LS450:FIELD? Left Arm Q1 gauss meter
#HacL_Q1_P0rb Left Arm Q1 momentum setting readback
#HacL_Q2_HP3458A:IOUT Left Arm Q2 power supply current
#HacL_Q2_LS450:FIELD? Left Arm Q2 gauss meter
#HacL_Q2_P0rb Left Arm Q2 momentum setting readback
#HacL_D1_HP3458A:IOUT Left Arm D1 power supply current
#HacL_D1_NMR:SIG Left Arm D1 NMR
#HacL_D1_NMR:SIGLCK Left Arm D1 NMR Lock Status
#HacL_D1_VMIC1182:0_Ch17 Left Arm D1 power supply current
#HacL_D1_P0rb Left Arm D1 momentum setting readback
#HacL_Q3_HP3458A:IOUT Left Arm Q3 power supply current
#HacL_Q3_LS450:FIELD? Left Arm Q3 gauss meter
#HacL_Q3_P0rb Left Arm Q3 momentum setting readback
# HacR_COL:ENC Right Arm Arm Collimator Position
# HacL_COL:ENC Left Arm Arm Collimator Position
#HacR_HPE1313A:0_Ch58
#HacR_HPE1313A:0_Ch55
#HacR_HPE1313A:0_Ch54
#HacL_HPE1313A:0_Ch58
#HacL_HPE1313A:0_Ch55
#HacL_HPE1313A:0_Ch54
# add mkj 12/17/99
# HacR_HPM_LVDT:VALr HacR_VPM_LVDT:VALr
# HacR_alignROLL HacR_alignPITCH HacR_alignHPT
# HacL_HPM_LVDT:VALr HacL_VPM_LVDT:VALr
# HacL_alignROLL HacL_alignPITCH HacL_alignHPT
#hac_bcm_A1
#hac_bcm_A2
#hac_bcm_average Average current of the two cavities
#hac_unser_current Current on Unser monitor
#hac_bcm_dvm1_current Current on Upstream bcm
#hac_bcm_dvm2_current Current on Downstream bcm
#
# MSW1C00M HAPPEX sweeper power supply current
# MSW1C00VM HAPPEX sweeper power supply voltage
#
# added lvdt stuff back in for super-rosenbluth
# BR: septum stuff added
# BR: added waterfall target (HAWF...) and removed it (see 26apr04 save dir)
# BR: added RICH HV
# BR: fast feedback status
#
# For non-standard analysis of 1C12 OTR at low currents, pull out:
# hla:otr_xsigma -- fit to size in X (mm)
# hla:otr_xsig_avg -- average of last 10 fits (mm)
# hla_otr_counter -- status of fit: if >20 then program crashed
#
# Added loop2 target temperature/pressure
#epicslist2="MSEPLRSETI MSEPLMIR MSEPLUPCOILT MSEPLLOWCOILT MSEPLYOKET MSEPLLHESUPT MSEPRRSETI MSEPRMIR MSEPRUPCOILT MSEPRLOWCOILT MSEPRYOKET MSEPRLHESUPT"
# following are removed, correspond to RICH operation
# CAENdatC1M2Ch16.NLH CAENdatC1M2Ch16.NLK CAENdatC1M2Ch17.NLH CAENdatC1M2Ch17.NLK
#epicslist2="HacR_COL:ENC HacL_COL:ENC HacR_Q1_LS450:FLD_DATA HacR_Q1_P0rb HacR_Q2_P0rb HacR_D1_P0rb HacR_Q3_P0rb HacR_VMIC1182:0_Ch17 HacR_D1_HP3458A:IOUT HacR_D1_NMR:SIG HacR_D1_NMR:SIGLCK HacR_Q2_HP3458A:IOUT HacR_Q2_LS450:FLD_DATA HacR_Q3_HP3458A:IOUT HacR_Q3_LS450:FLD_DATA HacL_Q1_P0rb HacL_Q2_P0rb HacL_D1_P0rb HacL_Q3_P0rb HacL_VMIC1182:0_Ch17 HacL_D1_HP3458A:IOUT HacL_D1_NMR:SIG HacL_D1_NMR:SIGLCK HacL_Q2_HP3458A:IOUT HacL_Q3_HP3458A:IOUT hac_bcm_dvm1_read hac_bcm_dvm2_read hac_bcm_average hac_unser_current hac_bcm_dvm1_current hac_bcm_dvm2_current HacR_HPM_LVDT:VALr HacR_VPM_LVDT:VALr HacR_HPE1313A:0_Ch58 HacR_HPE1313A:0_Ch55 HacR_HPE1313A:0_Ch54 HacR_alignROLL HacR_alignPITCH HacR_alignHPT HacL_HPE1313A:0_Ch58 HacL_HPE1313A:0_Ch55 HacL_HPE1313A:0_Ch54 hac_bcm_A1 hac_bcm_A2 HrsH_VDC_rHVTop HrsH_VDC_rHVBot HRSE_DTECTR_HPE1313A:0_Ch0 HRSE_DTECTR_HPE1313A:0_Ch2 hla:otr_xsigma hla:otr_xsig_avg hla:otr_counter"
epicslist2="hac_bcm_dvm1_read hac_bcm_dvm2_read hac_bcm_average hac_unser_current hac_bcm_dvm1_current hac_bcm_dvm2_current"
# EPICS for Gen Target, Bigbite
epicslist3="HacAi_hpchan0 HacAi_hpchan1 HacAi_hpchan2 HacAi_hpchan3 HacAi_hpchan4 HacAi_hpchan5 HacAi_hpchan6 HacAi_hpchan7 HacAi_hpchan8 HacAi_hpchan9 HacAi_hpchan60 HacAi_hpchan61 HacAi_hpchan62 HaGenTargPos HaGenTargBrake HaGenTargSeqStat HaGenTargIndCm HacDP41_READ HacDP41_1_READ HacOMEGA_RTD HacOMEGA_AL1 HacOMEGA_READ HacOMEGA_SP1 HacOMEGA_PROP1 HacOMEGA_RST1 HacOMEGA_RATE1 pol3heSmallCoilCurrent CLASER_STATE_MB CLASER_RDCUR CLASER_TEMP CLASER2_STATE_MB CLASER2_RDCUR CLASER2_TEMP CLASERAB_STATE_MB CLASERAB_GETCUR0 CLASERAB_GETCUR1 CLASERAB_GETTEMP0 CLASERAB_GETTEMP1 CLASER3_STATE_MB CLASER3_RDCUR CLASER3_TEMP CLASER4_STATE_MB CLASER4_RDCUR CLASER4_TEMP CLASERAB2_STATE_MB CLASERAB2_GETCUR0 CLASERAB2_GETCUR1 CLASERAB2_GETTEMP0 CLASERAB2_GETTEMP1 MBIGBOX MBIGBOXM"
# Injector helicity info: WienAngle, Helicity Mode ON/OFF Random/Toggle,
# Wien field, Laser attenuation Hall A,Laser power Hall A ,
# Half-wave plate (off=out) ,rotating waveplate,Beam Half-wave plate (off=out)
epicslist4="WienAngle IGL1I00OD16_5 IGL1I00DAC6 psub_aa_pos IGL1I00DAC0 IGL1I00OD16_16 psub_pl_pos IGL1I00DI24_24M"
# An infinite loop...
while [ 1 = 1 ] ; do
# beamline EPICS addresses
EPICS_CA_ADDR_LIST="129.57.255.4"
date >| $epicsfile1
for word in $epicslist1 ; do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done
# Hall A EPICS addresses
EPICS_CA_ADDR_LIST="129.57.239.255 129.57.211.255 129.57.243.255 129.57.188.5 129.57.188.13 129.57.188.15 129.57.188.8 129.57.188.47 129.57.188.4 129.57.188.10 129.57.188.57 129.57.188.40 129.57.188.68 129.57.188.29 129.57.238.108 129.57.188.58 129.57.188.2 129.57.236.67 129.57.236.70 129.57.236.87 129.57.255.4 129.57.188.16 129.57.236.128 129.57.236.129 129.57.242.3 129.57.242.2 129.57.238.102 129.57.188.29 129.57.188.74"
for word in $epicslist2 ; do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done
# Target and BigBite variables
EPICS_CA_ADDR_LIST="129.57.188.16 129.57.188.42 129.57.188.58"
for word in $epicslist3 ; do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done
# Beam Helicity
EPICS_CA_ADDR_LIST="129.57.255.4"
for word in $epicslist4 ; do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done

$SCRIPTS/fileToEvent $epicsfile1 131


sleep 30

done
exit 0
{CODE}
-={ANAME()}fastEpicsLogger{ANAME}fastEpicsLogger=-
{ALINK(aname=top)}::Back to top::{ALINK}
Every 4 seconds collects the short list of epics variables and inserts them into data stream.
{CODE()}#!/bin/ksh
#
# fastEpicsLogger -- faster than EpicsLogger with a shorter list of
# EPICS variables.
# Script to get EPICS data periodically. The time period will depend
# on the sleep commands here but also on any delays caused by missing
# EPICS channels (e.g. a computer is off).
#
# Before adding any variables, make sure 'caget' works at the
# command line and that you know what you are doing.
#
TESTPRINT=0
EPICS_DIR=$HOME/epics
SCRIPTS=$HOME/scripts
pidfile=$EPICS_DIR/.fastEpicsLoggerpid
epicsfile1=$EPICS_DIR/fast.epics
#
# hac_bcm_average Average current of the two cavities
# hac_bcm_dvm1_current Current on Upstream bcm
# hac_bcm_dvm2_current Current on Downstream bcm
# hac_unser_current Unser Monitor (useful for calib)
# The IPM stuff are BPMs near the target
#
# halla_MeV Tiefenbach energy
# MBSY1C_energy another energy
# HallA dp/p halla_dpp
# HallA dp/pCorrector halla_dppCorr
# HallA dp/pBpm halla_dppBpm
# Arc1 dp/p Arc1_dpp
# Arc2 dp/p Arc2_dpp
#
# OTR analysis at 1C12 (for optics data at low currents)
# hla:otr_xsigma
# hla:otr_xsig_avg
# hla:otr_counter
#
# Gen Pol 3He target
# HacAi_hpchan0: Temp at Target Cell
# HacAi_hpchan1: Temp at Target Cell
# HacAi_hpchan2: Temp at Target Cell
# HacAi_hpchan3: Temp at Target Cell
# HacAi_hpchan4: Temp at Target Cell
# HacAi_hpchan0: Temp at Target Cell
# HacAi_hpchan6: Temp at Target Cell
# HacAi_hpchan7: Temp at Target Cell
# HacAi_hpchan8: Temp at Target Cell
# HacAi_hpchan9: Temp at Target Cell
# HacAi_hpchan60: Temp at Target Cell
# HacAi_hpchan61: Temp at Target Cell
# HacAi_hpchan62: Temp at Target Cell
# HaGenTargPos: Target Position
# HacDP41_READ: Oven Air Flow
# HacDP41_1_READ: Oven Heater Temperature
# MBIGBOXM: BigBite Readback
#
#epicslist1="IPM1H04A.XPOS IPM1H04A.YPOS IPM1H04B.XPOS IPM1H04B.YPOS slia:DataValid slia:MV_AO_DYWIDS slia:MV_AO_SPREADS slia:MV_AI_DYWID hla:MV_AI_DXPOS hla:MV_AI_DXWID hla:MV_AI_DYPOS hla:MV_AI_DYWID hla:DataValid hla:DataReason slia:MV_AO_ESPREADM slia:MV_AO_DXWIDM IPM1C12.XPOS IPM1C12.YPOS HC+ibcm1"
#
epicslist2="hac_bcm_average hac_bcm_dvm1_read hac_bcm_dvm2_read hac_bcm_dvm1_current hac_bcm_dvm2_current hac_unser_current"

epicslist3="IBC0L02Current"

# GEN Target Epics+ BigBite
epicslist4="HacAi_hpchan0 HacAi_hpchan1 HacAi_hpchan2 HacAi_hpchan3 HacAi_hpchan4 HacAi_hpchan5 HacAi_hpchan6 HacAi_hpchan7 HacAi_hpchan8 HacAi_hpchan9 HacAi_hpchan60 HacAi_hpchan61 HacAi_hpchan62 HaGenTargPos HacDP41_READ HacDP41_1_READ MBIGBOXM"
#epicslist4="MBIGBOXM"
#
EPICS_CA_ADDR_LIST="129.57.255.4"
echo $$>$pidfile
date >| $epicsfile1
for word in $epicslist1
do
$SCRIPTS/caget $word >> $epicsfile1
done
while $SCRIPTS/fileToEvent $epicsfile1 131 ; do
sleep 4
EPICS_CA_ADDR_LIST="129.57.255.4 129.57.238.102"
date >| $epicsfile1
for word in $epicslist1
do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done
#
EPICS_CA_ADDR_LIST="129.57.239.255 129.57.211.255 129.57.243.255 129.57.188.5 129.57.188.13 129.57.188.15 129.57.188.16 129.57.188.2 129.57.236.10 129.57.255.8 129.57.238.108 129.57.238.102"
for word in $epicslist2
do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done
EPICS_CA_ADDR_LIST="129.57.255.4"
for word in $epicslist3
do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done
EPICS_CA_ADDR_LIST="129.57.188.16 129.57.188.42 129.57.188.58"
for word in $epicslist4
do
if [ $TESTPRINT -eq 1 ] ; then
echo "---------- test of caget output for $word ------------"
$SCRIPTS/caget $word
fi
$SCRIPTS/caget $word >> $epicsfile1
done

done
exit 0
{CODE}
-={ANAME()}epicsRunEnd{ANAME}epicsRunEnd=-
{ALINK(aname=top)}::Back to top::{ALINK}
* Grabs end of run information entered by user (supplementary executable __/adaqfs/coda/2.5/Linux/bin/dpwish__ is used for that).
* End of run information includes prescale factors, EPICS variables, HV values and detector thresholds.
* Generates the halog entry.
NOTE: Only variables in sections 2,5,7,8,10 are going into end of run information. It is implemented using TURNON* variables.

Using supplementary TCL script __runend.tcl__ this script does:
* Grabs end of run information entered by user.
* Collects various scaler data.
* Generates the halog entry.
* __Does not insert__ information into data stream.

''NOTE: halog_com_####.epics halog_end_####.epics files from epics/runfiles directory are the same.''

{CODE()}#!/bin/ksh
# May 18, 1998, adapted from the E91026 experiment.
# Log a bunch of EPICS data at end of run.
# The experimenters may modify this file.
#
# Sept 14, 2000 R.M. Spectrometers are "right" and "left".
# This goes with the magnet system, not
# with the detector stack nor particle type.
#
# May 25, 2001 P.Z gather all filenames at the beginning
#
# Jan 8, 2003 P.S add Helicity variables
#
# Apr 16, 2003 P.S add septum and gradient coils variables
#
# May 6, 2003 R.M. added HALLA:p and HALLA:dpp
#
# Jan 13, 2003 R.M. Turned off several "broken" variables.
# Put in switches to turn off sections
# (need to keep the script short).
#
# June 5, 2005 P.M. Added septm stuff back in


log() {
echo $* >> $epicsfile
if [ ! -z "$PS1" ] ; then echo $* ; fi
}
#
# turn stuff on/off (1/0)
TURNON1=0 #magnets
TURNON2=0 #beam info
TURNON3=0 #polarized beam/OTR
TURNON4=0 #RICH
TURNON5=0 #SLI
TURNON8=1 # Gen thresholds for BigHnad and BigBite

#
#
CAGET=$HOME/scripts/caget
WISH=$CODA_BIN/dpwish
#
RNUMFILE=$HOME/datafile/rcRunNumber # file with the run number
RUNFILES=$HOME/epics/runfiles # epics run files
PRESCALE=$HOME/prescale/prescale.dat # prescale file
HALOGCOM=~adaq/halog/src/halogentry.file
RCOMFILE=$HOME/scripts/.runend.comments
#
RTITFILE=$HOME/scripts/RUN_INFO.TITLE
RSTAFILE=$HOME/scripts/RUNSTART.INFO
BCMCALIB=$HOME/scripts/bcmcalib-Jan-12-2001.tcl
#
TKSCR=$HOME/scripts/runend.tcl
#
# beep the terminal
BEEP=$HOME/tcp/beep/end_run_beep
$BEEP
#
echo "epicsRunEnd: about to call runend.tcl"
$WISH -f $TKSCR
#
echo "epicsRunEnd: finished with runend.tcl"
num=`cat $RNUMFILE`
keyword=End_of_Run_$num
halogfile=$RUNFILES/halog_end_$num.epics
comfile=$RUNFILES/halog_com_$num.epics
epicsfile=$RUNFILES/End_of_Run_$num.epics
#
/bin/rm -f $epicsfile

log "End-of-run EPICS data for Run Number $num at `date`"


#
if [ $TURNON1 -eq 1 ] ; then

# General info
#
EPICS_CA_ADDR_LIST="129.57.188.13 129.57.188.15 129.57.188.47 129.57.188.8"
log "Left Arm D


Search
in:
Powered by TikiWiki Powered by PHP Powered by Smarty Powered by ADOdb Made with CSS Powered by RDF powered by The PHP Layers Menu System
RSS Wiki RSS Blogs rss Articles RSS Image Galleries RSS File Galleries RSS Forums
[ Execution time: 0.13 secs ]   [ Memory usage: 6.85MB ]   [ 58 database queries used ]   [ GZIP Enabled ]   [ Server load: 2.25 ]