#!/bin/sh  
# \
exec oagtclsh "$0" "$@"
    
# $Log: not supported by cvs2svn $
# Revision 1.2  2006/10/02 14:41:38  shang
# added average and pause arguments for reading the average value of ID intensities.
#
# Revision 1.1  2006/01/31 19:32:02  shang
# first version, for measuring the normalized ID intensity used by SRIDIntensityOOptimization.
#


set auto_path [linsert $auto_path 0  /usr/local/oag/apps/lib/$env(HOST_ARCH)]
set auto_path [linsert $auto_path 0 /usr/local/oag/lib_patch/$env(HOST_ARCH)]
APSStandardSetup

# 
# This script measure the normalized ID intensity i.e., ID intensity divided by the SR current.

set usage "usage: measureIDIntensity -sector <sector> -PVname <ID instensity pv name> "
set sector ""
set PVname ""
set average 10
set pause 0.1
set args $argv
if {[APSStrictParseArguments {sector PVname average pause}] || \
	(![llength $sector] && ![llength $PVname]) } {
    puts stderr $usage
    exit 1
}

if [string length $sector] {
    set PVname ID${sector}:SteeringGoodness
}

if [catch {exec cavget -list=$PVname,S-DCCT:CurrentM \
	       -repeat=number=$average,pause=$pause,average -pend=30} values] {
    puts stderr "Error: $values"
    exit 1
}
set IDintensity [lindex $values 0]
set current [lindex $values 1]
if {$IDintensity=="?"} {
    puts stderr "Error: can not read value of $PVname."
    exit 1
}
if {$current=="?"} {
    puts stderr "Error: can not read value of S-DCCT:CurrentM."
    exit 1
}
puts stdout [expr $IDintensity / $current * 100]
exit 0
