Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 28491)
+++ trunk/ippTools/share/Makefile.am	(revision 28536)
@@ -145,4 +145,5 @@
 	disttool_definebyquery_camera.sql \
 	disttool_definebyquery_chip.sql \
+	disttool_definebyquery_chip_bg.sql \
 	disttool_definebyquery_diff.sql \
 	disttool_definebyquery_fake.sql \
@@ -150,4 +151,5 @@
 	disttool_definebyquery_stack.sql \
 	disttool_definebyquery_warp.sql \
+	disttool_definebyquery_warp_bg.sql \
 	disttool_definebyquery_SSdiff.sql \
 	disttool_defineinterest.sql \
@@ -228,6 +230,8 @@
 	magicdstool_definebyquery_raw.sql \
 	magicdstool_definebyquery_chip.sql \
+	magicdstool_definebyquery_chip_bg.sql \
 	magicdstool_definebyquery_camera.sql \
 	magicdstool_definebyquery_warp.sql \
+	magicdstool_definebyquery_warp_bg.sql \
 	magicdstool_definebyquery_diff.sql \
 	magicdstool_definecopy_chip.sql \
Index: trunk/ippTools/share/disttool_definebyquery_chip_bg.sql
===================================================================
--- trunk/ippTools/share/disttool_definebyquery_chip_bg.sql	(revision 28536)
+++ trunk/ippTools/share/disttool_definebyquery_chip_bg.sql	(revision 28536)
@@ -0,0 +1,26 @@
+SELECT DISTINCT
+    'chip_bg' as stage,
+    chipBackgroundRun.chip_bg_id as stage_id,
+    chipBackgroundRun.magicked,
+    rawExp.exp_name as run_tag,
+    chipBackgroundRun.label,
+    chipBackgroundRun.data_group,
+    chipBackgroundRun.dist_group,
+    distTarget.target_id,
+    distTarget.clean
+FROM chipBackgroundRun
+JOIN chipRun USING(chip_id)
+JOIN rawExp USING(exp_id)
+JOIN distTarget
+    ON distTarget.stage = 'chip_bg'
+    AND chipBackgroundRun.dist_group = distTarget.dist_group
+    AND rawExp.filter = distTarget.filter
+JOIN rcInterest USING(target_id)
+LEFT JOIN distRun
+    ON distRun.stage_id = chipBackgroundRun.chip_bg_id
+    AND distRun.target_id = distTarget.target_id
+    -- JOIN hook %s
+WHERE distTarget.state = 'enabled'
+    AND rcInterest.state = 'enabled'
+    AND distRun.dist_id IS NULL      -- no existing distRun
+    AND ((chipBackgroundRun.state = 'full') OR (distTarget.clean AND chipBackgroundRun.state = 'cleaned'))
Index: trunk/ippTools/share/disttool_definebyquery_warp_bg.sql
===================================================================
--- trunk/ippTools/share/disttool_definebyquery_warp_bg.sql	(revision 28536)
+++ trunk/ippTools/share/disttool_definebyquery_warp_bg.sql	(revision 28536)
@@ -0,0 +1,30 @@
+SELECT DISTINCT
+    'warp_bg' as stage,
+    warpBackgroundRun.warp_bg_id AS stage_id,
+    warpBackgroundRun.magicked,
+    rawExp.exp_name as run_tag,
+    warpBackgroundRun.label,
+    warpBackgroundRun.data_group,
+    distTarget.dist_group,
+    distTarget.target_id,
+    distTarget.clean
+FROM warpBackgroundRun
+JOIN warpRun USING(warp_id)
+JOIN fakeRun USING(fake_id)
+JOIN camRun ON fakeRun.cam_id = camRun.cam_id
+JOIN chipRun USING(chip_id)
+JOIN rawExp USING(exp_id)
+JOIN distTarget
+    ON distTarget.stage = 'warp_bg'
+    AND warpBackgroundRun.dist_group = distTarget.dist_group
+    AND rawExp.filter = distTarget.filter
+JOIN rcInterest USING(target_id)
+LEFT JOIN distRun ON (distRun.stage_id = warp_bg_id)
+    AND distRun.target_id = distTarget.target_id
+WHERE  distTarget.state = 'enabled'
+    AND rcInterest.state = 'enabled'
+    AND distRun.dist_id IS NULL
+    AND ((warpBackgroundRun.state = 'full') OR (distTarget.clean AND warpBackgroundRun.state = 'cleaned'))
+
+
+
Index: trunk/ippTools/share/magicdstool_definebyquery_chip_bg.sql
===================================================================
--- trunk/ippTools/share/magicdstool_definebyquery_chip_bg.sql	(revision 28536)
+++ trunk/ippTools/share/magicdstool_definebyquery_chip_bg.sql	(revision 28536)
@@ -0,0 +1,33 @@
+SELECT DISTINCT       -- DISTINCT because we are going though diffInputSkyfile
+    magicRun.magic_id,
+    exp_id,
+    'chip_bg' AS stage,
+    chip_bg_id AS stage_id,
+    chipBackgroundRun.data_group,
+    camRun.cam_id,
+    magicRun.label,
+    magicRun.workdir,
+    CAST(NULL AS SIGNED) AS inv_magic_id,
+    CAST(NULL AS SIGNED) AS inv_exp_id
+FROM magicRun
+JOIN magicMask USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffInputSkyfile USING(diff_id)
+JOIN warpRun
+    ON (!magicRun.inverse AND warp1 = warp_id)
+    OR ( magicRun.inverse AND warp2 = warp_id)
+JOIN fakeRun USING(fake_id)
+JOIN camRun USING(cam_id)
+JOIN chipRun USING(chip_id, exp_id)
+JOIN chipBackgroundRun USING(chip_id)
+JOIN rawExp USING(exp_id)
+LEFT JOIN magicDSRun
+    ON magicRun.magic_id = magicDSRun.magic_id
+    AND magicDSRun.stage = 'chip_bg'
+WHERE magicRun.state = 'full'
+    AND ( -- rerun HOOK magicdstool sends "\n1 " if rerun else "\n0 " %s
+    OR magicDSRun.magic_ds_id IS NULL)
+    AND chipBackgroundRun.magicked = 0
+    AND chipBackgroundRun.state = 'full'
+    AND camRun.state = 'full'
+
Index: trunk/ippTools/share/magicdstool_definebyquery_warp_bg.sql
===================================================================
--- trunk/ippTools/share/magicdstool_definebyquery_warp_bg.sql	(revision 28536)
+++ trunk/ippTools/share/magicdstool_definebyquery_warp_bg.sql	(revision 28536)
@@ -0,0 +1,32 @@
+SELECT DISTINCT       -- DISTINCT because we are going though diffInputSkyfile
+    magicRun.magic_id,
+    exp_id,
+    'warp_bg' AS stage,
+    warp_bg_id AS stage_id,
+    warpBackgroundRun.data_group,
+    0 AS cam_id,
+    magicRun.label,
+    magicRun.workdir,
+    CAST(NULL AS SIGNED) AS inv_magic_id,
+    CAST(NULL AS SIGNED) AS inv_exp_id
+FROM magicRun
+JOIN magicMask USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffInputSkyfile USING(diff_id)
+JOIN warpRun
+    ON (!magicRun.inverse AND warp1 = warp_id)
+    OR ( magicRun.inverse AND warp2 = warp_id)
+JOIN warpBackgroundRun USING(warp_bg_id)
+JOIN fakeRun USING(fake_id)
+JOIN camRun USING(cam_id)
+JOIN chipRun USING(chip_id, exp_id)
+JOIN rawExp USING(exp_id)
+LEFT JOIN magicDSRun
+    ON magicRun.magic_id = magicDSRun.magic_id
+    AND magicDSRun.stage = 'warp_bg'
+WHERE magicRun.state = 'full'
+    AND ( -- rerun HOOK magicdstool sends "\n1 " if rerun else "\n0 " %s
+    OR magicDSRun.magic_ds_id IS NULL)
+    AND warpBackgroundRun.magicked  = 0
+    AND warpBackgroundRun.state = 'full'
+
