Index: trunk/Ohana/src/dvopsps/src/insert_objects_dvopsps_catalog.c
===================================================================
--- trunk/Ohana/src/dvopsps/src/insert_objects_dvopsps_catalog.c	(revision 35425)
+++ trunk/Ohana/src/dvopsps/src/insert_objects_dvopsps_catalog.c	(revision 35450)
@@ -158,8 +158,8 @@
 		 "MAG_ERR FLOAT,  "         
 		 "MAG_CHI FLOAT,  "         
-		 "FLUX_PSF FLOAT,  "        
-		 "FLUX_PSF_ERR FLOAT,  "    
-		 "FLUX_KRON FLOAT,  "       
-		 "FLUX_KRON_ERR FLOAT,  "   
+		 "STACK_PSF_MAG FLOAT,  "        
+		 "STACK_PSF_MAG_ERR FLOAT,  "    
+		 "STACK_KRON_MAG FLOAT,  "       
+		 "STACK_KRON_MAG_ERR FLOAT,  "   
 		 "FLAGS INT,  "           
 		 "NCODE SMALLINT,  "           
@@ -171,4 +171,9 @@
 		 "STACK_DETECT_ID BIGINT" 
 		 ")\n", basename);
+
+ // 		 "FLUX_PSF FLOAT,  "        
+ //  		 "FLUX_PSF_ERR FLOAT,  "    
+ //  		 "FLUX_KRON FLOAT,  "       
+ //  		 "FLUX_KRON_ERR FLOAT,  "   
 
   if (DEBUG) fprintf (stderr, "%s\n", buffer.buffer);
@@ -237,8 +242,8 @@
 		 "MAG_ERR, "         
 		 "MAG_CHI, "         
-		 "FLUX_PSF, "        
-		 "FLUX_PSF_ERR, "    
-		 "FLUX_KRON, "       
-		 "FLUX_KRON_ERR, "   
+		 "STACK_PSF_MAG, "        
+		 "STACK_PSF_MAG_ERR, "    
+		 "STACK_KRON_MAG, "       
+		 "STACK_KRON_MAG_ERR, "   
 		 "FLAGS, "           
 		 "NCODE, "           
@@ -296,17 +301,55 @@
   PrintIOBuffer (ave_buffer, "),\n");
 
-// XXX this bit could/should be autocoded...
   for (i = 0; i < Nsecfilt; i++) {
+    float meanPSFMag    = -999.0;
+    float meanPSFMagErr = -999.0;
+    if (isfinite(secfilt->dM) && isfinite(secfilt->M)) {
+      meanPSFMag = secfilt->M;
+      meanPSFMagErr = secfilt->dM;
+    }
+
+    float meanKronMag    = -999.0;
+    float meanKronMagErr = -999.0;
+    if (isfinite(secfilt->dMkron) && isfinite(secfilt->Mkron) && (secfilt->dMkron < 0.333)) {
+      meanKronMag = secfilt->Mkron;
+      meanKronMagErr = secfilt->dMkron;
+    }
+
+    float meanApMag    = -999.0;
+    if (isfinite(secfilt->Map)) {
+      meanApMag = secfilt->Map;
+    }
+
+    float stackPSFMag    = -999.0;
+    float stackPSFMagErr = -999.0;
+    if (isfinite(secfilt->dFluxPSF) && isfinite(secfilt->FluxPSF) && (secfilt->dFluxPSF > 0.0)) {
+      float SN = secfilt->FluxPSF / secfilt->dFluxPSF;
+      if (SN > 3.0) {
+	stackPSFMag = -2.5 * log10(secfilt->FluxPSF) + 8.9;
+	stackPSFMagErr = secfilt->dFluxPSF / secfilt->FluxPSF;
+      }
+    }
+
+    float stackKronMag    = -999.0;
+    float stackKronMagErr = -999.0;
+    if (isfinite(secfilt->dFluxKron) && isfinite(secfilt->FluxKron) && (secfilt->dFluxKron > 0.0)) {
+      float SN = secfilt->FluxKron / secfilt->dFluxKron;
+      if (SN > 3.0) {
+	stackKronMag = -2.5 * log10(secfilt->FluxKron) + 8.9;
+	stackKronMagErr = secfilt->dFluxKron / secfilt->FluxKron;
+      }
+    }
+
     PrintIOBuffer (sec_buffer, " (");
-    PRINT_FLOAT(sec_buffer, secfilt->M,      	"%.6f, "); // umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->Map,    	"%.6f, "); // umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->Mkron,  	"%.6f, "); // umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->dMkron, 	"%.6f, "); // umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->dM,     	"%.6f, "); // umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->Xm,     	"%.6f, ");
-    PRINT_FLOAT(sec_buffer, secfilt->FluxPSF,   "%.6e, "); // 0.36 umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->dFluxPSF,  "%.6e, "); // 0.36 umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->FluxKron,  "%.6e, "); // 0.36 umag precision
-    PRINT_FLOAT(sec_buffer, secfilt->dFluxKron, "%.6e, "); // 0.36 umag precision
+    PRINT_FLOAT(sec_buffer, meanPSFMag,      "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, meanApMag,       "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, meanKronMag,     "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, meanKronMagErr,  "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, meanPSFMagErr,   "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, secfilt->Xm,     "%.6f, ");
+    PRINT_FLOAT(sec_buffer, stackPSFMag,     "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, stackPSFMagErr,  "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, stackKronMag,    "%.6f, "); // umag precision
+    PRINT_FLOAT(sec_buffer, stackKronMagErr, "%.6f, "); // 0.36 umag precision
     PrintIOBuffer (sec_buffer, "%u,  ", secfilt->flags);       
     PrintIOBuffer (sec_buffer, "%hd, ", secfilt->Ncode);        
