#! /bin/csh -fe
# Last edited on 1999-11-23 04:24:24 by hcgl

set cmd = "$0"
set usage = "${cmd:t} [ -noInit ] NCURVES RUN MINLEN INICRIT INISKIP"

# Runs PZMapCands and PZRefineCands for all bands in multiscale fashion,
# starting from a low-resolution band and down to the finest resolution.
 
echo "=== begin ${cmd:t} ===================================="

set init = 1
while ( ( $#argv > 0 ) && ( "x$1" =~ x-* ) )
  if ( ( $#argv >= 1 ) && ( "/$1" == "/-noInit" ) ) then
    set init = 0; shift
  else
    echo "usage: ${usage}"; exit 1
  endif
end
if ( $#argv != 5 ) then
  echo "usage: ${usage}"; exit 1
endif

set nCurves = "$1"; shift;
set run = "$1"; shift;
set minLength = "$1"; shift;
set iniCrit = "$1"; shift
set iniSkip = "$1"; shift

set bands = ( `cat RUN-${run}/bands-multi.txt | sort -nr` )
 
if ( ${bands[$#bands]} == 1 ) then
  echo "RUN-${run}/bands-multi.txt should not include band 001"; exit 1
endif
set nbands = $#bands
set iband = ${bands[1]}
  
if ( $init ) then
  run-PZGetInitialCands ${nCurves} ${run} ${iband} i str \
      ${iniCrit} 9.99999 ${iniSkip} ${minLength} \
    |& tee RUN-${run}/run-PZGetInitialCands-f${iband}-i.log    
  /bin/rm -f RUN-${run}/f${iband}-i-can.ps
endif

/n/gnu/bin/printf "RUN-${run}/f${iband}-i.can: "
egrep '^candidates =' RUN-${run}/f${iband}-i.can

set rbands = ( ${bands[2-]} 001 )
foreach band ( ${bands} )
  set nxband = "${rbands[1]}";
  set rbands = ( ${rbands[2-]} )
  run-PZRefineCands ${run} ${band} i r ${minLength} \
    |& tee RUN-${run}/run-PZRefineCands-f${band}-i-r.log
  run-PZMapCands ${run} ${band} r ${nxband} i \
    |& tee RUN-${run}/run-PZMapCands-f${band}-r-f${nxband}-i.log
end

foreach band ( ${bands} 001 )
  run-PZCompCands ${run} ${band} i tr ${minLength} \
    |& tee RUN-${run}/run-PZCompCands-f${band}-i-tr-long.log
  run-PZCompCands ${run} ${band} i tr 001 \
    |& tee RUN-${run}/run-PZCompCands-f${band}-i-tr-full.log
  draw-dual-graph coords.txt RUN-${run}/f${band}-i-AND-tr.can \
    > RUN-${run}/f${band}-i-AND-tr-can.dgr
  if ( "/${band}" != "/001" ) then
    run-PZCompCands ${run} ${band} r tr ${minLength} \
      |& tee RUN-${run}/run-PZCompCands-f${band}-r-tr-long.log
    run-PZCompCands ${run} ${band} r tr 001 \
      |& tee RUN-${run}/run-PZCompCands-f${band}-r-tr-full.log
    draw-dual-graph coords.txt RUN-${run}/f${band}-r-AND-tr.can \
      > RUN-${run}/f${band}-r-AND-tr-can.dgr
  endif
end

foreach band ( ${bands} 001 )
  foreach tag ( i r )
    foreach type ( long full )
      echo "band = ${band} tag = ${tag} type = ${type}"
      set log = "RUN-${run}/run-PZCompCands-f${band}-${tag}-tr-${type}.log"
      egrep '^ideal in found ' ${log}
      egrep '^ideal candidates ' ${log}
    end
  end
end

( cd RUN-${run} && make -f adj-graph.make )

echo "=== end ${cmd:t} ===================================="