Index: /trunk/ippTools/scripts/dettest.sh
===================================================================
--- /trunk/ippTools/scripts/dettest.sh	(revision 14270)
+++ /trunk/ippTools/scripts/dettest.sh	(revision 14271)
@@ -69,2 +69,10 @@
 
 dettool -updatedetrun -det_id $det_id -state stop || exit 1
+
+dettool -register_detrend -det_type bias -mode master -filelevel fpa -workdir file:/// -label foo || exit 1
+dettool -register_detrend_imfile -det_id 2 -class_id 1 -uri file:///foo || exit 1
+dettool -register_detrend_imfile -det_id 2 -class_id 2 -uri file:///foo || exit 1
+dettool -register_detrend_imfile -det_id 2 -class_id 3 -uri file:///foo || exit 1
+dettool -register_detrend_imfile -det_id 2 -class_id 4 -uri file:///foo || exit 1
+dettool -updatedetrun -det_id 2 -state stop || exit 1
+
Index: /trunk/ippTools/share/detselect_search.sql
===================================================================
--- /trunk/ippTools/share/detselect_search.sql	(revision 14270)
+++ /trunk/ippTools/share/detselect_search.sql	(revision 14271)
@@ -1,11 +1,28 @@
 SELECT DISTINCT
-    detRunSummary.det_id,
-    detRunSummary.iteration,
-    detRun.filelevel
-FROM detRun
-JOIN detRunSummary
-    USING(det_id)
-WHERE
-   detRun.state = 'stop'
-   AND detRun.mode  = 'master'
-   AND detRunSummary.accept = 1
+    det_id,
+    iteration,
+    filelevel
+FROM
+    (SELECT DISTINCT
+        detRun.det_id,
+        detRun.iteration,
+        detRun.filelevel,
+        detRun.registered
+    FROM detRun
+    JOIN detRunSummary
+        USING(det_id)
+    WHERE
+       detRun.state = 'stop'
+       AND detRun.mode  = 'master'
+       AND detRunSummary.accept = 1
+    UNION
+    SELECT DISTINCT
+        detRun.det_id,
+        detRun.iteration,
+        detRun.filelevel,
+        detRun.registered
+    FROM detRun
+    WHERE
+       detRun.state = 'stop'
+       AND detRun.mode  = 'register'
+    ) as Foo
Index: /trunk/ippTools/share/detselect_select.sql
===================================================================
--- /trunk/ippTools/share/detselect_select.sql	(revision 14270)
+++ /trunk/ippTools/share/detselect_select.sql	(revision 14271)
@@ -1,12 +1,25 @@
 SELECT DISTINCT
-    detNormalizedImfile.*
-FROM detNormalizedImfile
-JOIN detRun
-    USING(det_id)
-JOIN detRunSummary
-    ON detNormalizedImfile.det_id = detRunSummary.det_id
-    AND detNormalizedImfile.iteration = detRunSummary.iteration
-WHERE
-    detRun.state = 'stop'
-    AND detRun.mode  = 'master'
-    AND detRunSummary.accept = 1
+    *
+FROM
+    (SELECT DISTINCT
+        detNormalizedImfile.*
+    FROM detNormalizedImfile
+    JOIN detRun
+        USING(det_id)
+    JOIN detRunSummary
+        ON detNormalizedImfile.det_id = detRunSummary.det_id
+        AND detNormalizedImfile.iteration = detRunSummary.iteration
+    WHERE
+        detRun.state = 'stop'
+        AND detRun.mode  = 'master'
+        AND detRunSummary.accept = 1
+    UNION
+    SELECT DISTINCT
+        detRegisteredImfile.*
+    FROM detRegisteredImfile
+    JOIN detRun
+        USING(det_id)
+    WHERE
+        detRun.state = 'stop'
+        AND detRun.mode  = 'register'
+    ) as Foo
Index: /trunk/ippTools/src/detselect.c
===================================================================
--- /trunk/ippTools/src/detselect.c	(revision 14270)
+++ /trunk/ippTools/src/detselect.c	(revision 14271)
@@ -192,5 +192,5 @@
     // single detrend image which matches all criteria and has the latest 
     // insertion date
-    psStringAppend(&query, " ORDER BY detRun.registered DESC LIMIT 1");
+    psStringAppend(&query, " ORDER BY registered DESC LIMIT 1");
 
     if (!p_psDBRunQuery(config->dbh, query)) {
Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 14270)
+++ /trunk/ippTools/src/dettool.c	(revision 14271)
@@ -6572,16 +6572,4 @@
     }
 
-    // everything else is optional
-    psString mode = psMetadataLookupStr(&status, config->args, "-mode");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -mode");
-        return false;
-    }
-    // check mode
-    if (mode && !isValidMode(config, mode)) {
-        psError(PS_ERR_UNKNOWN, false, "invalud mode");
-        return false;
-    }
-
     psString camera = psMetadataLookupStr(&status, config->args, "-inst");
     if (!status) {
@@ -6743,22 +6731,4 @@
     }
 
-    psF64 bg = psMetadataLookupF64(&status, config->args, "-bg");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg");
-        return false;
-    }
-
-    psF64 bg_stdev = psMetadataLookupF64(&status, config->args, "-bg_stdev");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_stdev");
-        return false;
-    }
-
-    psF64 bg_mean_stdev = psMetadataLookupF64(&status, config->args, "-bg_mean_stdev");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_mean_stdev");
-        return false;
-    }
-
     psString parent = psMetadataLookupStr(&status, config->args, "-parent");
     if (!status) {
@@ -6779,9 +6749,9 @@
 
     if (!detRunInsert(config->dbh,
-                      0,          // det_id
-                      0,          // the iteration is fixed at 0
+                      0,            // det_id
+                      0,            // the iteration is fixed at 0
                       det_type,
-                      mode,
-                      "reg",      // state
+                      "register",   // mode
+                      "register",   // state
                       filelevel,
                       workdir,
@@ -6819,28 +6789,12 @@
     psFree(registered);
 
-    if (!detRunSummaryInsert(config->dbh,
-            psDBLastInsertID(config->dbh),
-            0,  // the iteration is fixed at 0
-            bg,
-            bg_stdev,
-            bg_mean_stdev,
-            true,   // accept
-            0       // fault code
-    )) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
-        // rollback
-        if (!psDBRollback(config->dbh)) {
-            psError(PS_ERR_UNKNOWN, false, "database error");
-        }
-        return false;
-    }
-
-    if (!psDBCommit(config->dbh)) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
-        return false;
-    }
-
     // print the new detRun
     psS64 det_id = psDBLastInsertID(config->dbh);
+
+    if (!psDBCommit(config->dbh)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+    }
+
     psArray *detRuns = NULL;
     {
@@ -7045,5 +6999,5 @@
             || (strncmp(state, "stop", 5) == 0)
             || (strncmp(state, "drop", 5) == 0)
-            || (strncmp(state, "reg", 4) == 0)
+            || (strncmp(state, "register", 4) == 0)
         )
     ) {
Index: /trunk/ippTools/src/dettoolConfig.c
===================================================================
--- /trunk/ippTools/src/dettoolConfig.c	(revision 14270)
+++ /trunk/ippTools/src/dettoolConfig.c	(revision 14271)
@@ -1001,12 +1001,8 @@
     psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-use_end",  0,
             "end of detrend run applicable peroid", NULL);
-    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-bg",  0,
-            "define exposure background", NAN);
-    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-bg_stdev",  0,
-            "define exposure background stdev", NAN);
-    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,
-            "define exposure background mean stdev", NAN);
     psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-parent",  0,
             "define parent det_id", NULL);
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label",  0,
+            "define detrun label", NULL);
     psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple",  0,
             "use the simple output format", false);
@@ -1026,4 +1022,14 @@
     psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,
             "define exposure background mean stdev", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_1",  0,
+            "define user statistic (1)", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_2",  0,
+            "define user statistic (2)", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_3",  0,
+            "define user statistic (3)", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_4",  0,
+            "define user statistic (4)", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-user_5",  0,
+            "define user statistic (5)", NAN);
     psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-path_base",  0,
             "define base output location", NULL);
