Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 38845)
+++ trunk/ippTools/share/Makefile.am	(revision 38846)
@@ -12,4 +12,6 @@
 	addtool_find_ff_id.sql \
 	addtool_find_ff_id_dvo.sql \
+	addtool_find_ffsummary_id.sql \
+	addtool_find_ffsummary_id_dvo.sql \
 	addtool_find_skycal_id_dvo.sql \
 	addtool_find_skycal_id.sql \
@@ -22,4 +24,5 @@
 	addtool_find_pendingexp_diff.sql \
 	addtool_find_pendingexp_ff.sql \
+	addtool_find_pendingexp_ff_summary.sql \
 	addtool_find_pendingexp_skycal.sql \
 	addtool_find_pendingexp_stack.sql \
@@ -29,4 +32,5 @@
 	addtool_find_processedexp_diff.sql \
 	addtool_find_processedexp_ff.sql \
+	addtool_find_processedexp_ff_summary.sql \
 	addtool_find_processedexp_skycal.sql \
 	addtool_find_processedexp_stack.sql \
@@ -39,4 +43,5 @@
 	addtool_queue_diff_id.sql \
 	addtool_queue_ff_id.sql \
+	addtool_queue_ffsummary_id.sql \
 	addtool_queue_stack_id.sql \
 	addtool_queue_sky_id_multi.sql \
@@ -47,4 +52,5 @@
 	addtool_revertprocessedexp_diff.sql \
 	addtool_revertprocessedexp_ff.sql \
+	addtool_revertprocessedexp_ffsummary.sql \
 	addtool_revertprocessedexp_skycal.sql \
 	addtool_revertprocessedexp_stack.sql \
Index: trunk/ippTools/share/addtool_find_ffsummary_id.sql
===================================================================
--- trunk/ippTools/share/addtool_find_ffsummary_id.sql	(revision 38846)
+++ trunk/ippTools/share/addtool_find_ffsummary_id.sql	(revision 38846)
@@ -0,0 +1,21 @@
+SELECT
+     fullForceRun.*
+FROM 
+     fullForceRun
+JOIN fullForceSummary using (ff_id)
+
+LEFT JOIN (SELECT ff_id       AS added_ff_id,
+                  addRun.dvodb AS previous_dvodb
+           FROM addRun
+JOIN fullForceRun on (ff_id = stage_id and addRun.stage = 'fullforce_summary')
+          ) as foo
+     ON ff_id = added_ff_id 
+     --AND stage = 'skycal'
+     -- hook for qualifying the join on the previous_dvodb
+     AND %s
+WHERE
+    fullForceRun.state = 'full'
+    AND fullForceSummary.quality = 0
+    AND fullForceSummary.fault = 0 
+    AND added_ff_id IS NULL
+    -- addtool adds checks on exposure being added to the dvodb previously
Index: trunk/ippTools/share/addtool_find_ffsummary_id_dvo.sql
===================================================================
--- trunk/ippTools/share/addtool_find_ffsummary_id_dvo.sql	(revision 38846)
+++ trunk/ippTools/share/addtool_find_ffsummary_id_dvo.sql	(revision 38846)
@@ -0,0 +1,10 @@
+SELECT fullForceRun.* FROM fullForceRun JOIN fullForceSummary using (ff_id)
+JOIN skycalRun using (skycal_id) join stackRun using (stack_id) 
+JOIN skycell using (skycell_id, tess_id)
+
+WHERE fullForceRun.state = 'full' and fullForceSummary.quality = 0 and fullForceSummary.fault = 0 
+    AND fullForceRun.ff_id NOT IN (SELECT fullForceRun.ff_id
+       FROM addRun
+       JOIN fullForceRun on (fullForceRun.ff_id = addRun.stage_id and addRun.stage = 'fullforce_summary') JOIN fullForceSummary on (fullForceRun.ff_id = fullForceSummary.ff_id)
+       WHERE addRun.stage = 'fullforce_summary' AND %s
+      )
Index: trunk/ippTools/share/addtool_find_pendingexp_ffsummary.sql
===================================================================
--- trunk/ippTools/share/addtool_find_pendingexp_ffsummary.sql	(revision 38846)
+++ trunk/ippTools/share/addtool_find_pendingexp_ffsummary.sql	(revision 38846)
@@ -0,0 +1,19 @@
+   SELECT
+    addRun.*,
+    fullForceSummary.path_base as stageroot,
+    'GPC1' as camera,
+    'PS1' as telescope
+FROM addRun
+JOIN fullForceSummary
+    ON (ff_id = stage_id and stage = "fullforce_summary")
+JOIN fullForceRun
+    using(ff_id)
+LEFT JOIN addProcessedExp using (add_id)
+LEFT JOIN addMask
+    ON addRun.label = addMask.label
+WHERE
+    fullForceRun.state = 'full'
+    AND ((addRun.state = 'new' AND addProcessedExp.add_id IS NULL) OR addRun.state = 'update')
+    AND addRun.dvodb IS NOT NULL
+    AND addRun.workdir IS NOT NULL
+    AND addMask.label IS NULL
Index: trunk/ippTools/share/addtool_find_processedexp_ffsummary.sql
===================================================================
--- trunk/ippTools/share/addtool_find_processedexp_ffsummary.sql	(revision 38846)
+++ trunk/ippTools/share/addtool_find_processedexp_ffsummary.sql	(revision 38846)
@@ -0,0 +1,6 @@
+SELECT
+    addProcessedExp.*,
+    addRun.workdir
+FROM addProcessedExp
+JOIN addRun
+    USING(add_id)
Index: trunk/ippTools/share/addtool_queue_ffsummary.sql
===================================================================
--- trunk/ippTools/share/addtool_queue_ffsummary.sql	(revision 38846)
+++ trunk/ippTools/share/addtool_queue_ffsummary.sql	(revision 38846)
@@ -0,0 +1,23 @@
+INSERT INTO addRun
+    SELECT
+        0,              -- add_id
+        'fullforce_summary',		-- stage
+        ff_id,         -- stage_id
+        0,	       -- stage_extra1
+        '%s',           -- state
+        '%s',           -- workdir
+	'%s',           -- workdir_state
+        '%s',           -- reduction
+        '%s',           -- label
+        '%s',           -- data_group
+        '%s',           -- dvodb 
+        '%s',           -- note
+	%d,		-- image_only
+	%d,		-- minidvodb
+	'%s',           -- minidvodb_group 
+ 	'%s'	        -- minidvodb_name
+    FROM fullForceRun
+    WHERE
+        fullForceRun.state = 'full'
+        AND fullForceRun.ff_id = %lld
+
Index: trunk/ippTools/share/addtool_revertprocessedexp_ffsummary.sql
===================================================================
--- trunk/ippTools/share/addtool_revertprocessedexp_ffsummary.sql	(revision 38846)
+++ trunk/ippTools/share/addtool_revertprocessedexp_ffsummary.sql	(revision 38846)
@@ -0,0 +1,7 @@
+DELETE FROM addProcessedExp
+USING addProcessedExp, addRun
+WHERE
+    addRun.add_id = addProcessedExp.add_id
+    AND addProcessedExp.fault != 0
+    AND addRun.state = 'new'
+    AND addRun.stage = 'fullforce_summary'
