Index: trunk/psModules/src/objects/pmSourcePhotometry.c
===================================================================
--- trunk/psModules/src/objects/pmSourcePhotometry.c	(revision 21363)
+++ trunk/psModules/src/objects/pmSourcePhotometry.c	(revision 21511)
@@ -3,6 +3,6 @@
  *  @author EAM, IfA; GLG, MHPCC
  *
- *  @version $Revision: 1.49 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2009-02-06 02:31:25 $
+ *  @version $Revision: 1.50 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2009-02-16 22:28:54 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -145,5 +145,5 @@
     // measure the contribution of included pixels
     if (mode & PM_SOURCE_PHOT_WEIGHT) {
-        pmSourcePixelWeight (&source->pixWeight, model, source->pixels, source->maskObj, maskVal);
+        pmSourcePixelWeight (&source->pixWeight, model, source->maskObj, maskVal);
     }
 
@@ -164,5 +164,5 @@
     // XXX full model or just analytical?
     // XXX use pmSourceAdd instead?
-    if (source->mode & PM_SOURCE_MODE_SUBTRACTED) {
+    if (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED) {
         pmModelAdd (source->pixels, source->maskObj, model, PM_MODEL_OP_FULL, maskVal);
     }
@@ -170,5 +170,4 @@
     // if we are measuring aperture photometry and applying the growth correction,
     // we need to shift the flux in the selected pixels (but not the mask)
-    // psImageShift ();
     psImage *flux = NULL, *mask = NULL; // Star flux and mask images, to photometer
     if (mode & PM_SOURCE_PHOT_INTERP) {
@@ -186,57 +185,4 @@
         }
 
-        // XXX this is test code to verify the shift is doing the right thing (seems to be)
-        # if (0)
-            // measure centroid of unshifted gaussian (should be 16.0,16.0)
-        {
-            psImage *image = source->pixels;
-            float xo = 0.0;
-            float yo = 0.0;
-            float xo2 = 0.0;
-            float yo2 = 0.0;
-            float no = 0.0;
-            for (int j = 0; j < image->numRows; j++)
-            {
-                for (int i = 0; i < image->numCols; i++) {
-                    xo += i*image->data.F32[j][i];
-                    yo += j*image->data.F32[j][i];
-                    xo2 += i*i*image->data.F32[j][i];
-                    yo2 += j*j*image->data.F32[j][i];
-                    no += image->data.F32[j][i];
-                }
-            }
-            xo /= no;
-            yo /= no;
-            xo2 = sqrt (xo2/no - xo*xo);
-            yo2 = sqrt (yo2/no - yo*yo);
-            fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no);
-        }
-
-        // measure centroid of unshifted gaussian (should be 16.0,16.0)
-        {
-            psImage *image = flux;
-            float xo = 0.0;
-            float yo = 0.0;
-            float xo2 = 0.0;
-            float yo2 = 0.0;
-            float no = 0.0;
-            for (int j = 0; j < image->numRows; j++)
-            {
-                for (int i = 0; i < image->numCols; i++) {
-                    xo += i*image->data.F32[j][i];
-                    yo += j*image->data.F32[j][i];
-                    xo2 += i*i*image->data.F32[j][i];
-                    yo2 += j*j*image->data.F32[j][i];
-                    no += image->data.F32[j][i];
-                }
-            }
-            xo /= no;
-            yo /= no;
-            xo2 = sqrt (xo2/no - xo*xo);
-            yo2 = sqrt (yo2/no - yo*yo);
-            fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no);
-        }
-        # endif
-
     } else {
         flux = source->pixels;
@@ -269,5 +215,5 @@
     // if source was originally subtracted, re-subtract object, leave local sky
     // XXX replace with pmSourceSub...
-    if (source->mode & PM_SOURCE_MODE_SUBTRACTED) {
+    if (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED) {
         pmModelSub (source->pixels, source->maskObj, model, PM_MODEL_OP_FULL, maskVal);
     }
@@ -344,8 +290,7 @@
 
 // return source aperture magnitude
-bool pmSourcePixelWeight (float *pixWeight, pmModel *model, psImage *image, psImage *mask, psImageMaskType maskVal)
+bool pmSourcePixelWeight (float *pixWeight, pmModel *model, psImage *mask, psImageMaskType maskVal)
 {
     PS_ASSERT_PTR_NON_NULL(pixWeight, false);
-    PS_ASSERT_PTR_NON_NULL(image, false);
     PS_ASSERT_PTR_NON_NULL(mask, false);
     PS_ASSERT_PTR_NON_NULL(model, false);
@@ -377,13 +322,13 @@
     Yo = params->data.F32[PM_PAR_YPOS];
 
-    dX = Xo - image->col0;
-    dP = image->numCols - dX;
+    dX = Xo - mask->col0;
+    dP = mask->numCols - dX;
     DX = PS_MAX(dX, dP);
-    NX = image->numCols;
-
-    dY = Yo - image->row0;
-    dP = image->numRows - dY;
+    NX = mask->numCols;
+
+    dY = Yo - mask->row0;
+    dP = mask->numRows - dY;
     DY = PS_MAX(dY, dP);
-    NY = image->numRows;
+    NY = mask->numRows;
 
     // measure modelSum and validSum.  this function is applied to a sources' subimage.  the
@@ -612,4 +557,5 @@
 # endif
 
+// determine chisq, etc for linear normalization-only fit
 bool pmSourceChisq (pmModel *model, psImage *image, psImage *mask, psImage *variance,
                     psImageMaskType maskVal)
@@ -632,4 +578,5 @@
         }
     }
+    model->nPix = Npix; 
     model->nDOF = Npix - 1;
     model->chisq = dC;
@@ -817,2 +764,54 @@
 }
 
+// XXX this is test code to verify the shift is doing the right thing (seems to be)
+# if (0)
+// measure centroid of unshifted gaussian (should be 16.0,16.0)
+        {
+	  psImage *image = source->pixels;
+	  float xo = 0.0;
+	  float yo = 0.0;
+	  float xo2 = 0.0;
+	  float yo2 = 0.0;
+	  float no = 0.0;
+	  for (int j = 0; j < image->numRows; j++)
+	  {
+	    for (int i = 0; i < image->numCols; i++) {
+	      xo += i*image->data.F32[j][i];
+	      yo += j*image->data.F32[j][i];
+	      xo2 += i*i*image->data.F32[j][i];
+	      yo2 += j*j*image->data.F32[j][i];
+	      no += image->data.F32[j][i];
+	    }
+	  }
+	  xo /= no;
+	  yo /= no;
+	  xo2 = sqrt (xo2/no - xo*xo);
+	  yo2 = sqrt (yo2/no - yo*yo);
+	  fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no);
+        }
+
+// measure centroid of unshifted gaussian (should be 16.0,16.0)
+        {
+	  psImage *image = flux;
+	  float xo = 0.0;
+	  float yo = 0.0;
+	  float xo2 = 0.0;
+	  float yo2 = 0.0;
+	  float no = 0.0;
+	  for (int j = 0; j < image->numRows; j++)
+	  {
+	    for (int i = 0; i < image->numCols; i++) {
+	      xo += i*image->data.F32[j][i];
+	      yo += j*image->data.F32[j][i];
+	      xo2 += i*i*image->data.F32[j][i];
+	      yo2 += j*j*image->data.F32[j][i];
+	      no += image->data.F32[j][i];
+	    }
+	  }
+	  xo /= no;
+	  yo /= no;
+	  xo2 = sqrt (xo2/no - xo*xo);
+	  yo2 = sqrt (yo2/no - yo*yo);
+	  fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no);
+        }
+# endif
