Index: /branches/eam_branch_20081230/psModules/src/objects/pmPSF_IO.c
===================================================================
--- /branches/eam_branch_20081230/psModules/src/objects/pmPSF_IO.c	(revision 21143)
+++ /branches/eam_branch_20081230/psModules/src/objects/pmPSF_IO.c	(revision 21144)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2008-12-08 02:51:14 $
+ *  @version $Revision: 1.36.4.1 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2009-01-20 02:57:05 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -871,4 +871,5 @@
             psFitsReadImageBuffer(psf->residuals->Ry, file->fits, fullImage, 2); // Desired pixels
         }
+	// XXX notice that we are not saving the resid->mask
     }
 
Index: /branches/eam_branch_20081230/psModules/src/objects/pmResiduals.c
===================================================================
--- /branches/eam_branch_20081230/psModules/src/objects/pmResiduals.c	(revision 21143)
+++ /branches/eam_branch_20081230/psModules/src/objects/pmResiduals.c	(revision 21144)
@@ -4,6 +4,6 @@
  *
  * @author EAM, IfA
- * @version $Revision: 1.3.52.1 $ $Name: not supported by cvs2svn $
- * @date $Date: 2009-01-02 05:13:00 $
+ * @version $Revision: 1.3.52.2 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2009-01-20 02:57:05 $
  * Copyright 2004 IfA, University of Hawaii
  */
@@ -43,7 +43,7 @@
     resid->Ry  = psImageAlloc (nX, nY, PS_TYPE_F32);
     resid->weight = psImageAlloc (nX, nY, PS_TYPE_F32);
-    resid->mask   = psImageAlloc (nX, nY, PS_TYPE_U8);
+    resid->mask   = psImageAlloc (nX, nY, PM_TYPE_RESID_MASK);
+
     // NOTE : the residual mask is internal only : 1 byte is sufficient
-    // XXX abstract the resid->mask type??
 
     resid->xBin = xBin;
Index: /branches/eam_branch_20081230/psModules/src/objects/pmResiduals.h
===================================================================
--- /branches/eam_branch_20081230/psModules/src/objects/pmResiduals.h	(revision 21143)
+++ /branches/eam_branch_20081230/psModules/src/objects/pmResiduals.h	(revision 21144)
@@ -4,6 +4,6 @@
  *
  * @author EAM, IfA
- * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-11-10 01:09:20 $
+ * @version $Revision: 1.3.52.1 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2009-01-20 02:57:05 $
  * Copyright 2004 IfA, University of Hawaii
  */
@@ -31,4 +31,11 @@
 bool psMemCheckResiduals(psPtr ptr);
 
+// macros to abstract the resid mask type : these values must be consistent 
+#define PM_TYPE_RESID_MASK PS_TYPE_U8        /**< the psElemType to use for mask image */
+#define PM_TYPE_RESID_MASK_DATA U8           /**< the data member to use for mask image */
+#define PM_TYPE_RESID_MASK_NAME "psU8"       /**< the data type for mask as a string */
+typedef psU8 pmResidMaskType;               ///< the C datatype for a mask image
+#define PM_NOT_RESID_MASK(A)(UINT8_MAX-(A))
+
 /// @}
 # endif
Index: /branches/eam_branch_20081230/psModules/src/objects/pmSourceFitSet.c
===================================================================
--- /branches/eam_branch_20081230/psModules/src/objects/pmSourceFitSet.c	(revision 21143)
+++ /branches/eam_branch_20081230/psModules/src/objects/pmSourceFitSet.c	(revision 21144)
@@ -6,6 +6,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.12.4.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2008-12-31 20:31:29 $
+ *  @version $Revision: 1.12.4.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2009-01-20 02:57:05 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -281,5 +281,5 @@
             for (int j = 0; j < paramOne->n; j++) {
                 if (j == PM_PAR_I0) continue;
-                constraint->paramMask->data.PS_TYPE_IMAGE_MASK_DATA[n + j] = 1;
+                constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[n + j] = 1;
             }
             break;
@@ -290,10 +290,10 @@
                 if (j == PM_PAR_YPOS) continue;
                 if (j == PM_PAR_I0) continue;
-                constraint->paramMask->data.PS_TYPE_IMAGE_MASK_DATA[n + j] = 1;
+                constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[n + j] = 1;
             }
             break;
           case PM_SOURCE_FIT_EXT:
             // EXT model fits all params (except sky)
-            constraint->paramMask->data.PS_TYPE_IMAGE_MASK_DATA[n + PM_PAR_SKY] = 1;
+            constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[n + PM_PAR_SKY] = 1;
             break;
           default:
Index: /branches/eam_branch_20081230/psphot/src/psphotMakeResiduals.c
===================================================================
--- /branches/eam_branch_20081230/psphot/src/psphotMakeResiduals.c	(revision 21143)
+++ /branches/eam_branch_20081230/psphot/src/psphotMakeResiduals.c	(revision 21144)
@@ -194,5 +194,5 @@
                 resid->Rx->data.F32[oy][ox] = 0.0;
                 resid->Ry->data.F32[oy][ox] = 0.0;
-                resid->mask->data.PS_TYPE_IMAGE_MASK_DATA[oy][ox] = badMask;
+                resid->mask->data.PM_TYPE_RESID_MASK_DATA[oy][ox] = badMask;
                 continue;
             }
@@ -228,8 +228,8 @@
 
                 if (fabs(resid->Ro->data.F32[oy][ox]) < pixelSN*fluxStats->sampleStdev/sqrt(nKeep)) {
-                  resid->mask->data.PS_TYPE_IMAGE_MASK_DATA[oy][ox] = 1;
-                }
-
-		// fprintf (stderr, "res: %2d %2d : %6.4f  %6.4f  %6.4f   %3d  %1d\n", ox, oy, resid->Ro->data.F32[oy][ox], fluxStats->sampleStdev, fluxStats->sampleStdev/sqrt(nKeep), nKeep, resid->mask->data.PS_TYPE_IMAGE_MASK_DATA[oy][ox]);
+                  resid->mask->data.PM_TYPE_RESID_MASK_DATA[oy][ox] = 1;
+                }
+
+		// fprintf (stderr, "res: %2d %2d : %6.4f  %6.4f  %6.4f   %3d  %1d\n", ox, oy, resid->Ro->data.F32[oy][ox], fluxStats->sampleStdev, fluxStats->sampleStdev/sqrt(nKeep), nKeep, resid->mask->data.PM_TYPE_RESID_MASK_DATA[oy][ox]);
 
             } else {
@@ -268,8 +268,9 @@
 
                 float dRo = sqrt(A->data.F32[0][0]);
-		// fprintf (stderr, "res: %2d %2d : %6.4f  %6.4f  %6.4f   %3d  %1d\n", ox, oy, resid->Ro->data.F32[oy][ox], dRo, dRo/sqrt(nKeep), nKeep, resid->mask->data.PS_TYPE_IMAGE_MASK_DATA[oy][ox]);
+		// fprintf (stderr, "res: %2d %2d : %6.4f  %6.4f  %6.4f   %3d  %1d\n", 
+		// ox, oy, resid->Ro->data.F32[oy][ox], dRo, dRo/sqrt(nKeep), nKeep, resid->mask->data.PM_TYPE_RESID_MASK_DATA[oy][ox]);
 
                 if (fabs(resid->Ro->data.F32[oy][ox]) < pixelSN*dRo/sqrt(nKeep)) {
-                  resid->mask->data.PS_TYPE_IMAGE_MASK_DATA[oy][ox] = 1;
+                  resid->mask->data.PM_TYPE_RESID_MASK_DATA[oy][ox] = 1;
                 }
                 //resid->weight->data.F32[oy][ox] = XXX;
