Index: /trunk/ippconfig/gpc1/psphot.config
===================================================================
--- /trunk/ippconfig/gpc1/psphot.config	(revision 34306)
+++ /trunk/ippconfig/gpc1/psphot.config	(revision 34307)
@@ -19,6 +19,9 @@
 # PSF model parameters : choose the PSF model desired
 PSF_MODEL              	 	    STR   PS_MODEL_PS1_V1
+# vector of simga values to use in when setting the moments window (this is shorter for gpc1 than
+# the psphot default)
+@PSF.SIGMA.VALUES                   F32   1.0  2.0  3.0  4.5  6.0  9.0 # comment due to ticket #1476
+
 PSPHOT.CR.NSIGMA.SOFTEN             F32   0.0025        # Softening parameter for weights in CR stat
-
 PSPHOT.CR.MAX.SIZE                  F32   0.8             # guess for limit on M_minor in pix^2
 PSPHOT.CR.MAX.MAG                   F32  -8.0             # guess for limit on Kron Mag
Index: /trunk/ippconfig/recipes/psphot.config
===================================================================
--- /trunk/ippconfig/recipes/psphot.config	(revision 34306)
+++ /trunk/ippconfig/recipes/psphot.config	(revision 34307)
@@ -122,4 +122,6 @@
 PSF_MODEL                           STR   PS_MODEL_GAUSS
 # PSF_MODEL                         STR   PS_MODEL_PGAUSS
+# sigma values used by psphotSetMomentsWindow. Maximum length of this array is 8
+@PSF.SIGMA.VALUES                   F32   1.0  2.0  3.0  4.5  6.0  9.0  12.0  18.0 # comment due to ticket #1476
 
 # PSF.TREND.MASK must be a 2D polynomial
Index: /trunk/psphot/src/psphotSourceStats.c
===================================================================
--- /trunk/psphot/src/psphotSourceStats.c	(revision 34306)
+++ /trunk/psphot/src/psphotSourceStats.c	(revision 34307)
@@ -521,16 +521,26 @@
     float PSF_SN_LIM = 2.0*psMetadataLookupF32(&status, recipe, "PSF_SN_LIM"); psAssert (status, "missing PSF_SN_LIM");
 
-    // XXX move this to a config file?
+
     # define NSIGMA 8
-    float sigma[NSIGMA] = {1.0, 2.0, 3.0, 4.5, 6.0, 9.0, 12.0, 18.0};
+    // moved to config file
+    // float sigma[NSIGMA]  = {1.0, 2.0, 3.0, 4.5, 6.0, 9.0, 12.0, 18.0};
+    psVector  *sigmavec = psMetadataLookupPtr (&status, recipe, "PSF.SIGMA.VALUES"); psAssert(status, "missing PSF.SIGMA.VALUES");
+    psAssert(sigmavec->n <= NSIGMA, "too many sigma values in recipe %ld maximum is %d", sigmavec->n, NSIGMA);
+
+    float sigma[NSIGMA];
     float Sout[NSIGMA];
     float Rmin[NSIGMA];
     int   Nout[NSIGMA]; // number of stars found in clump : use this to control the number of regions measured by psphotRoughClass
 
+    // copy the data from vector to local array to keep the code below easier to read
+    for (int i = 0 ; i < sigmavec->n; i++) {
+        sigma[i] = sigmavec->data.F32[i];
+    }
+
     // this sorts by peak->rawFlux
     sources = psArraySort (sources, pmSourceSortByFlux);
 
     // loop over radii:
-    for (int i = 0; i < NSIGMA; i++) {
+    for (int i = 0; i < sigmavec->n; i++) {
 
         // XXX move max source number to config
@@ -589,12 +599,12 @@
     float minS = Sout[0];
     float maxS = Sout[0];
-    for (int i = 0; i < NSIGMA; i++) {
+    for (int i = 0; i < sigmavec->n; i++) {
         minS = PS_MIN(Sout[i], minS);
         maxS = PS_MAX(Sout[i], maxS);
     }
-    if (minS > 0.65) Sigma = sigma[NSIGMA-1];
+    if (minS > 0.65) Sigma = sigma[sigmavec->n-1];
     if (maxS < 0.65) Sigma = sigma[0];
 
-    for (int i = 0; i < NSIGMA - 1 && isnan(Sigma); i++) {
+    for (int i = 0; i < sigmavec->n - 1 && isnan(Sigma); i++) {
         if (!isfinite(Sout[i]) || !isfinite(Sout[i+1])) continue;
         if ((Sout[i] > 0.65) && (Sout[i+1] > 0.65)) continue;
