Index: trunk/ppSub/src/ppSubReadoutPhotometry.c
===================================================================
--- trunk/ppSub/src/ppSubReadoutPhotometry.c	(revision 21374)
+++ trunk/ppSub/src/ppSubReadoutPhotometry.c	(revision 21524)
@@ -6,17 +6,24 @@
  *
  *  @author IfA
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2009-02-06 03:20:02 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2009-02-18 00:31:20 $
  *  Copyright 2009 Institute for Astronomy, University of Hawaii
  */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <pslib.h>
+#include <psmodules.h>
+#include <psphot.h>
+
 #include "ppSub.h"
 
-/**
- * Photometry stage 2: find and measure sources on the subtracted image
- */
-bool ppSubReadoutPhotometry (pmConfig *config, psMetadata *stats, const pmFPAview *view) {
-
-    bool mdok = false;
+bool ppSubReadoutPhotometry (pmConfig *config, psMetadata *stats, const pmFPAview *view)
+{
+    psAssert(config, "Require configuration");
+    psAssert(view, "Require view");
 
     // Look up recipe values
@@ -32,28 +39,29 @@
     // The PSF (measured in ppSubMakePSF) is stored on the chip->analysis of PSPHOT.INPUT
     // In order to use an incoming PSF, it must be stored on the chip->analysis of PSPHOT.PSF.LOAD
-    pmChip *psfInputChip = pmFPAfileThisChip(config->files, view, "PSPHOT.INPUT");
+    pmChip *psfInputChip = pmFPAfileThisChip(config->files, view, "PSPHOT.INPUT"); // Chip with PSF
     psAssert (psfInputChip, "should have been generated for ppSubMakePSF");
-
-    pmChip *psfLoadChip = pmFPAfileThisChip(config->files, view, "PSPHOT.PSF.LOAD");
+    pmChip *psfLoadChip = pmFPAfileThisChip(config->files, view, "PSPHOT.PSF.LOAD"); // Chip to have PSF
     psAssert (psfLoadChip, "PSPHOT.PSF.LOAD should have been defined in ppSubCamera");
-
-    pmPSF *psf = psMetadataLookupPtr(NULL, psfInputChip->analysis, "PSPHOT.PSF");
+    pmPSF *psf = psMetadataLookupPtr(NULL, psfInputChip->analysis, "PSPHOT.PSF"); // PSF for photometry
     if (!psf) {
         psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find PSF from psphot");
         return false;
     }
-    psMetadataAddPtr(psfLoadChip->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN | PS_META_REPLACE, "PSF from matched addition", psf);
+    psMetadataAddPtr(psfLoadChip->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN | PS_META_REPLACE,
+                     "PSF from ppSubMakePSF", psf);
+
+    bool mdok = false;
 
     // psphotReadoutMinimal performs the photometry analysis on PSPHOT.INPUT; we need to move
     // around the pointers so PSPHOT.INPUT corresponds to the output image; previously, it was
     // equivalent to the minuend image.
-    pmFPAfile *outputFile = psMetadataLookupPtr(&mdok, config->files, "PPSUB.OUTPUT");
+    pmFPAfile *outputFile = psMetadataLookupPtr(&mdok, config->files, "PPSUB.OUTPUT"); // Output file
     pmReadout *outRO = pmFPAviewThisReadout(view, outputFile->fpa); // Readout with the sources
 
     // XXX possibly rename this to PPSUB.RESID?
-    pmFPAfile *photFile = psMetadataLookupPtr(&mdok, config->files, "PSPHOT.RESID");
-    pmReadout *photRO = pmFPAviewThisReadout(view, photFile->fpa); // Readout with the sources
+    pmFPAfile *photFile = psMetadataLookupPtr(&mdok, config->files, "PSPHOT.INPUT"); // Photometry file
+    pmReadout *photRO = pmFPAviewThisReadout(view, photFile->fpa); // Readout to photometer
     if (!photRO) {
-        pmCell *cell = pmFPAfileThisCell(config->files, view, "PSPHOT.RESID"); // Output cell
+        pmCell *cell = pmFPAviewThisCell(view, photFile->fpa); // Cell to photometer
         photRO = pmReadoutAlloc(cell); // Output readout: subtraction
     }
@@ -62,5 +70,5 @@
         photRO->variance = psImageCopy(photRO->variance, outRO->variance, PS_TYPE_F32);
     } else {
-        psFree (photRO->variance);
+        psFree(photRO->variance);
         photRO->variance = NULL;
     }
@@ -68,16 +76,12 @@
         photRO->mask = psImageCopy(photRO->mask, outRO->mask, PS_TYPE_IMAGE_MASK);
     } else {
-        psFree (photRO->mask);
+        psFree(photRO->mask);
         photRO->mask = NULL;
     }
 
-    // pmFPAfile *photFile = outputFile;
-    psMetadataAddPtr (config->files, PS_LIST_TAIL, "PSPHOT.INPUT", PS_DATA_UNKNOWN | PS_META_REPLACE, "psphot input : view on another pmFPAfile", photFile);
-
-    // old-style variance renormalization
-    if (!ppSubReadoutRenormPhot (config, recipe, photRO)) {
-        psError(PS_ERR_UNKNOWN, false, "failure in renormalization");
-        return false;
-    }
+#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)) {
@@ -86,4 +90,9 @@
         psErrorClear();
     }
+#if 1
+    photRO->data_exists = true;
+    photRO->parent->data_exists = true;
+    photRO->parent->parent->data_exists = true;
+#endif
 
     if (stats) {
@@ -101,14 +110,6 @@
 }
 
-    // XXX not sure that this is still needed (only if psphotReadoutMinimal measures the background)
-    // if (!pmFPAfileDropInternal(config->files, "PSPHOT.BACKMDL") ||
-    //  !pmFPAfileDropInternal (config->files, "PSPHOT.BACKMDL.STDEV") ||
-    //  !pmFPAfileDropInternal (config->files, "PSPHOT.BACKGND")) {
-    //  psError(PS_ERR_UNKNOWN, false, "Unable to drop PSPHOT internal files.");
-    //  return false;
-    // }
 
-    // pmFPAfileActivate(config->files, false, "PSPHOT.INPUT");
-    // pmFPAfileActivate(config->files, false, "PSPHOT.LOAD.PSF");
+
 
 
