TikiWiki Assistant Thank you for installing TikiWiki!
Click the :: options in the Menu for more options. Please, also see TikiMovies for more setup details. |
GEnSpecialEvents
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.
Back to top This scripts started at the beginning of every run. It starts getruninfo_bgr as background process to avoid hang of CODA. #!/bin/ksh SCRIPT_DIR=/adaqfs/halla/a-onl/scripts $SCRIPT_DIR/getruninfo_bgr & exit 0 Back to top 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. #!/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 Back to top 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. #!/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 Back to top This is executable which read file and inserts its content into data stream as event type specified on command line. Usage: fileToEvent <filename> <evtype> Back to top Drives the readout of Neutron Arm and BigBite HV and inserts them into data stream as event type 134. #!/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 Back to top This script obtains list of maps for particular detector and retrieves individual HV maps. #!/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 Back to top Using hvcli executable readout HV values from hvs server, and format the output. #!/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 Back to top
NOTE: Only variables in sections 2,5,7,8,10 inserted into data stream. It is implemented using TURNON* variables. #!/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 Back to top Uses ~a-onl/scaler/gen/onl/scread executable to read out scaler and insert every 8 seconds into data stream. #!/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 Back to top Every 30 seconds collects the long list of epics variables and inserts them into data stream. #!/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 Back to top Every 4 seconds collects the short list of epics variables and inserts them into data stream. #!/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 Back to top
Using supplementary TCL script runend.tcl this script does:
NOTE: halog_com_####.epics halog_end_####.epics files from epics/runfiles directory are the same. #!/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 Created by: nerses last modification: Monday 03 of July, 2006 [22:32:41 UTC] by nerses
wiki page:
GEn
· AsymmetryCorrections
· Livetime
· Kin4:Pass1
· GEnDocDiag
· D.ctimeL1A
· AdaqBackup
· Pass0
· Coordinate Systems
· GEnDocEpics
· Glossary
· GEnDocTrigger
· GEnDocMisc
· analyzer
· AGEn Library
· GEnDocChannelMap
· GEnSpecialEvents
·
article: GEn · GEn · Rob's Analysis · |
Login Search
|