Index: trunk/ippTools/src/dettool.c
===================================================================
--- trunk/ippTools/src/dettool.c	(revision 8532)
+++ trunk/ippTools/src/dettool.c	(revision 8541)
@@ -1527,4 +1527,10 @@
         return false;
     }
+    // pleasenormalize has a default value
+    psS32 normalize = psMetadataLookupS32(&status, config->args, "-pleasenormalize");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -pleasenormalize");
+        return false;
+    }
 
     // correlate the class_id against the input exposure(s)
@@ -1569,5 +1575,6 @@
             bg,
             bg_stdev,
-            bg_mean_stdev
+            bg_mean_stdev,
+            normalize
         );   
 
@@ -1768,4 +1775,6 @@
         "     ON detInputExp.det_id = detStackedImfile.det_id"
         "     AND detInputExp.iteration = detStackedImfile.iteration"
+        " WHERE"
+        "   detStackedImfile.normalize = 1"
         " GROUP BY"
         "     rawDetrendExp.exp_id"
@@ -2250,20 +2259,16 @@
 */
 
-    // select detNormalizedStatImfile.*
-    // by:
-    // where det_id, iteration, class_id is not in detNormalizedImfile
-
     psString query = psStringCopy(
         "SELECT" 
-        "   detRun.iteration as iteration,"
+        "   detRun.iteration,"
         "   detProcessedImfile.*"
         " FROM detRun"
-        " LEFT JOIN detInputExp"
+        " JOIN detInputExp"
         "   ON detRun.position = detInputExp.det_id"
         "   AND detRun.iteration = detInputExp.iteration"
-        " LEFT JOIN detProcessedImfile"
+        " JOIN detProcessedImfile"
         "   ON detRun.position = detProcessedImfile.det_id"
         "   AND detInputExp.exp_id = detProcessedImfile.exp_id"
-        " LEFT JOIN detNormalizedImfile"
+        " JOIN detNormalizedImfile"
         "   ON detRun.position = detNormalizedImfile.det_id"
         "   AND detRun.iteration = detNormalizedImfile.iteration"
@@ -2272,9 +2277,37 @@
         "   ON detRun.position = detResidImfile.det_id"
         "   AND detRun.iteration = detResidImfile.iteration"
+        "   AND detProcessedImfile.exp_id = detResidImfile.exp_id"
         "   AND detProcessedImfile.class_id = detResidImfile.class_id"
         " WHERE"
         "   detResidImfile.det_id IS NULL"  
         "   AND detResidImfile.iteration IS NULL"  
-        "   AnD detResidImfile.class_id IS NULL"  
+        "   AND detResidImfile.exp_id IS NULL"  
+        "   AND detResidImfile.class_id IS NULL"  
+        " UNION"
+        " SELECT" 
+        "   detRun.iteration,"
+        "   detProcessedImfile.*"
+        " FROM detRun"
+        " JOIN detInputExp"
+        "   ON detRun.position = detInputExp.det_id"
+        "   AND detRun.iteration = detInputExp.iteration"
+        " JOIN detProcessedImfile"
+        "   ON detRun.position = detProcessedImfile.det_id"
+        "   AND detInputExp.exp_id = detProcessedImfile.exp_id"
+        " JOIN detStackedImfile"
+        "   ON detRun.position = detStackedImfile.det_id"
+        "   AND detRun.iteration = detStackedImfile.iteration"
+        "   AND detProcessedImfile.class_id = detStackedImfile.class_id"
+        " LEFT JOIN detResidImfile"
+        "   ON detRun.position = detResidImfile.det_id"
+        "   AND detRun.iteration = detResidImfile.iteration"
+        "   AND detProcessedImfile.exp_id = detResidImfile.exp_id"
+        "   AND detStackedImfile.class_id = detResidImfile.class_id"
+        " WHERE"
+        "   detResidImfile.det_id IS NULL"  
+        "   AND detResidImfile.iteration IS NULL"  
+        "   AND detResidImfile.exp_id IS NULL"  
+        "   AND detResidImfile.class_id IS NULL"  
+        "   AND detStackedImfile.normalize = 0"
         ); 
 
@@ -2298,5 +2331,5 @@
     if (!output) {
         // XXX check psError here
-        psError(PS_ERR_UNKNOWN, false, "no pending rawDetrendExp rows found");
+        psError(PS_ERR_UNKNOWN, false, "no pending rows found");
         return false;
     }
@@ -2314,5 +2347,5 @@
 
     // negative simple so the default is true
-    if (!ippdbPrintMetadatas(stdout, output, "rawDetrendImfile", !simple)) {
+    if (!ippdbPrintMetadatas(stdout, output, "detProcessedImfile", !simple)) {
         psError(PS_ERR_UNKNOWN, false, "failed to print array");
         psFree(output);
