Index: branches/pap/ppSub/src/ppSubReadoutPhotometry.c
===================================================================
--- branches/pap/ppSub/src/ppSubReadoutPhotometry.c	(revision 23597)
+++ branches/pap/ppSub/src/ppSubReadoutPhotometry.c	(revision 23672)
@@ -22,5 +22,5 @@
 #include "ppSub.h"
 
-bool ppSubReadoutPhotometry (pmConfig *config, psMetadata *stats, const pmFPAview *view)
+bool ppSubReadoutPhotometry (pmConfig *config, ppSubData *data, const pmFPAview *view)
 {
     psAssert(config, "Require configuration");
@@ -45,11 +45,8 @@
     pmPSF *psf = psMetadataLookupPtr(NULL, psfInputChip->analysis, "PSPHOT.PSF"); // PSF for photometry
     if (!psf) {
+        psErrorStackPrint(stderr, "No PSF available");
         psWarning("No PSF available --- suspect bad data quality.");
-        if (stats && psMetadataLookupBool(NULL, stats, "QUALITY")) {
-            psError(PS_ERR_UNEXPECTED_NULL, false, "Bad or unset QUALITY flag");
-            return false;
-        }
-        psErrorClear();
-        psphotFilesActivate(config, false);
+        ppSubDataQuality(config, data, psErrorCodeLast(), PPSUB_FILES_PHOT);
+        return true;
     }
     psMetadataAddPtr(psfLoadChip->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN | PS_META_REPLACE,
@@ -85,9 +82,4 @@
     }
 
-#if 0
-    psMetadataAddPtr(config->files, PS_LIST_TAIL, "PSPHOT.INPUT", PS_DATA_UNKNOWN | PS_META_REPLACE,
-                     "psphot input: view on another pmFPAfile", photFile);
-#endif
-
     if (!psphotReadoutMinimal(config, view)) {
         // This is likely a data quality issue
@@ -95,22 +87,16 @@
         psErrorStackPrint(stderr, "Unable to perform photometry on image");
         psWarning("Unable to perform photometry on image --- suspect bad data quality.");
-        if (stats && psMetadataLookupS32(NULL, stats, "QUALITY") == 0) {
-            psMetadataAddS32(stats, PS_LIST_TAIL, "QUALITY", PS_META_REPLACE,
-                             "Unable to perform photometry on image", psErrorCodeLast());
-        }
-        psErrorClear();
-        psphotFilesActivate(config, false);
+        ppSubDataQuality(config, data, psErrorCodeLast(), PPSUB_FILES_PHOT);
     }
-#if 1
+
     photRO->data_exists = true;
     photRO->parent->data_exists = true;
     photRO->parent->parent->data_exists = true;
-#endif
 
-    if (stats) {
+    if (data->stats) {
         psArray *sources = psMetadataLookupPtr(NULL, photRO->analysis, "PSPHOT.SOURCES"); // Sources
-        psMetadataAddS32(stats, PS_LIST_TAIL, "NUM_SOURCES", 0, "Number of sources detected",
+        psMetadataAddS32(data->stats, PS_LIST_TAIL, "NUM_SOURCES", 0, "Number of sources detected",
                          sources ? sources->n : 0);
-        psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_PHOT", 0, "Time to do photometry",
+        psMetadataAddF32(data->stats, PS_LIST_TAIL, "TIME_PHOT", 0, "Time to do photometry",
                          psTimerClear("PPSUB_PHOT"));
     }
