#!/bin/csh -f
# $Log: not supported by cvs2svn $
# Revision 1.4  1996/12/02 19:45:06  emery
# Changed dipole shift variable from 10 ms to 11 ms.
#
# Revision 1.3  1996/03/25  22:43:14  borland
# Removed absolute path from invocation of fixramp program.
#
# Revision 1.2  1996/03/05  20:38:25  borland
# Fixed path from which safety ramps were being taken.
#
# Revision 1.1  1996/02/21  21:50:27  borland
# First version of script by S. Milton.
#

#	usage: Vcorrect { BM | QF | QD | SF | SD }

# Check for usage

if ($#argv != 1) then
	echo "usage: Vcorrect { BM | QF | QD | SF | SD }"
	exit
endif

set Mag = $1

# Values for QF

if ($Mag != BM && $Mag != QF && $Mag != QD && $Mag != SF && $Mag != SD) then
	echo "usage: Vcorrect { BM | QF | QD | SF | SD }"
	exit
endif

set oldMagRampFile = "/tmp/${Mag}old$$.afg100"
set newMagRampFile = "/tmp/${Mag}new$$.afg100"
set logMagRampFile = "/tmp/${Mag}log$$.file"
set boosterFileDir = /home/helios/oagData/booster/ramps/current

/bin/cp $boosterFileDir/"$Mag"Vref.afg100 $oldMagRampFile

if ($Mag == BM) then
	set convFile = $boosterFileDir/convBM.sdds
	set filtFile = $boosterFileDir/40.180.3.coeffs
	set filtDelay = 20
	set fitStart = 0.0
	set fitEnd = 100.0
	set LLTime = 20.0
	set LTime = 5.0
	set crop = 245.0
	set HTime = 30.0
	set HHTime = 50.0
	set LAvgTime = 0.0
	set HAvgTime = 3.0
	set sparse = 3
	set smoothPt = 7
	set smoothPass = 6
	set shift = 11.0
	set Vscale = 4000.0
	set gainStart = `rpnl "0.2 $Vscale /"`
	set gainStop = `rpnl "0.2 $Vscale /"`
	set gainCurv = 1.0
	set npoints = 1024
	set normalize = 0.93
endif

if ($Mag == QF) then
	set convFile = $boosterFileDir/convQF.sdds
	set filtFile = $boosterFileDir/40.180.3.coeffs
	set filtDelay = 20
	set fitStart = 0.0
	set fitEnd = 100.0
	set LLTime = 20.0
	set LTime = 5.0
	set crop = 253.0
	set HTime = 30.0
	set HHTime = 50.0
	set LAvgTime = 0.0
	set HAvgTime = 3.0
	set sparse = 3
	set smoothPt = 7
	set smoothPass = 4
	set shift = 3.8
	set Vscale = 750.0
	set gainStart = `rpnl "0.7 $Vscale /"`
	set gainStop = `rpnl "0.4 $Vscale /"`
	set gainCurv = 2.0
	set npoints = 1024
	set normalize = 1.0
endif

if ($Mag == QD) then
	set convFile = $boosterFileDir/convQD.sdds
	set filtFile = $boosterFileDir/40.180.3.coeffs
	set filtDelay = 20
	set fitStart = 0.0
	set fitEnd = 100.0
	set LLTime = 20.0
	set LTime = 5.0
	set crop = 253.0
	set HTime = 30.0
	set HHTime = 50.0
	set LAvgTime = 0.0
	set HAvgTime = 3.0
	set sparse = 3
	set smoothPt = 7
	set smoothPass = 4
	set shift = 3.9
	set Vscale = 750.0
	set gainStart = `rpnl "0.7 $Vscale /"`
	set gainStop = `rpnl "0.4 $Vscale /"`
	set gainCurv = 2.0
	set npoints = 1024
	set normalize = 1.0
endif

if ($Mag == SF) then
	set convFile = $boosterFileDir/convSF.sdds
	set filtFile = $boosterFileDir/40.180.3.coeffs
	set filtDelay = 20
	set fitStart = 0.0
	set fitEnd = 100.0
	set LLTime = 18.0
	set LTime = 5.0
	set crop = 250.0
	set HTime = 30.0
	set HHTime = 50.0
	set LAvgTime = 0.0
	set HAvgTime = 3.0
	set sparse = 3
	set smoothPt = 7
	set smoothPass = 4
	set shift = 4.9
	set Vscale = 150.0
	set gainStart = `rpnl "0.6 $Vscale /"`
	set gainStop = `rpnl "0.3 $Vscale /"`
	set gainCurv = 2.0
	set npoints = 1024
	set normalize = 1.0
endif

if ($Mag == SD) then
	set convFile = $boosterFileDir/convSD.sdds
	set filtFile = $boosterFileDir/40.180.3.coeffs
	set filtDelay = 20
	set fitStart = 0.0
	set fitEnd = 100.0
	set LLTime = 20.0
	set LTime = 5.0
#	set crop = 245.0
	set crop = 250.0
	set HTime = 30.0
	set HHTime = 50.0
	set LAvgTime = 0.0
	set HAvgTime = 3.0
	set sparse = 3
	set smoothPt = 7
	set smoothPass = 4
	set shift = 4.7
	set Vscale = 150.0
	set gainStart = `rpnl "0.6 $Vscale /"`
	set gainStop = `rpnl "0.3 $Vscale /"`
	set gainCurv = 2.0
	set npoints = 1024
	set normalize = 1.0
endif

fixramp $oldMagRampFile $newMagRampFile $logMagRampFile \
	-converter=$convFile,Acoeffs,Bcoeffs \
	-filter=$filtFile,Acoeffs,Bcoeffs \
	-fitrange=$fitStart,$fitEnd \
	-lowtransition=$LLTime,$LTime \
	-crop=$crop \
	-hightransition=$HTime,$HHTime \
	-averageTime=$LAvgTime,$HAvgTime \
	-sparse=$sparse \
	-smooth=$smoothPt,$smoothPass \
	-shift=$shift \
	-gain=$gainStart,$gainStop,$gainCurv \
	-delay=$filtDelay \
	-npoints=$npoints \
	-normalize=$normalize

rampload $newMagRampFile 
#caput B:"$Mag":VoltageRT.SWAP 1
#caput B:PSAFG100SyncBO 1

sddsprocess $newMagRampFile $newMagRampFile-tmp -convert=col,RampTime,ms,"",1
mv $newMagRampFile-tmp $newMagRampFile

/bin/cp $newMagRampFile $boosterFileDir/${Mag}Vref.afg100
