Index: /branches/eam_branches/ipp-20100823/psphot/src/psphotSourceSize.c
===================================================================
--- /branches/eam_branches/ipp-20100823/psphot/src/psphotSourceSize.c	(revision 29310)
+++ /branches/eam_branches/ipp-20100823/psphot/src/psphotSourceSize.c	(revision 29311)
@@ -333,4 +333,5 @@
         psF32 Mxx = source->moments->Mxx;
         psF32 Myy = source->moments->Myy;
+        psF32 Mxy = source->moments->Mxy;
 
         // replace object in image
@@ -365,4 +366,6 @@
         float nSigmaMXX = (Mxx - psfClump->X) / hypot(psfClump->dX, psfClump->X*psfClump->X*source->errMag);
         float nSigmaMYY = (Myy - psfClump->Y) / hypot(psfClump->dY, psfClump->Y*psfClump->Y*source->errMag);
+
+	// XXX should I change psfClump to use minor, major?
 
 	// fprintf (stderr, "%f %f : Mxx: %f, Myy: %f, dx: %f, dy: %f, psfMag: %f, apMag: %f, dMag: %f, errMag: %f, nSigmaMag: %f, nSigmaMxx: %f, nSigmaMyy: %f\n", 
@@ -407,4 +410,11 @@
         // XXX only accept brightish detections as CRs
         // (nSigmaMAG < -options->nSigmaApResid) ||
+
+	// ** CRs are reliably flagged by a combination on Mminor < X && mag (or flux) > Y
+
+	Mminor = 0.5*(Mxx + Myy) - 0.5*sqrt(PS_SQR(Mxx - Myy) + 4.0*PS_SQR(Mxy));
+
+	// XXX do I need to find the Mminor, Mmajor distribution?
+
         bool isCR = isCR = (source->errMag < 1.0 / SIZE_SN_LIM) && ((Mxx < minMxx) || (Myy < minMyy));
         if (isCR) {
