Index: branches/eam_branches/psphot.20100506/src/psphotStackOptions.c
===================================================================
--- branches/eam_branches/psphot.20100506/src/psphotStackOptions.c	(revision 27883)
+++ branches/eam_branches/psphot.20100506/src/psphotStackOptions.c	(revision 27884)
@@ -29,26 +29,22 @@
     options->convolve = false;
     options->convolveSource = PSPHOT_CNV_SRC_NONE;
-
-    options->psfs = psArrayAlloc(num);
-
-    options->inputSeeing = psVectorAlloc(num, PS_TYPE_F32);
-    psVectorInit(options->inputSeeing, NAN);
-
-    options->matchChi2 = psVectorAlloc(num, PS_TYPE_F32);
-    psVectorInit(options->matchChi2, NAN);
-
-    options->inputMask = psVectorAlloc(num, PS_TYPE_VECTOR_MASK); // Mask for inputs
-    psVectorInit(options->inputMask, 0);
-
     options->targetSeeing = NAN;
 
+    options->psfs        = psArrayAlloc(num);
     options->sourceLists = psArrayAlloc(num); // Individual lists of sources for matching
-    options->norm = psVectorAlloc(num, PS_TYPE_F32);
-    psVectorInit(options->norm, NAN);
+    options->kernels     = psArrayAlloc(num); 
+    options->regions     = psArrayAlloc(num); 
 
-    options->kernels = NULL;
-    options->regions = NULL;
-    options->matchChi2 = NULL;
-    options->weightings = NULL;
+    options->inputMask   = psVectorAlloc(num, PS_TYPE_VECTOR_MASK); // Mask for inputs
+    options->inputSeeing = psVectorAlloc(num, PS_TYPE_F32);
+    options->norm        = psVectorAlloc(num, PS_TYPE_F32);
+    options->matchChi2   = psVectorAlloc(num, PS_TYPE_F32); // chi^2 for stamps when matching
+    options->weightings  = psVectorAlloc(num, PS_TYPE_F32); // Combination weightings for images (1/noise^2)
+
+    psVectorInit(options->inputMask,   0);
+    psVectorInit(options->inputSeeing, NAN);
+    psVectorInit(options->norm,        NAN);
+    psVectorInit(options->matchChi2,   NAN);
+    psVectorInit(options->weightings,  NAN);
 
     return options;
@@ -62,2 +58,34 @@
     return PSPHOT_CNV_SRC_NONE;
 }
+
+pmFPAfile *psphotStackGetConvolveSource (pmConfig *config, psphotStackOptions *options, int index) {
+
+    // which image do we want to convolve?  RAW, CNV, AUTO?
+    // find the currently selected readout
+    pmFPAfile *fileRaw = pmFPAfileSelectSingle(config->files, "PSPHOT.STACK.INPUT.RAW", index); // File of interest
+    pmFPAfile *fileCnv = pmFPAfileSelectSingle(config->files, "PSPHOT.STACK.INPUT.CNV", index); // File of interest
+
+    pmFPAfile *fileSrc = NULL;
+
+    switch (options->convolveSource) {
+      case PSPHOT_CNV_SRC_AUTO:
+	fileSrc = fileCnv ? fileCnv : fileRaw;
+	break;
+
+      case PSPHOT_CNV_SRC_RAW:
+	fileSrc = fileRaw;
+	break;
+
+      case PSPHOT_CNV_SRC_CNV:
+	fileSrc = fileCnv;
+	break;
+
+      default:
+	psAbort("impossible case");
+    }
+    if (!fileSrc) {
+	psError(PSPHOT_ERR_CONFIG, true, "desired convolution source is missing (cnv : %llx, raw : %llx)", (long long) fileCnv, (long long) fileRaw);
+    }
+    
+    return fileSrc;
+}
