#!/usr/bin/tclsh  

set d0 -25.0
set nd 11
set deltaList ""
for {set i 0} {$i<$nd} {incr i} {
    set delta [expr $d0+2*$i*abs($d0)/($nd-1)]
    lappend deltaList $delta
    puts stderr "Running delta = $delta %"
    set rootname [format run-%02d $i]
    catch {exec ./elegant runTemplate.ele -macro=rootname=$rootname,delta=$delta} result
    exec sddsprocess $rootname.twi -nowarning -define=parameter,delta,$delta,units=% -print=parameter,deltaLabel,${delta}%
    file delete $rootname.twi~
    set fd [open $rootname.log w]
    puts $fd "$result"
    close $fd
}

exec sddsmakedataset deltaValues.sdds -column=delta,type=double,units=% -data=[join $deltaList ,]

eval exec sddscombine [lsort [glob run-*.w1]] -pipe=out \
  | sddsprocess -pipe -process=C*,spread,%sSpread -process=Cdelta,ave,%s \
  "{-define=parameter,betax,CxSpread CxpSpread /,units=m}" \
  "{-define=parameter,betay,CySpread CypSpread /,units=m}" \
  | sddscollapse -pipe=in run.w1.proc

foreach column {betax betay} {
    eval exec sddsplot -column=s,$column [lsort [glob run-*.twi]] -graph=line,vary -legend=param=deltaLabel \
      -column=s,$column run.w1.proc -graph=sym,fill,scale=2 &
    eval exec sddsplot -device=png,onwhite -output=$column.png -column=s,$column [lsort [glob run-*.twi]] -graph=line,vary -legend=param=deltaLabel \
      -column=s,$column run.w1.proc -graph=sym,fill,scale=2 &
}

