Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSource.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSource.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSource.c	(revision 28909)
@@ -140,5 +140,6 @@
     source->sky    = NAN;
     source->skyErr = NAN;
-    source->pixWeight = NAN;
+    source->pixWeightNotBad = NAN;
+    source->pixWeightNotPoor = NAN;
 
     source->psfChisq = NAN;
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSource.h
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSource.h	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSource.h	(revision 28909)
@@ -77,6 +77,6 @@
     float apRadius;			///< radius for aperture magnitude
 
-    float psfWeightNotBad;              ///< PSF-weighted coverage of unmasked (not BAD) pixels
-    float psfWeightNotPoor;             ///< PSF-weighted coverage of unmasked (not POOR) pixels
+    float pixWeightNotBad;              ///< PSF-weighted coverage of unmasked (not BAD) pixels
+    float pixWeightNotPoor;             ///< PSF-weighted coverage of unmasked (not POOR) pixels
 
     float psfChisq;                     ///< probability of PSF
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_DV1.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_DV1.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_DV1.c	(revision 28909)
@@ -202,5 +202,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_MINOR",        PS_DATA_F32, "PSF width (minor axis)",                     axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         nDOF);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    nPix);
@@ -342,5 +342,5 @@
         }
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
         source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
         source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_DV2.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_DV2.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_DV2.c	(revision 28909)
@@ -202,5 +202,6 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_MINOR",        PS_DATA_F32, "PSF width (minor axis)",                     axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor (bad)",          source->pixWeightNotBad);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF_PERFECT",   PS_DATA_F32, "PSF coverage/quality factor (poor)",         source->pixWeightNotPoor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         nDOF);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    nPix);
@@ -348,5 +349,6 @@
         }
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotPoor = psMetadataLookupF32 (&status, row, "PSF_QF_PERFECT");
         source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
         source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_SV1.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_SV1.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_SV1.c	(revision 28909)
@@ -202,5 +202,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_MINOR",        PS_DATA_F32, "PSF width (minor axis)",                     axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         nDOF);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    nPix);
@@ -371,5 +371,5 @@
         }
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
         source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
         source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V1.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V1.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V1.c	(revision 28909)
@@ -192,5 +192,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_MINOR",        PS_DATA_F32, "PSF width (minor axis)",                     axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         nDOF);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    nPix);
@@ -328,5 +328,5 @@
         }
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
         source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
         source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V2.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V2.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V2.c	(revision 28909)
@@ -191,5 +191,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_MINOR",        PS_DATA_F32, "PSF width (minor axis)",                     axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         nDOF);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    nPix);
@@ -333,5 +333,5 @@
         }
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
         source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
         source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V3.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V3.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_CMF_PS1_V3.c	(revision 28909)
@@ -193,5 +193,6 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_MINOR",        PS_DATA_F32, "PSF width (minor axis)",                     axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor (bad)",          source->pixWeightNotBad);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF_PERFECT",   PS_DATA_F32, "PSF coverage/quality factor (poor)",         source->pixWeightNotPoor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NDOF",         PS_DATA_S32, "degrees of freedom",                         nDOF);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_NPIX",         PS_DATA_S32, "number of pixels in fit",                    nPix);
@@ -362,5 +363,6 @@
         }
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotPoor = psMetadataLookupF32 (&status, row, "PSF_QF_PERFECT");
         source->crNsigma  = psMetadataLookupF32 (&status, row, "CR_NSIGMA");
         source->extNsigma = psMetadataLookupF32 (&status, row, "EXT_NSIGMA");
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_CAL_0.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_CAL_0.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_CAL_0.c	(revision 28909)
@@ -188,5 +188,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_WIDTH_Y",      PS_DATA_F32, "PSF width in y coordinate",                  axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
 
         // XXX not sure how to get this : need to load Nimages with weight?
@@ -300,5 +300,5 @@
         source->peak->yf   = PAR[PM_PAR_YPOS]; // more accurate position
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
 
 	// note that some older versions used PSF_PROBABILITY: this was not well defined.
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_DEV_0.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_DEV_0.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_DEV_0.c	(revision 28909)
@@ -125,5 +125,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_WIDTH_Y",      PS_DATA_F32, "PSF width in y coordinate",                  axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
         // XXX not sure how to get this : need to load Nimages with weight
         psMetadataAdd (row, PS_LIST_TAIL, "N_FRAMES",         PS_DATA_U16, "Number of frames overlapping source center", nImageOverlap);
@@ -226,5 +226,5 @@
         source->peak->yf   = PAR[PM_PAR_YPOS]; // more accurate position
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
 
         // XXX other values saved but not loaded?
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_DEV_1.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_DEV_1.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_PS1_DEV_1.c	(revision 28909)
@@ -149,5 +149,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_WIDTH_Y",      PS_DATA_F32, "PSF width in y coordinate",                  axes.minor);
         psMetadataAdd (row, PS_LIST_TAIL, "PSF_THETA",        PS_DATA_F32, "PSF orientation angle",                      axes.theta);
-        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeight);
+        psMetadataAdd (row, PS_LIST_TAIL, "PSF_QF",           PS_DATA_F32, "PSF coverage/quality factor",                source->pixWeightNotBad);
 
         // XXX not sure how to get this : need to load Nimages with weight?
@@ -269,5 +269,5 @@
         source->peak->yf   = PAR[PM_PAR_YPOS]; // more accurate position
 
-        source->pixWeight = psMetadataLookupF32 (&status, row, "PSF_QF");
+        source->pixWeightNotBad = psMetadataLookupF32 (&status, row, "PSF_QF");
 
 	// note that some older versions used PSF_PROBABILITY: this was not well defined.
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_RAW.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_RAW.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_RAW.c	(revision 28909)
@@ -128,5 +128,5 @@
                  source[0].peak->SN,
                  source[0].apRadius,
-                 source[0].pixWeight,
+                 source[0].pixWeightNotBad,
                  model[0].nDOF,
                  model[0].nIter);
@@ -190,5 +190,5 @@
                  source[0].peak->SN,
                  source[0].apRadius,
-                 source[0].pixWeight,
+                 source[0].pixWeightNotBad,
                  model[0].nDOF,
                  model[0].nIter);
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_SMPDATA.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_SMPDATA.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourceIO_SMPDATA.c	(revision 28909)
@@ -114,5 +114,5 @@
         psMetadataAdd (row, PS_LIST_TAIL, "THETA",   PS_DATA_F32, "", axes.theta);
         psMetadataAdd (row, PS_LIST_TAIL, "DOPHOT",  PS_DATA_U8,  "", type);
-        psMetadataAdd (row, PS_LIST_TAIL, "WEIGHT",  PS_DATA_U8,  "", PS_MIN (255, PS_MAX(0, 255*source->pixWeight)));
+        psMetadataAdd (row, PS_LIST_TAIL, "WEIGHT",  PS_DATA_U8,  "", PS_MIN (255, PS_MAX(0, 255*source->pixWeightNotBad)));
         psMetadataAdd (row, PS_LIST_TAIL, "DUMMY",   PS_DATA_U16, "", 0);
 
@@ -197,5 +197,5 @@
         source->apMag  = psMetadataLookupF32 (&status, row, "MAG_AP")  - ZERO_POINT;
 
-        source->pixWeight = psMetadataLookupU8 (&status, row, "WEIGHT")/255.0;
+        source->pixWeightNotBad = psMetadataLookupU8 (&status, row, "WEIGHT")/255.0;
         int dophot = psMetadataLookupU8 (&status, row, "DOPHOT");
 	pmSourceSetDophotType (source, dophot);
Index: /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourcePhotometry.c
===================================================================
--- /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourcePhotometry.c	(revision 28908)
+++ /branches/eam_branches/ipp-20100621/psModules/src/objects/pmSourcePhotometry.c	(revision 28909)
@@ -209,4 +209,5 @@
     // if the aper mag is NAN, the flux < 0.  this can happen for sources near the
     // detection limits (esp near bright neighbors)
+    source->apMag = source->apMagRaw;
     if (isfinite (source->apMag) && isPSF && psf) {
         if (psf->growth && (mode & PM_SOURCE_PHOT_GROWTH)) {
@@ -311,5 +312,6 @@
 bool pmSourcePixelWeight (float *pixWeightNotBad, float *pixWeightNotPoor, pmModel *model, psImage *mask, psImageMaskType maskVal, psImageMaskType markVal)
 {
-    PS_ASSERT_PTR_NON_NULL(pixWeight, false);
+    PS_ASSERT_PTR_NON_NULL(pixWeightNotBad, false);
+    PS_ASSERT_PTR_NON_NULL(pixWeightNotPoor, false);
     PS_ASSERT_PTR_NON_NULL(mask, false);
     PS_ASSERT_PTR_NON_NULL(model, false);
