Index: trunk/ippTools/share/magicdstool_completed_runs.sql
===================================================================
--- trunk/ippTools/share/magicdstool_completed_runs.sql	(revision 20763)
+++ trunk/ippTools/share/magicdstool_completed_runs.sql	(revision 20763)
@@ -0,0 +1,39 @@
+-- SELECT DISTINCT
+--     magic_ds_id
+-- FROM
+--    (
+    SELECT 
+--    magicDSRun.magic_ds_id,
+    magicDSImfile.*,
+    chip_id,
+    chipProcessedImfile.class_id as class_id
+    FROM magicDSRun
+    JOIN magicRun USING(magic_id)
+    JOIN magicInputSkyfile USING(magic_id)
+    JOIN diffRun USING(diff_id)
+    JOIN diffInputSkyfile
+        ON diffInputSkyfile.diff_id = diffRun.diff_id
+        AND diffInputSkyfile.skycell_id = diffRun.skycell_id
+        -- Want input warps only
+        AND diffInputSkyfile.warp_id IS NOT NULL
+        AND diffInputSkyfile.template = 0
+    JOIN warpRun USING(warp_id)
+    JOIN fakeRun USING(fake_id)
+    JOIN camRun USING(cam_id)
+    JOIN camProcessedExp USING(cam_id)
+    JOIN chipRun USING(chip_id)
+    JOIN chipProcessedImfile USING(chip_id)
+
+    LEFT JOIN magicDSImfile
+        ON magicDSImfile.magic_ds_id = magicDSRun.magic_ds_id
+        AND magicDSImfile.component = chipProcessedImfile.class_id
+    WHERE
+        magicDSRun.state = 'run'
+        AND magicDSRun.stage = 'chip'
+    GROUP BY
+        magicDSRun.magic_ds_id,
+        chipRun.chip_id
+    HAVING
+        COUNT(chipProcessedImfile.class_id) = COUNT(magicDSImfile.component)
+        AND SUM(magicDSImfile.fault) = 0
+--    ) as Foo
Index: trunk/ippTools/share/magicdstool_getskycells.sql
===================================================================
--- trunk/ippTools/share/magicdstool_getskycells.sql	(revision 20763)
+++ trunk/ippTools/share/magicdstool_getskycells.sql	(revision 20763)
@@ -0,0 +1,26 @@
+SELECT DISTINCT
+    diffSkyfile.diff_id,
+    diffRun.skycell_id,
+    diffSkyfile.uri,
+    diffSkyfile.path_base
+FROM magicDSRun
+JOIN magicRun USING(magic_id)
+JOIN magicInputSkyfile USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffSkyfile USING(diff_id)
+JOIN diffInputSkyfile
+    ON diffInputSkyfile.diff_id = diffRun.diff_id
+    AND diffInputSkyfile.skycell_id = diffRun.skycell_id
+    -- Want input warps only
+    AND diffInputSkyfile.warp_id IS NOT NULL
+    AND diffInputSkyfile.template = 0
+JOIN warpSkyCellMap
+    ON warpSkyCellMap.warp_id = diffInputSkyfile.warp_id
+    AND warpSkyCellMap.skycell_id = diffInputSkyfile.skycell_id
+JOIN warpSkyfile
+    ON warpSkyfile.warp_id = warpSkyCellMap.warp_id
+    AND warpSkyfile.skycell_id = warpSkyCellMap.skycell_id
+    AND warpSkyfile.ignored = 0
+WHERE
+    diffRun.state = 'full'
+    AND diffSkyfile.fault = 0
Index: trunk/ippTools/share/magicdstool_todestreak.sql
===================================================================
--- trunk/ippTools/share/magicdstool_todestreak.sql	(revision 20763)
+++ trunk/ippTools/share/magicdstool_todestreak.sql	(revision 20763)
@@ -0,0 +1,162 @@
+SELECT *
+FROM (
+SELECT DISTINCT
+    magicDSRun.magic_ds_id,
+    magicRun.magic_id,
+    magicRun.exp_id,
+    camera,
+    magicMask.uri as streaks_uri,
+    stage,
+    rawImfile.exp_id as stage_id,
+    class_id as component,
+    rawImfile.uri as uri,
+    NULL as path_base,
+    camProcessedExp.path_base as cam_path_base,
+    outroot,
+    recoveryroot,
+    re_place,
+    remove
+FROM magicDSRun
+JOIN magicMask USING (magic_id)
+JOIN magicRun USING (magic_id)
+JOIN magicInputSkyfile USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffInputSkyfile
+    ON diffInputSkyfile.diff_id = diffRun.diff_id
+    AND diffInputSkyfile.skycell_id = diffRun.skycell_id
+    -- Want input warps only AND diffInputSkyfile.warp_id IS NOT NULL
+    AND diffInputSkyfile.template = 0
+JOIN warpRun USING(warp_id)
+JOIN fakeRun USING(fake_id)
+JOIN camRun USING(cam_id)
+JOIN camProcessedExp USING(cam_id)
+JOIN rawImfile ON magicRun.exp_id = rawImfile.exp_id
+LEFT JOIN magicDSImfile
+    ON magicDSRun.magic_ds_id = magicDSImfile.magic_ds_id
+    AND magicDSImfile.component = rawImfile.class_id
+WHERE
+    magicDSRun.state = 'run'
+    AND magicDSRun.stage = 'raw'
+    AND magicDSImfile.component IS NULL
+UNION
+  -- chipProcesedImfiles
+SELECT DISTINCT
+    magicDSRun.magic_ds_id,
+    magicRun.magic_id,
+    magicRun.exp_id,
+    camera,
+    magicMask.uri as streaks_uri,
+    stage,
+    chip_id as stage_id,
+    class_id as component,
+    chipProcessedImfile.uri,
+    chipProcessedImfile.path_base,
+    camProcessedExp.path_base as cam_path_base,
+    outroot,
+    recoveryroot,
+    re_place,
+    remove
+FROM magicDSRun
+JOIN magicMask USING (magic_id)
+JOIN magicRun USING (magic_id)
+JOIN magicInputSkyfile USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffInputSkyfile
+    ON diffInputSkyfile.diff_id = diffRun.diff_id
+    AND diffInputSkyfile.skycell_id = diffRun.skycell_id
+    -- Want input warps only
+    AND diffInputSkyfile.warp_id IS NOT NULL
+    AND diffInputSkyfile.template = 0
+JOIN warpRun USING(warp_id)
+JOIN fakeRun USING(fake_id)
+JOIN camRun USING(cam_id)
+JOIN camProcessedExp USING(cam_id)
+JOIN chipRun USING(chip_id)
+JOIN chipProcessedImfile USING(chip_id)
+JOIN rawExp ON chipRun.exp_id = rawExp.exp_id
+LEFT JOIN magicDSImfile
+    ON magicDSRun.magic_ds_id = magicDSImfile.magic_ds_id
+    AND magicDSImfile.component = chipProcessedImfile.class_id
+WHERE
+    magicDSRun.state = 'run'
+    AND magicDSRun.stage = 'chip'
+    AND chipRun.state = 'full'
+    AND chipProcessedImfile.fault = 0
+    AND magicDSImfile.component IS NULL
+UNION
+-- warpSkyfiles
+SELECT DISTINCT
+    magicDSRun.magic_ds_id,
+    magicRun.magic_id,
+    magicRun.exp_id,
+    camera,
+    magicMask.uri as streaks_uri,
+    stage,
+    warp_id as stage_id,
+    warpSkyfile.skycell_id as component,
+    warpSkyfile.uri,
+    warpSkyfile.path_base,
+    NULL as cam_path_base,
+    outroot,
+    recoveryroot,
+    re_place,
+    remove
+FROM magicDSRun
+JOIN magicMask USING (magic_id)
+JOIN magicRun USING (magic_id)
+JOIN magicInputSkyfile USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffInputSkyfile
+    ON diffInputSkyfile.diff_id = diffRun.diff_id
+    AND diffInputSkyfile.skycell_id = diffRun.skycell_id
+    -- Want input warps only
+    AND diffInputSkyfile.warp_id IS NOT NULL
+    AND diffInputSkyfile.template = 0
+JOIN warpSkyfile using(warp_id)
+JOIN warpRun USING(warp_id)
+JOIN rawExp ON magicRun.exp_id = rawExp.exp_id
+LEFT JOIN magicDSImfile
+    ON magicDSRun.magic_ds_id = magicDSImfile.magic_ds_id
+    AND magicDSImfile.component = warpSkyfile.skycell_id
+WHERE
+    magicDSRun.state = 'run'
+    AND magicDSRun.stage = 'warp'
+    AND warpRun.state = 'full'
+    AND warpSkyfile.fault = 0
+    AND magicDSImfile.component IS NULL
+UNION
+-- diffSkyfiles
+SELECT DISTINCT
+    magicDSRun.magic_ds_id,
+    magicRun.magic_id,
+    magicRun.exp_id,
+    rawExp.camera,
+    magicMask.uri as streaks_uri,
+    stage,
+    diff_id as stage_id,
+    diffInputSkyfile.skycell_id as component,
+    diffSkyfile.uri,
+    diffSkyfile.path_base,
+    NULL as cam_path_base,
+    outroot,
+    recoveryroot,
+    re_place,
+    remove
+FROM rawExp
+JOIN magicRun USING (exp_id)
+JOIN magicMask USING (magic_id)
+JOIN magicDSRun USING(magic_id)
+JOIN magicInputSkyfile USING(magic_id)
+JOIN diffRun USING(diff_id)
+JOIN diffSkyfile USING(diff_id)
+JOIN diffInputSkyfile USING(diff_id)
+LEFT JOIN magicDSImfile
+    ON magicDSRun.magic_ds_id = magicDSImfile.magic_ds_id
+    AND magicDSImfile.component = diffInputSkyfile.skycell_id
+WHERE
+    magicDSRun.state = 'run'
+    AND magicDSRun.stage = 'diff'
+    AND diffRun.state = 'full'
+    AND diffSkyfile.fault = 0
+    AND magicDSImfile.component IS NULL
+) as Foo
