Index: branches/eam_branches/ipp-20110213/Ohana/src/relphot/src/bcatalog.c
===================================================================
--- branches/eam_branches/ipp-20110213/Ohana/src/relphot/src/bcatalog.c	(revision 31063)
+++ branches/eam_branches/ipp-20110213/Ohana/src/relphot/src/bcatalog.c	(revision 31064)
@@ -7,5 +7,5 @@
   off_t NAVERAGE, NMEASURE, Naverage, Nmeasure, Nm;
   float mag;
-  int Ncode, Ntime, Ndophot, Nmag, Nsigma, Nimag, Nfew;
+  int Ncode, Ntime, Ndophot, Nmag, Nsigma, Nimag, Nfew, Ngalaxy, Npsfqf;
 
   // XXX PhotNsec as a global is a bad idea; either get it from catalog
@@ -23,5 +23,5 @@
   Nmeasure = Naverage = 0;
 
-  Ncode = Ntime = Ndophot = Nmag = Nsigma = Nimag = Nfew = 0;
+  Ncode = Ntime = Ndophot = Nmag = Nsigma = Nimag = Nfew = Npsfqf = Ngalaxy = 0;
 
   /* exclude stars not in range or with too few measurements */
@@ -44,4 +44,6 @@
 
     Nm = 0;
+    int nEXT = 0;
+    int nPSF = 0;
     for (j = 0; j < catalog[0].average[i].Nmeasure; j++) {
 
@@ -62,4 +64,16 @@
       // XXX chnage this to select by bitflags
       if (DophotSelect && ((catalog[0].measure[offset].photFlags >> 16) != DophotValue)) { Ndophot ++; continue; }
+
+      // skip garbage measurements
+      if (catalog[0].measure[offset].psfQual < 0.85) { Npsfqf ++; continue; }
+
+      // check for galaxies
+      if (!isnan(catalog[0].measure[offset].Map)) {
+	  if (catalog[0].measure[offset].M - catalog[0].measure[offset].Map > 0.15) {
+	      nEXT ++;
+	  } else {
+	      nPSF ++;
+	  }
+      }
 
       /* select measurements by mag limit */
@@ -95,4 +109,11 @@
     }
 
+    // skip object if it is likely to be a galaxy
+    if (nEXT >= nPSF) {
+      Nmeasure -= Nm;
+      Ngalaxy ++;
+      continue; 
+    }
+
     // XXXX test : what checks do I need to make elsewhere to avoid problems here?
     if (Nm <= STAR_TOOFEW) { /* enough measurements in band? */
@@ -121,6 +142,6 @@
     fprintf (stderr, "using "OFF_T_FMT" stars ("OFF_T_FMT" measures) of "OFF_T_FMT" for catalog %s\n", 
 	     subcatalog[0].Naverage,  subcatalog[0].Nmeasure,  i, catalog[0].filename);
-    fprintf (stderr, "rejections: %d code, %d time, %d dophot, %d mag, %d sigma, %d imag, %d few\n", 
-	     Ncode, Ntime, Ndophot, Nmag, Nsigma, Nimag, Nfew);
+    fprintf (stderr, "rejections: %d code, %d time, %d dophot, %d mag, %d sigma, %d imag, %d few, %d psfqf, %d galaxies\n", 
+	     Ncode, Ntime, Ndophot, Nmag, Nsigma, Nimag, Nfew, Npsfqf, Ngalaxy);
   }
   return (TRUE);
