Index: trunk/ippTasks/Makefile.am
===================================================================
--- trunk/ippTasks/Makefile.am	(revision 19597)
+++ trunk/ippTasks/Makefile.am	(revision 19621)
@@ -28,4 +28,6 @@
 	simtest.basic.config \
 	simtest.basic.auto \
+	simtest.detverify.config \
+	simtest.detverify.auto \
 	simtest.flatcorr.config \
 	simtest.flatcorr.auto
Index: trunk/ippTasks/automate.pro
===================================================================
--- trunk/ippTasks/automate.pro	(revision 19597)
+++ trunk/ippTasks/automate.pro	(revision 19621)
@@ -264,4 +264,12 @@
       end
       book setword automate $pageName pantaskState INIT.LAUNCH
+
+      if ($Ncheck == 1) 
+        # XXX this is a somewhat hackish way to carry information from the 'check' to the 'launch'
+        book getword tmpCheck page.000 det_id -var DET_ID
+        book getword tmpCheck page.000 iteration -var ITERATION
+        book setword automate $pageName det_id $DET_ID
+        book setword automate $pageName iteration $ITERATION
+      end
     end
 
@@ -326,4 +334,19 @@
     end
 
+    # modify the launch command to replace certain elements from the page
+    book getword automate $pageName det_id -var DET_ID
+    if ("$DET_ID" != "NULL") 
+      echo '$launchCommand'
+      strsub "$launchCommand" @det_id@ $DET_ID -var launchCommand
+    end
+
+    book getword automate $pageName iteration -var ITERATION
+    if ("$ITERATION" != "NULL") 
+      echo '$launchCommand'
+      strsub "$launchCommand" @iteration@ $ITERATION -var launchCommand
+    end
+
+    echo '$launchCommand'
+
     book setword automate $pageName pantaskState RUN.LAUNCH
 
Index: trunk/ippTasks/detrend.resid.pro
===================================================================
--- trunk/ippTasks/detrend.resid.pro	(revision 19597)
+++ trunk/ippTasks/detrend.resid.pro	(revision 19621)
@@ -153,17 +153,19 @@
 
     book setword detPendingResidImfile $pageName pantaskState RUN
-    book getword detPendingResidImfile $pageName det_id    -var DET_ID   
-    book getword detPendingResidImfile $pageName exp_id    -var EXP_ID  
-    book getword detPendingResidImfile $pageName iteration -var ITERATION     
-    book getword detPendingResidImfile $pageName det_type  -var DET_TYPE 
-    book getword detPendingResidImfile $pageName mode      -var MODE     
-    book getword detPendingResidImfile $pageName exp_tag   -var EXP_TAG  
-    book getword detPendingResidImfile $pageName class_id  -var CLASS_ID 
-    book getword detPendingResidImfile $pageName uri       -var URI      
-    book getword detPendingResidImfile $pageName det_uri   -var DET_URI  
-    book getword detPendingResidImfile $pageName camera    -var CAMERA   
-    book getword detPendingResidImfile $pageName workdir   -var WORKDIR_TEMPLATE
-    book getword detPendingResidImfile $pageName dbname    -var DBNAME
-    book getword detPendingResidImfile $pageName reduction -var REDUCTION
+    book getword detPendingResidImfile $pageName det_id     -var DET_ID   
+    book getword detPendingResidImfile $pageName exp_id     -var EXP_ID  
+    book getword detPendingResidImfile $pageName iteration  -var ITERATION     
+    book getword detPendingResidImfile $pageName det_type   -var DET_TYPE 
+    book getword detPendingResidImfile $pageName mode       -var MODE     
+    book getword detPendingResidImfile $pageName exp_tag    -var EXP_TAG  
+    book getword detPendingResidImfile $pageName class_id   -var CLASS_ID 
+    book getword detPendingResidImfile $pageName uri        -var URI      
+    book getword detPendingResidImfile $pageName det_uri    -var DET_URI  
+    book getword detPendingResidImfile $pageName ref_det_id -var REF_DET_ID   
+    book getword detPendingResidImfile $pageName ref_iter   -var REF_ITER
+    book getword detPendingResidImfile $pageName camera     -var CAMERA   
+    book getword detPendingResidImfile $pageName workdir    -var WORKDIR_TEMPLATE
+    book getword detPendingResidImfile $pageName dbname     -var DBNAME
+    book getword detPendingResidImfile $pageName reduction  -var REDUCTION
 
     # specify choice of local or remote host based on camera and chip (class_id)
@@ -179,5 +181,5 @@
     stderr $LOGDIR/detrend.resid.imfile.log
 
-    $run = detrend_resid_imfile.pl --threads @MAX_THREADS@ --det_id $DET_ID --iteration $ITERATION --exp_id $EXP_ID --exp_tag $EXP_TAG --class_id $CLASS_ID --det_type $DET_TYPE --detrend $DET_URI --input_uri $URI --camera $CAMERA --mode $MODE --outroot $outroot --redirect-output --verbose
+    $run = detrend_resid_imfile.pl --threads @MAX_THREADS@ --det_id $DET_ID --iteration $ITERATION --ref_det_id $REF_DET_ID --ref_iter $REF_ITER --exp_id $EXP_ID --exp_tag $EXP_TAG --class_id $CLASS_ID --det_type $DET_TYPE --detrend $DET_URI --input_uri $URI --camera $CAMERA --mode $MODE --outroot $outroot --redirect-output --verbose
 
     if ("$REDUCTION" != "NULL")
Index: trunk/ippTasks/simtest.detverify.auto
===================================================================
--- trunk/ippTasks/simtest.detverify.auto	(revision 19621)
+++ trunk/ippTasks/simtest.detverify.auto	(revision 19621)
@@ -0,0 +1,78 @@
+
+automate MULTI
+
+# we run in the sequence BLOCK -> CHECK -> LAUNCH -> BLOCK -> CHECK
+# success on CHECK -> LAUNCH
+# failure on BLOCK -> CHECK
+
+automate METADATA
+  name       STR BIAS
+  check      STR "regtool -processedexp -exp_type BIAS -inst @CAMERA@ -dbname @DBNAME@"
+  ncheck     S32 20
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type BIAS -select_exp_type BIAS -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type BIAS -mode master -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR BIAS_VERIFY
+  check      STR "detselect -search -inst @CAMERA@ -det_type BIAS -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type BIAS -select_exp_type BIAS -mode verify -ref_det_id @det_id@ -ref_iter @iteration@ -dbname @DBNAME@" 
+  block      STR "dettool -runs -active -det_type BIAS -mode verify -dbname @DBNAME@"
+END
+ 
+automate METADATA
+  name       STR DARK
+  check      STR "detselect -search -inst @CAMERA@ -det_type BIAS -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type DARK -select_exp_type DARK -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type DARK -mode master -dbname @DBNAME@"
+END
+ 
+automate METADATA
+  name       STR DARK_VERIFY
+  check      STR "detselect -search -inst @CAMERA@ -det_type DARK -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type DARK -select_exp_type DARK -mode verify -ref_det_id @det_id@ -ref_iter @iteration@ -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type DARK -mode verify -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR SHUTTER
+  check      STR "detselect -search -inst @CAMERA@ -det_type DARK -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type SHUTTER -filter r -select_exp_type FLAT -select_filter r -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type SHUTTER -mode master -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR SHUTTER_VERIFY
+  check      STR "detselect -search -inst @CAMERA@ -det_type SHUTTER -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type SHUTTER -filter r -select_exp_type FLAT -select_filter r -mode verify -ref_det_id @det_id@ -ref_iter @iteration@ -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type FLAT -filter r -mode verify -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR FLAT-r
+  check      STR "detselect -search -inst @CAMERA@ -det_type SHUTTER -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type FLAT -filter r -select_exp_type FLAT -select_filter r -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type FLAT -filter r -mode master -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR FLAT-i
+  check      STR "detselect -search -inst @CAMERA@ -det_type SHUTTER -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type FLAT -filter i -select_exp_type FLAT -select_filter i -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type FLAT -filter i -mode master -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR FLAT_VERIFY-r
+  check      STR "detselect -search -inst @CAMERA@ -det_type FLAT -filter r -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type FLAT -filter r -select_exp_type FLAT -select_filter r -mode verify -ref_det_id @det_id@ -ref_iter @iteration@ -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type FLAT -filter r -mode verify -dbname @DBNAME@"
+END
+
+automate METADATA
+  name       STR FLAT_VERIFY-i
+  check      STR "detselect -search -inst @CAMERA@ -det_type FLAT -filter i -dbname @DBNAME@"
+  launch     STR "dettool -definebyquery -workdir file://@CWD@/detwork -inst @CAMERA@ -det_type FLAT -filter i -select_exp_type FLAT -select_filter i -mode verify -ref_det_id @det_id@ -ref_iter @iteration@ -dbname @DBNAME@"
+  block      STR "dettool -runs -active -det_type FLAT -filter i -mode verify -dbname @DBNAME@"
+END
+
Index: trunk/ippTasks/simtest.detverify.config
===================================================================
--- trunk/ippTasks/simtest.detverify.config	(revision 19621)
+++ trunk/ippTasks/simtest.detverify.config	(revision 19621)
@@ -0,0 +1,37 @@
+
+# define the simulated data to be generated
+SEQUENCE MULTI
+
+SEQUENCE METADATA
+  OBSTYPE    STR BIAS
+  CAMERA     STR SIMTEST
+  NIMAGES    S32  20
+END
+
+SEQUENCE METADATA
+  OBSTYPE    STR DARK
+  CAMERA     STR SIMTEST
+  @EXPTIMES  F32  30.0, 300.0
+  @NIMAGES   S32  10,   10
+END
+
+SEQUENCE METADATA
+  OBSTYPE    STR FLAT
+  CAMERA     STR SIMTEST
+
+  FILTERS    STR r,r,i
+  @EXPTIMES  F32 0.1,20.0,20.0
+
+  NSETUP     S32 5
+END
+
+SEQUENCE METADATA
+  OBSTYPE    STR FLAT
+  CAMERA     STR SIMTEST
+
+  FILTERS    STR r,r,r,r,r
+  @EXPTIMES  F32 0.5,1.0,2.0,5.0,10.0
+
+  NSETUP     S32 1
+END
+
Index: trunk/ippTasks/simtest.pro
===================================================================
--- trunk/ippTasks/simtest.pro	(revision 19597)
+++ trunk/ippTasks/simtest.pro	(revision 19621)
@@ -40,4 +40,9 @@
     echo "  SIMTEST_AUTO     : define the analysis steps to perform (simtest.auto)"
     echo "  SIMTEST_THREADS  : set the number of threads for the processing node (0)"
+    echo ""
+    echo "the following macros can be used to set up specific simtest suites:"
+    echo "  simtest.setup.basic : run standard simtest suite"
+    echo "  simtest.setup.detverify : run detrend creation and detrend verification"
+    echo "  simtest.setup.flatcorr : run a flat-field correction demonstration"
     break
   end
@@ -109,4 +114,16 @@
 # auto: simtest.basic.auto, simtest.flatcorr.auto
 
+macro simtest.setup.basic
+  $PPSIM_RECIPE = default
+  $SIMTEST_SEQUENCE = simtest.basic.config
+  $SIMTEST_AUTO = simtest.basic.auto
+end
+
+macro simtest.setup.detverify
+  $PPSIM_RECIPE = default
+  $SIMTEST_SEQUENCE = simtest.detverify.config
+  $SIMTEST_AUTO = simtest.detverify.auto
+end
+
 macro simtest.setup.flatcorr
   $PPSIM_RECIPE = FLATCORR
@@ -114,2 +131,3 @@
   $SIMTEST_AUTO = simtest.flatcorr.auto
 end
+
