Index: /trunk/tools/eam/teleff/cammask.pro
===================================================================
--- /trunk/tools/eam/teleff/cammask.pro	(revision 41716)
+++ /trunk/tools/eam/teleff/cammask.pro	(revision 41717)
@@ -8,7 +8,7 @@
 if (not($?MATCH_RADIUS)) set MATCH_RADIUS = 2.0
 
-$SMF_FIELDS = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT
-$REF_FIELDS = Rref Dref Mref 
-$XTR_FIELDS = Xref Yref Nref Q1ref
+$SMF_FIELDS_CAM = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT
+$REF_FIELDS_CAM = Rref Dref Mref 
+$XTR_FIELDS_CAM = Xref Yref Nref Q1ref
 
 macro get.camera.eff
@@ -46,5 +46,5 @@
  # load the reference source table
  # NOTE: Mref is chosen to match filter for this exposure
- data $refsrcs; read -fits DATA $REF_FIELDS
+ data $refsrcs; read -fits DATA $REF_FIELDS_CAM
  set Nref = ramp(Rref)
 
@@ -70,9 +70,9 @@
    get.chip.mask.stats $camMask:$i
 
-   foreach field SMF_FIELDS
+   foreach field SMF_FIELDS_CAM
      concat $field\_found $field\_out
      delete $field\_found
    end
-   foreach field REF_FIELDS $XTR_FIELDS
+   foreach field REF_FIELDS_CAM $XTR_FIELDS_CAM
      concat $field\_onchp $field\_out
      delete $field\_onchp
@@ -81,9 +81,9 @@
 
  $OUT_FIELDS = 
- foreach field $SMP_FIELDS $REF_FIELDS $XTR_FIELDS
+ foreach field $SMP_FIELDS_CAM $REF_FIELDS_CAM $XTR_FIELDS_CAM
    $OUT_FIELDS = $OUT_FIELDS $field\_out
  end
 
- sprintf output "%s/%s.%s.%s.cam.stf" $OUTDIR $expname $chipName:$i $OUTVERSION
+ sprintf output "%s/%s.%s.cam.stf" $OUTDIR $expname $OUTVERSION
  write -fits DATA $output $OUT_FIELDS
 end
@@ -127,5 +127,5 @@
   # do we need to grow the range at all?
   set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 
-  foreach field $REF_FIELDS Nref
+  foreach field $REF_FIELDS_CAM Nref
     subset $field\_tmp = $field if keep
   end
@@ -138,5 +138,5 @@
   # generate a subset of sources which are within the boundaries of the chip
   set keep = (Xref_tmp >= 0) && (Xref_tmp <= $NAXIS1) && (Yref_tmp >= 0) && (Yref_tmp <= $NAXIS2)
-  foreach field $REF_FIELDS Nref Xref Yref
+  foreach field $REF_FIELDS_CAM Nref Xref Yref
     subset $field\_onchp = $field\_tmp if keep
     delete $field\_tmp
@@ -148,12 +148,12 @@
   if ($USE_EXTNAME) 
     sprintf extname "%s.psf" $chipname
-    read -fits $extname $SMF_FIELDS
+    read -fits $extname $SMF_FIELDS_CAM
   else
-    read -fits {$chipnseq+1} -extnum $SMF_FIELDS
+    read -fits {$chipnseq+1} -extnum $SMF_FIELDS_CAM
   end
 
   # match radius currently needs to be larger for MPC objects
   match2d Xref_onchp Yref_onchp X_PSF Y_PSF $MATCH_RADIUS -closest
-  foreach field $SMF_FIELDS
+  foreach field $SMF_FIELDS_CAM
     reindex $field\_found = $field using index1 -keep-unmatched
   end
@@ -328,5 +328,5 @@
  # load the reference source table
  # NOTE: Mref is chosen to match filter for this exposure
- data $refsrcs; read -fits DATA $REF_FIELDS
+ data $refsrcs; read -fits DATA $REF_FIELDS_CAM
  set Nref = ramp(Rref)
 
Index: /trunk/tools/eam/teleff/diffmask.pro
===================================================================
--- /trunk/tools/eam/teleff/diffmask.pro	(revision 41716)
+++ /trunk/tools/eam/teleff/diffmask.pro	(revision 41717)
@@ -10,4 +10,8 @@
 
 if (not($?MATCH_RADIUS)) set MATCH_RADIUS = 2.0
+
+$SMF_FIELDS_DIF = X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT
+$REF_FIELDS_DIF = Rref Dref Mref 
+$XTR_FIELDS_DIF = Xref Yref Nref Q1ref
 
 macro get.diff.eff
@@ -44,5 +48,5 @@
   # load the reference source table
   # how to choose the name of the filter?
-  data $refsrcs; read -fits DATA Rref Dref Mref
+  data $refsrcs; read -fits DATA $REF_FIELDS_DIF
   set Nref = ramp(Rref)
   if ($VERBOSE) echo "loaded Rref[] sources from reference $refsrcs"
@@ -58,12 +62,26 @@
     if ("$diffMask:$i" == "") 
       echo "no mask file found for $i, skipping maskstats" 
-      set Q1refSS = zero(XrefSS) + NAN
+      set Q1ref_onchp = zero(Xref_onchp) + NAN
     else
       get.diff.mask.stats $diffMask:$i
     end
 
-    sprintf output "%s/%s.%s.%s.diff.stf" $OUTDIR $expname $skycell:$i $OUTVERSION
-    write -fits DATA $output RrefSS DrefSS MrefSS XrefSS YrefSS Q1refSS X_PSF_found Y_PSF_found M_PSF_found Q1_PSF_found Q2_PSF_found
-  end
+   foreach field SMF_FIELDS_DIF
+     concat $field\_found $field\_out
+     delete $field\_found
+   end
+   foreach field REF_FIELDS_DIF $XTR_FIELDS_DIF
+     concat $field\_onchp $field\_out
+     delete $field\_onchp
+   end
+  end
+
+  $OUT_FIELDS = 
+  foreach field $SMP_FIELDS_DIF $REF_FIELDS_DIF $XTR_FIELDS_DIF
+    $OUT_FIELDS = $OUT_FIELDS $field\_out
+  end
+
+  sprintf output "%s/%s.%s.diff.stf" $OUTDIR $expname $OUTVERSION
+  write -fits DATA $output $OUT_FIELDS
 end
 
@@ -78,5 +96,5 @@
   end
 
-  local filename
+  local filename NAXIS1 NAXIS2
   $filename = $1
   if ("$filename" == "") 
@@ -100,39 +118,28 @@
   # do we need to grow the range at all?
   set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 
-  subset RrefS = Rref if keep
-  subset DrefS = Dref if keep
-  subset MrefS = Mref if keep
+  foreach field $REF_FIELDS_DIF Nref
+    subset $field\_tmp = $field if keep
+  end
 
   # convert the subset coordinates to pixels
-  set XrefS = RrefS
-  set YrefS = DrefS
-  coords -q hdr -c XrefS YrefS
+  set Xref_tmp = Rref_tmp
+  set Yref_tmp = Dref_tmp
+  coords -q hdr -c Xref_tmp Yref_tmp
 
   # generate a subset of sources which are within the boundaries of the skycell
   set keep = (XrefS >= 0) && (XrefS <= $NAXIS1) && (YrefS >= 0) && (YrefS <= $NAXIS2)
-  subset XrefSS = XrefS if keep
-  subset YrefSS = YrefS if keep
-  subset RrefSS = RrefS if keep
-  subset DrefSS = DrefS if keep
-  subset MrefSS = MrefS if keep
+  foreach field $REF_FIELDS_DIF Nref Xref Yref
+    subset $field\_onchp = $field\_tmp if keep
+    delete $field\_tmp
+  end
 
   # now read the smf detections
   data $filename
-  read -fits SkyChip.psf X_PSF Y_PSF RA_PSF DEC_PSF CAL_PSF_MAG PSF_QF PSF_QF_PERFECT
-
-  match2d XrefSS YrefSS X_PSF Y_PSF $MATCH_RADIUS -closest
-
-  reindex X_PSF_found = X_PSF using index1 -keep-unmatched
-  reindex Y_PSF_found = Y_PSF using index1 -keep-unmatched
-  reindex M_PSF_found = CAL_PSF_MAG using index1 -keep-unmatched
-  reindex Q1_PSF_found = PSF_QF using index1 -keep-unmatched
-  reindex Q2_PSF_found = PSF_QF_PERFECT using index1 -keep-unmatched
-
-  set dX = XrefSS - X_PSF_found; subset dXs = dX where (MrefSS < 18); vstat -q dXs
-  set dY = YrefSS - Y_PSF_found; subset dYs = dY where (MrefSS < 18); vstat -q dYs
-  set dM = MrefSS - M_PSF_found; subset dMs = dM where (MrefSS < 18); vstat -q dMs
-
-  # measure some stats, eg:
-  # * fraction detected vs mag, filter by PSF_QF, PSF_QF_PERFECT
+  read -fits SkyChip.psf $SMF_FIELDS_DIF
+
+  match2d Xref_onchp Yref_onchp X_PSF Y_PSF $MATCH_RADIUS -closest
+  foreach field $SMF_FIELDS_DIF
+    reindex $field\_found = $field using index1 -keep-unmatched
+  end
 end
 
@@ -160,52 +167,11 @@
   # I want to set an image based on the bit values but I fear
   # the mask has been converted to a float when read
-  forcedphot mkPerfect XrefSS YrefSS -output Q1refSS
-
-  subset tmp = Q1refSS where (Q1refSS > 0.85)
-
-  if ($VERBOSE) echo tmp[] of Q1refSS[] are unmasked
-end
-
-macro get.diff.detect.coords
-  if ($0 != 2) 
-   echo "USAGE: get.diff.detect.coords (buffer)"
-   echo "  assumes existence of vectors (Rref, Dref, Mref) and buffer (PHU)"
-   echo "  matches known sources to detections in the smf file extensions for each chip"
-   echo "  calculates detection fraction as a function of magnitude"
-   echo "  also astrometric and photometric scatter vs magnitude for good detections"
-   break
-  end
-
-  local buffname
-  $buffname = $1
-
-  keyword $buffname NAXIS1 NAXIS1
-  keyword $buffname NAXIS2 NAXIS2
-
-  coords -q $buffname -p       0       0; init.radec.range
-  coords -q $buffname -p $NAXIS1       0; set.radec.range
-  coords -q $buffname -p $NAXIS1 $NAXIS2; set.radec.range
-  coords -q $buffname -p       0 $NAXIS2; set.radec.range
-
-  # generate a subset which could be on this chip
-  # do we need to grow the range at all?
-  set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 
-  subset RrefS = Rref if keep
-  subset DrefS = Dref if keep
-  subset MrefS = Mref if keep
-
-  # convert the subset coordinates to pixels
-  set XrefS = RrefS
-  set YrefS = DrefS
-  coords -q $buffname -c XrefS YrefS
-
-  # generate a subset of sources which are within the boundaries of the chip
-  set keep = (XrefS >= 0) && (XrefS <= $NAXIS1) && (YrefS >= 0) && (YrefS <= $NAXIS2)
-  subset XrefSS = XrefS if keep
-  subset YrefSS = YrefS if keep
-  subset RrefSS = RrefS if keep
-  subset DrefSS = DrefS if keep
-  subset MrefSS = MrefS if keep
-end
+  forcedphot mkPerfect Xref_onchp Yref_onchp -output Q1ref_onchp
+
+  subset tmp = Q1ref_onchp where (Q1ref_onchp > 0.85)
+  if ($VERBOSE) echo tmp[] of Q1ref_onchp[] are unmasked
+end
+
+## utilities
 
 macro init.radec.range
Index: /trunk/tools/eam/teleff/warpmask.pro
===================================================================
--- /trunk/tools/eam/teleff/warpmask.pro	(revision 41716)
+++ /trunk/tools/eam/teleff/warpmask.pro	(revision 41717)
@@ -5,4 +5,7 @@
 $OUTDIR     = .
 $OUTVERSION = XXX
+
+$REF_FIELDS_WRP = Rref Dref Mref 
+$XTR_FIELDS_WRP = Xref Yref Nref Q1ref
 
 macro get.warp.eff
@@ -39,5 +42,5 @@
   data $refsrcs
   # NOTE: Mref is chosen to match filter for this exposure
-  data $refsrcs; read -fits DATA Rref Dref Mref
+  data $refsrcs; read -fits DATA $REF_FIELDS_WRP
   set Nref = ramp(Rref)
   if ($VERBOSE) echo "loaded Rref[] sources from reference $refsrcs"
@@ -47,7 +50,17 @@
     get.warp.mask.stats $warpMask:$i
 
-    sprintf output "%s/%s.%s.%s.warp.stf" $OUTDIR $expname $skycell:$i $OUTVERSION
-    write -fits DATA $output RrefSS DrefSS MrefSS XrefSS YrefSS Q1refSS
-  end
+    foreach field REF_FIELDS_WRP $XTR_FIELDS_WRP
+      concat $field\_onchp $field\_out
+      delete $field\_onchp
+    end
+  end
+
+  $OUT_FIELDS = 
+  foreach field $REF_FIELDS_WRP $XTR_FIELDS_WRP
+    $OUT_FIELDS = $OUT_FIELDS $field\_out
+  end
+
+  sprintf output "%s/%s.%s.%s.warp.stf" $OUTDIR $expname $skycell:$i $OUTVERSION
+  write -fits DATA $output $OUT_FIELDS
 end
 
@@ -67,5 +80,5 @@
 
   # select the sources which are within the bounds of this image
-  # output is XrefSS YrefSS RrefSS DrefSS MrefSS
+  # output is Xref_onchp Yref_onchp Rref_onchp Dref_onchp Mref_onchp
   get.warp.detect.coords mk
 
@@ -75,9 +88,8 @@
   # I want to set an image based on the bit values but I fear
   # the mask has been converted to a float when read
-  forcedphot mkPerfect XrefSS YrefSS -output Q1refSS
-
-  subset tmp = Q1refSS where (Q1refSS > 0.85)
-
-  if ($VERBOSE) echo tmp[] of Q1refSS[] are unmasked
+  forcedphot mkPerfect Xref_onchp Yref_onchp -output Q1ref_onchp
+
+  subset tmp = Q1ref_onchp where (Q1ref_onchp > 0.85)
+  if ($VERBOSE) echo tmp[] of Q1ref_onchp[] are unmasked
 end
 
@@ -92,5 +104,5 @@
   end
 
-  local buffname
+  local buffname NAXIS1 NAXIS2
   $buffname = $1
 
@@ -106,20 +118,19 @@
   # do we need to grow the range at all?
   set keep = (Rref >= $minR) && (Rref <= $maxR) && (Dref >= $minD) && (Dref <= $maxD) 
-  subset RrefS = Rref if keep
-  subset DrefS = Dref if keep
-  subset MrefS = Mref if keep
+  foreach field $REF_FIELDS_WRP Nref
+    subset $field\_tmp = $field if keep
+  end
 
   # convert the subset coordinates to pixels
-  set XrefS = RrefS
-  set YrefS = DrefS
-  coords -q $buffname -c XrefS YrefS
+  set Xref_tmp = Rref_tmp
+  set Yref_tmp = Dref_tmp
+  coords -q $buffname -c Xref_tmp Yref_tmp
 
   # generate a subset of sources which are within the boundaries of the chip
-  set keep = (XrefS >= 0) && (XrefS <= $NAXIS1) && (YrefS >= 0) && (YrefS <= $NAXIS2)
-  subset XrefSS = XrefS if keep
-  subset YrefSS = YrefS if keep
-  subset RrefSS = RrefS if keep
-  subset DrefSS = DrefS if keep
-  subset MrefSS = MrefS if keep
+  set keep = (Xref_tmp >= 0) && (Xref_tmp <= $NAXIS1) && (Yref_tmp >= 0) && (Yref_tmp <= $NAXIS2)
+  foreach field $REF_FIELDS_WRP Nref Xref Yref
+    subset $field\_onchp = $field\_tmp if keep
+    delete $field\_tmp
+  end
 end
 
