Index: /branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.flatcorr.dvo
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.flatcorr.dvo	(revision 33178)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/relphot.flatcorr.dvo	(revision 33179)
@@ -16,7 +16,8 @@
 input tap.dvo
 
-# set
-
- # set various global variables
+# set globals
+if (not($?PLOT)) set PLOT = 0 
+
+# set various global variables
 macro init
   $RA_CENTER = 10.0
@@ -32,8 +33,39 @@
   $CHIP_DY = 1000
 
+  # images are loaded into dvo with GPC1 photcodes, so we need to get the nominal zps for those filters
+  $zpt_nominal:g = 24.58
+  $zpt_nominal:r = 24.80
+  $zpt_nominal:i = 24.74
+  $zpt_nominal:z = 24.26
+  $zpt_nominal:y = 23.41
+
+  # klam is negative, so klam*(airmass - 1) increase the zero point
+  $klam_nominal:g = -0.15
+  $klam_nominal:r = -0.10
+  $klam_nominal:i = -0.04
+  $klam_nominal:z = -0.03
+  $klam_nominal:y = -0.03
+
   # we have two sets of images: ubercaled and not-ubercaled
 
   # sequence to count images (only used in this function)
   create tmpseq 0 9
+
+  $filt_uc:n = 9
+  $filt_uc:0 = g
+  $filt_uc:1 = g
+  $filt_uc:2 = g
+  $filt_uc:3 = r
+  $filt_uc:4 = r
+  $filt_uc:5 = r
+  $filt_uc:6 = i
+  $filt_uc:7 = i
+  $filt_uc:8 = i
+
+  # airmass slopes for these sequnece
+  set klam_uc = zero(tmpseq)
+  for i 0 tmpseq[]
+    klam_uc[$i] = $klam_nominal:$filt_uc:$i
+  end    
 
   # mjd and zpt values for ubercal'ed imaged
@@ -42,5 +74,6 @@
 
   # ubercal zero points are defined as ZP_nominal + 2.5log(exptime) + K*(airmass - 1.0)
-  set zpt_uc = 25.0 + 2.5*log(exptime_uc) - 0.15*(airmass_uc - 1.0) + tmpseq*0.0050 - 0.0025
+  # note that K is defined as a negative value (is this sensible?)
+  set zpt_uc = 25.0 + 2.5*log(exptime_uc) + klam_uc*(airmass_uc - 1.0) + tmpseq*0.0050 - 0.0025
 
   set mjd_uc = zero(zpt_uc)
@@ -56,4 +89,21 @@
 
   # mjd and zpt values for not-ubercal'ed images
+  $filt_nc:n = 9
+  $filt_nc:0 = g
+  $filt_nc:1 = g
+  $filt_nc:2 = g
+  $filt_nc:3 = r
+  $filt_nc:4 = r
+  $filt_nc:5 = r
+  $filt_nc:6 = i
+  $filt_nc:7 = i
+  $filt_nc:8 = i
+
+  # airmass slopes for these sequnece
+  set klam_nc = zero(tmpseq)
+  for i 0 tmpseq[]
+    klam_nc[$i] = $klam_nominal:$filt_nc:$i
+  end    
+
   # place this within a valid season (55000.0 - 55010.0 - 55020.0 - 55030.0)
   set exptime_nc = 15.0 + zero(tmpseq)
@@ -61,5 +111,5 @@
 
   # ubercal zero points are defined as ZP_nominal + 2.5log(exptime) + K*(airmass - 1.0)
-  set zpt_nc = 25.0 + 2.5*log(exptime_nc) - 0.15*(airmass_nc - 1.0) - tmpseq*0.0050 + 0.0025
+  set zpt_nc = 25.0 + 2.5*log(exptime_nc) + klam_nc*(airmass_nc - 1.0) - tmpseq*0.0050 + 0.0025
 
   set mjd_nc = zero(zpt_nc)
@@ -81,5 +131,5 @@
   end
 
-  local fileroot rootdir catdir
+  local i fileroot rootdir catdir
 
   $fileroot = $1
@@ -95,15 +145,34 @@
   mkstars 500
 
+  tapPLAN {((mjd_uc[]*4 + mjd_nc[]*4) + (mjd_uc[] + mjd_nc[]) + (mjd_uc[] + mjd_nc[])) / 3}
+
+  # generate the basic images and check they were correctly ingested by dvo
   mksequence $fileroot $catdir
-  ckexposure catdir.test mjd_uc[0] zpt_uc[0] exptime_uc[0] airmass_uc[0] raw
-  ckexposure catdir.test mjd_nc[0] zpt_nc[0] exptime_nc[0] airmass_nc[0] raw
-
+  for i 0 mjd_uc[] 3
+    ckexposure catdir.test mjd_uc[$i] zpt_uc[$i] exptime_uc[$i] airmass_uc[$i] $filt_uc:$i raw
+  end
+  for i 0 mjd_nc[] 3
+    ckexposure catdir.test mjd_nc[$i] zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] $filt_nc:$i raw
+  end
+
+  # run setphot on the db and check that the images now match the expected values
   exec setphot -update -ubercal testzpt.fits -D CATDIR $catdir
-  ckexposure catdir.test mjd_uc[0] zpt_uc[0] exptime_uc[0] airmass_uc[0] corr
-  ckexposure catdir.test mjd_nc[0] zpt_nc[0] exptime_nc[0] airmass_nc[0] corr
-
-  exec relphot g -v -region 9.5 10.5 19.5 20.5 -D CATDIR catdir.test -D STAR_TOOFEW 1 -D SIGMA_LIM 0.07 -statmode WT_MEAN -cloud-limit 0.5 -keep-ubercal -D IMAGE_OFFSET 0.5 -update
-  ckexposure catdir.test mjd_uc[0] zpt_uc[0] exptime_uc[0] airmass_uc[0] corr
-  ckexposure catdir.test mjd_nc[0] zpt_nc[0] exptime_nc[0] airmass_nc[0] corr
+  for i 0 mjd_uc[] 3
+    ckexposure catdir.test mjd_uc[$i] zpt_uc[$i] exptime_uc[$i] airmass_uc[$i] $filt_uc:$i setphot_uc
+  end
+  for i 0 mjd_nc[] 3
+    ckexposure catdir.test mjd_nc[$i] zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] $filt_nc:$i setphot_nc
+  end
+
+  # run relphot on the db and check that the images now match the expected values
+  exec relphot g,r,i -v -region 9.5 10.5 19.5 20.5 -D CATDIR catdir.test -D STAR_TOOFEW 1 -D SIGMA_LIM 0.07 -statmode WT_MEAN -cloud-limit 0.5 -keep-ubercal -D IMAGE_OFFSET 0.5 -update >& tmp.log
+  for i 0 mjd_uc[] 3
+    ckexposure catdir.test mjd_uc[$i] zpt_uc[$i] exptime_uc[$i] airmass_uc[$i] $filt_uc:$i relphot
+  end
+  for i 0 mjd_nc[] 3
+    ckexposure catdir.test mjd_nc[$i] zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] $filt_nc:$i relphot
+  end
+
+  tapDONE
 end
 
@@ -132,31 +201,39 @@
 
 macro ckexposure
-  if ($0 != 7)
-    echo "ckexposure (catdir) (mjd) (zpt) (exptime) (airmass) (mode)"
+  if ($0 != 8)
+    echo "ckexposure (catdir) (mjd) (zpt) (exptime) (airmass) (filter) (mode)"
     echo "  mode == raw or corr"
     break
   end
 
-  local CATDIR MJD_IMAGE ZPT_REAL ZPT_NOMINAL EXPTIME AIRMASS
+  local CATDIR MJD_IMAGE ZPT_REAL ZPT_NOMINAL EXPTIME FILTER AIRMASS
   
   $CATDIR      = $1
   $MJD_IMAGE   = $2
   $ZPT_REAL    = $3
-  $ZPT_NOMINAL = 24.58
   $EXPTIME     = $4
   $AIRMASS     = $5
-  $MODE        = $6
-  # XXX need a function to extract the nominal zpt for a given filter / photcode
+  $FILTER      = $6
+  $MODE        = $7
+
+  # XXX need a function to extract the nominal zpt for a given filter / photcode from the db
+  $ZPT_NOMINAL = $zpt_nominal:$FILTER
+  $KLAM_NOMINAL = $klam_nominal:$FILTER
 
   $TIMEFORMAT = mjd
   $TIMEREF = 0.0
 
+  catdir $CATDIR
+
   # assume we still have stars_ra, stars_dec, stars_mag in hand
-  dev -n 0
-  catdir $CATDIR
-  region $RA_CENTER $DEC_CENTER 0.2
-  images
-  pmeasure -all -m 15 20
-  mextract -region ra dec mag xccd yccd where (abs(time - $MJD_IMAGE) < 0.0001)
+  if ($PLOT)
+    dev -n 0
+    region $RA_CENTER $DEC_CENTER 0.2
+    images
+    pmeasure -all -m 15 20
+  end
+
+  skyregion {$RA_CENTER - 0.2/dcos($DEC_CENTER)} {$RA_CENTER + 0.2/dcos($DEC_CENTER)} {$DEC_CENTER - 0.2} {$DEC_CENTER + 0.2} 
+  mextract ra dec mag xccd yccd where (abs(time - $MJD_IMAGE) < 0.0001)
  
   match2d -closest ra dec stars_ra stars_dec 0.001 -index1 index1 -index2 index2
@@ -169,6 +246,8 @@
   set dm = mag - stars_mag_m
 
-  dev -n 1
-  lim mag dm; clear; box; plot mag dm
+  if ($PLOT) 
+    dev -n 1
+    lim mag dm; clear; box; plot mag dm
+  end
 
   set cell_xbin = int(xccd / ($CHIP_DX / $NCELL_X))
@@ -192,4 +271,6 @@
   #   dm = mag_DVO - mag_real ~ 0.0
 
+  $ZPT_REAL_NORM = $ZPT_REAL - 2.5*log($EXPTIME) - $KLAM_NOMINAL*($AIRMASS - 1.0)
+
   if ("$MODE" == "raw") 
     for ix 0 $NCELL_X
@@ -198,12 +279,30 @@
         # echo cell_off[$ix][$iy] {$MEDIAN - $ZPT_NOMINAL + $ZPT_REAL + cell_off[$ix][$iy]} $MEDIAN $MEAN $SIGMA 
   
-        $ZPT_REAL_NORM = $ZPT_REAL - 2.5*log($EXPTIME) + 0.15*($AIRMASS - 1.0)
         set dm_adjust = dm$ix\$iy - $ZPT_NOMINAL + $ZPT_REAL_NORM + cell_off[$ix][$iy]
-        vstat dm_adjust
+        vstat -q dm_adjust
+        tapOK {abs($MEAN) < 0.005} "addstar raw ZP $MJD_IMAGE $FILTER"
       end
     end
-  else
-    vstat dm
-  end
+    return
+  end
+
+  if ("$MODE" == "setphot_uc") 
+    vstat -q dm
+    tapOK {abs($MEAN) < 0.005} "setphot_uc  ZP $MJD_IMAGE $FILTER"
+    return
+  end
+
+  if ("$MODE" == "setphot_nc") 
+    vstat -q dm
+    tapOK {abs($MEAN - $ZPT_NOMINAL + $ZPT_REAL_NORM) < 0.005} "setphot_nc  ZP $MJD_IMAGE $FILTER"
+    return
+  end
+
+  if ("$MODE" == "relphot") 
+    vstat -q dm
+    tapOK {abs($MEAN) < 0.005} "relphot    ZP $MJD_IMAGE $FILTER"
+    return
+  end
+
 end
 
@@ -218,12 +317,12 @@
   # we have defined a set of mjd and zero point values for ubercal'ed images
   # for i 0 mjd_uc[]
-  for i 0 1
-    mkexposure $1.uc.$i $RA_CENTER $DEC_CENTER zpt_uc[$i] exptime_uc[$i] airmass_uc[$i] mjd_uc[$i] g $2
+  for i 0 mjd_uc[] 3
+    mkexposure $1.uc.$i $RA_CENTER $DEC_CENTER zpt_uc[$i] exptime_uc[$i] airmass_uc[$i] mjd_uc[$i] $filt_uc:$i $2
   end
 
   # we have a second set of mjd and zero point values for non-ubercal'ed images
   # for i 0 mjd_nc[]
-  for i 0 1
-    mkexposure $1.nc.$i $RA_CENTER $DEC_CENTER zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] mjd_nc[$i] g $2
+  for i 0 mjd_nc[] 3
+    mkexposure $1.nc.$i $RA_CENTER $DEC_CENTER zpt_nc[$i] exptime_nc[$i] airmass_nc[$i] mjd_nc[$i] $filt_nc:$i $2
   end
 end
@@ -276,10 +375,9 @@
     $options = $options -exptime $EXPTIME
     exec mkcmf test.in.txt $ROOT.$ix.$iy.cmf $options
-    echo mkcmf test.in.txt $ROOT.$ix.$iy.cmf $options
+    echo mkcmf test.in.txt $ROOT.$ix.$iy.cmf $options 
     
     # the fake images have inconsistent ra,dec and airmass,sidtime values
     echo addstar $ROOT.$ix.$iy.cmf -D CATDIR $CATDIR -D CAMERA gpc1 -quick-airmass
-    exec addstar $ROOT.$ix.$iy.cmf -D CATDIR $CATDIR -D CAMERA gpc1 -quick-airmass
-    echo done
+    exec addstar $ROOT.$ix.$iy.cmf -D CATDIR $CATDIR -D CAMERA gpc1 -quick-airmass >& tmp.log
   end
  end
Index: /branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/tap.dvo
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/tap.dvo	(revision 33178)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/addstar/test/tap.dvo	(revision 33179)
@@ -1,3 +1,5 @@
 # -*-sh-*-
+
+if (not($?TAP_BREAK)) set TAP_BREAK = 0
 
 macro tapOK
