Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 9815)
+++ /trunk/ippTools/src/dettool.c	(revision 9816)
@@ -64,4 +64,6 @@
 static bool updatedetrunMode(pxConfig *config);
 static bool rerunMode(pxConfig *config);
+static bool register_detrendMode(pxConfig *config);
+static bool register_detrend_imfileMode(pxConfig *config);
 
 static bool convertDetIdToStr(psArray *mds);
@@ -126,4 +128,6 @@
         MODECASE(DETTOOL_MODE_UPDATEDETRUN,     updatedetrunMode);
         MODECASE(DETTOOL_MODE_RERUN,            rerunMode);
+        MODECASE(DETTOOL_MODE_REGISTER_DETREND, register_detrendMode);
+        MODECASE(DETTOOL_MODE_REGISTER_DETREND_IMFILE, register_detrend_imfileMode);
         default:
             psAbort(argv[0], "invalid option (this should not happen)");
@@ -4610,4 +4614,16 @@
 }
 
+static bool register_detrendMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+    return true;
+}
+
+static bool register_detrend_imfileMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+    return true;
+}
+
 static psS32 incrementIteration(pxConfig *config, const char *det_id)
 {
Index: /trunk/ippTools/src/dettool.h
===================================================================
--- /trunk/ippTools/src/dettool.h	(revision 9815)
+++ /trunk/ippTools/src/dettool.h	(revision 9816)
@@ -58,5 +58,7 @@
     DETTOOL_MODE_ADDDETRUNSUMMARY,
     DETTOOL_MODE_UPDATEDETRUN,
-    DETTOOL_MODE_RERUN
+    DETTOOL_MODE_RERUN,
+    DETTOOL_MODE_REGISTER_DETREND,
+    DETTOOL_MODE_REGISTER_DETREND_IMFILE
 } dettoolMode;
 
Index: /trunk/ippTools/src/dettoolConfig.c
===================================================================
--- /trunk/ippTools/src/dettoolConfig.c	(revision 9815)
+++ /trunk/ippTools/src/dettoolConfig.c	(revision 9816)
@@ -519,4 +519,56 @@
         "include this exposure (multiple OK, required)", NULL);
 
+    // -register_detrend
+    psMetadata *register_detrendArgs = psMetadataAlloc();
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-det_type",  0,
+            "define the type of detrend run (required)", NULL);
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-exp_type",  0,
+        "define exposure type", NULL);
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-filter",  0,
+            "define filter ", NULL);
+    psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-airmass",  0,
+            "define airmass", NAN);
+    psMetadataAddF32(register_detrendArgs, PS_LIST_TAIL, "-exp_time",  0,
+            "define exposure time", NAN);
+    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-ccd_temp",  0,
+            "define ccd tempature", NAN);
+    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-posang",  0,
+            "define rotator position angle", NAN);
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-object",  0,
+            "define exposure object", NULL);
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-registered",  0,
+            "time detrend run was registered", now);
+    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-use_begin",  0,
+            "start of detrend run applicable peroid", NULL);
+    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 exposue background", NAN);
+    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-bg_stdev",  0,
+            "define exposue background stdev", NAN);
+    psMetadataAddF64(register_detrendArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,
+            "define exposue background mean stdev", NAN);
+    psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple",  0,
+            "use the simple output format", false);
+ 
+    // -register_detrend_imfile
+    psMetadata *register_detrend_imfileArgs = psMetadataAlloc();
+    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-det_id",  0,
+            "define detrend ID", NULL);
+    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-class_id",  0,
+            "search for class ID", NULL);
+    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-uri",  0,
+            "define resid file URI (required)", NULL);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg",  0,
+            "define exposue background", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,
+            "define exposue background stdev", NAN);
+    psMetadataAddF64(register_detrend_imfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,
+            "define exposue background mean stdev", NAN);
+    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-b1_uri",  0,
+            "define banana 1", NULL);
+    psMetadataAddStr(register_detrend_imfileArgs, PS_LIST_TAIL, "-b2_uri",  0,
+            "define banana 2", NULL);
+
     psFree(now);
 
@@ -575,4 +627,6 @@
     PXTOOL_MODE("-updatedetrun", DETTOOL_MODE_UPDATEDETRUN, updatedetrunArgs);
     PXTOOL_MODE("-rerun",           DETTOOL_MODE_RERUN,         rerunArgs);
+    PXTOOL_MODE("-register_detrend", DETTOOL_MODE_REGISTER_DETREND, register_detrendArgs);
+    PXTOOL_MODE("-register_detrend_imfile", DETTOOL_MODE_REGISTER_DETREND_IMFILE, register_detrend_imfileArgs);
 
     bool argErr = false;
