Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 28373)
+++ trunk/ippTools/share/Makefile.am	(revision 28375)
@@ -126,4 +126,6 @@
      difftool_skyfile.sql \
      difftool_todiffskyfile.sql \
+     difftool_tosummary.sql \
+     difftool_addsummary.sql \
      disttool_definebyquery_camera.sql \
      disttool_definebyquery_chip.sql \
@@ -278,4 +280,5 @@
      regtool_updatebyquery.sql \
      regtool_updatebyqueryimfile.sql \
+     stacktool_associationdefine_select.sql \
      stacktool_definebyquery_insert.sql \
      stacktool_definebyquery_insert_random_part1.sql \
@@ -293,5 +296,8 @@
      stacktool_revertsumskyfile_delete.sql \
      stacktool_sumskyfile.sql \
+     stacktool_sassskyfile.sql \
      stacktool_tosum.sql \
+     stacktool_tosummary.sql \
+     stacktool_addsummary.sql \
      staticskytool_definebyquery_select.sql \
      staticskytool_definebyquery_inputs.sql \
@@ -326,4 +332,6 @@
      warptool_updateskyfile.sql \
      warptool_warped.sql \
+     warptool_tosummary.sql \
+     warptool_addsummary.sql \
 	diffphottool_definerun.sql \
 	diffphottool_input.sql \
Index: trunk/ippTools/share/difftool_addsummary.sql
===================================================================
--- trunk/ippTools/share/difftool_addsummary.sql	(revision 28375)
+++ trunk/ippTools/share/difftool_addsummary.sql	(revision 28375)
@@ -0,0 +1,5 @@
+INSERT INTO diffSummary (diff_id,projection_cell,path_base) VALUES (
+       %lld,   -- warp_id
+       '%s',   -- projection_cell
+       '%s'    -- path_base
+      )
Index: trunk/ippTools/share/difftool_tosummary.sql
===================================================================
--- trunk/ippTools/share/difftool_tosummary.sql	(revision 28375)
+++ trunk/ippTools/share/difftool_tosummary.sql	(revision 28375)
@@ -0,0 +1,5 @@
+SELECT DISTINCT diff_id,"GPC1" as camera,diffRun.workdir,diffRun.tess_id,diffRun.diff_mode,diffRun.state
+       FROM diffRun 
+       LEFT JOIN diffSummary USING(diff_id)
+WHERE diffRun.state = 'full' AND 
+      diffSummary.projection_cell IS NULL 
Index: trunk/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_create_tables.sql	(revision 28373)
+++ trunk/ippTools/share/pxadmin_create_tables.sql	(revision 28375)
@@ -981,4 +981,13 @@
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
+CREATE TABLE warpSummary (
+       warp_id BIGINT,
+       projection_cell VARCHAR(64) NOT NULL,
+       path_base     VARCHAR(255) NOT NULL,
+       PRIMARY KEY(warp_id),
+       KEY(projection_cell),
+       FOREIGN KEY(warp_id) REFERENCES warpRun(warp_id)
+) ENGINE=innodb DEFAULT CHARSET=latin1;
+
 CREATE TABLE stackRun (
         stack_id BIGINT AUTO_INCREMENT,
@@ -1049,4 +1058,33 @@
         KEY(quality),
         FOREIGN KEY(stack_id) REFERENCES stackRun(stack_id)
+) ENGINE=innodb DEFAULT CHARSET=latin1;
+
+CREATE TABLE stackAssociation (
+    sass_id      BIGINT AUTO_INCREMENT,
+    data_group   VARCHAR(64) NOT NULL,
+    projection_cell VARCHAR(64) NOT NULL,
+    tess_id       VARCHAR(64) NOT NULL,
+    filter        VARCHAR(64) NOT NULL,
+    PRIMARY KEY(sass_id),
+    KEY(data_group),
+    KEY(projection_cell),
+    KEY(tess_id)
+) ENGINE=innodb DEFAULT CHARSET=latin1;
+
+CREATE TABLE stackAssociationMap (
+    sass_id      BIGINT,
+    stack_id     BIGINT,
+    PRIMARY KEY(sass_id, stack_id),
+    FOREIGN KEY(sass_id) REFERENCES stackAssociation(sass_id),
+    FOREIGN KEY(stack_id) REFERENCES stackRun(stack_id)
+) ENGINE=innodb DEFAULT CHARSET=latin1;
+
+CREATE TABLE stackSummary (
+    sass_id     BIGINT,
+    projection_cell VARCHAR(64) NOT NULL,
+    path_base   VARCHAR(255) NOT NULL,
+    PRIMARY KEY(sass_id),
+    KEY(projection_cell),
+    FOREIGN KEY(sass_id) REFERENCES stackAssociation(sass_id)
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
@@ -1147,4 +1185,13 @@
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
+CREATE TABLE diffSummary (
+    diff_id     BIGINT,
+    projection_cell VARCHAR(64) NOT NULL,
+    path_base   VARCHAR(255) NOT NULL,
+    PRIMARY KEY(diff_id),
+    KEY(projection_cell),
+    FOREIGN KEY(diff_id) REFERENCES diffRun(diff_id)
+) ENGINE=innodb DEFAULT CHARSET=latin1;
+
 CREATE TABLE magicRun (
         magic_id BIGINT AUTO_INCREMENT,
Index: trunk/ippTools/share/pxadmin_drop_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_drop_tables.sql	(revision 28373)
+++ trunk/ippTools/share/pxadmin_drop_tables.sql	(revision 28375)
@@ -41,10 +41,15 @@
 DROP TABLE IF EXISTS warpSkyfile;
 DROP TABLE IF EXISTS warpMask;
+DROP TABLE IF EXISTS warpSummary;
 DROP TABLE IF EXISTS diffRun;
 DROP TABLE IF EXISTS diffInputSkyfile;
 DROP TABLE IF EXISTS diffSkyfile;
+DROP TABLE IF EXISTS diffSummary;
 DROP TABLE IF EXISTS stackRun;
 DROP TABLE IF EXISTS stackInputSkyfile;
 DROP TABLE IF EXISTS stackSumSkyfile;
+DROP TABLE IF EXISTS stackSummary;
+DROP TABLE IF EXISTS stackAssociation;
+DROP TABLE IF EXISTS stackAssociationMap;
 DROP TABLE IF EXISTS magicRun;
 DROP TABLE IF EXISTS magicInputSkyfile;
Index: trunk/ippTools/share/stacktool_addsummary.sql
===================================================================
--- trunk/ippTools/share/stacktool_addsummary.sql	(revision 28375)
+++ trunk/ippTools/share/stacktool_addsummary.sql	(revision 28375)
@@ -0,0 +1,5 @@
+INSERT INTO stackSummary (sass_id,projection_cell,path_base) VALUES (
+       %lld,   -- warp_id
+       '%s',   -- projection_cell
+       '%s'    -- path_base
+)
Index: trunk/ippTools/share/stacktool_associationdefine_select.sql
===================================================================
--- trunk/ippTools/share/stacktool_associationdefine_select.sql	(revision 28375)
+++ trunk/ippTools/share/stacktool_associationdefine_select.sql	(revision 28375)
@@ -0,0 +1,19 @@
+SELECT 
+       sass_id,
+       data_group,
+       projection_cell,
+       tess_id,
+       filter
+       FROM stackAssociation
+RIGHT JOIN (
+      SELECT 
+      	     data_group,
+	     tess_id,
+	     filter,
+	     CASE WHEN LOCATE('.',skycell_id,9) > 0 THEN
+       	     	  SUBSTRING_INDEX(skycell_id,'.',2) ELSE
+	    	  SUBSTRING_INDEX(skycell_id,'.',1) END
+       	     AS projection_cell
+       FROM stackRun 
+       WHERE stackRun.stack_id = @STACK_ID@ 
+       	     ) AS RUN USING (data_group,tess_id,filter,projection_cell) LIMIT 1
Index: trunk/ippTools/share/stacktool_sassskyfile.sql
===================================================================
--- trunk/ippTools/share/stacktool_sassskyfile.sql	(revision 28375)
+++ trunk/ippTools/share/stacktool_sassskyfile.sql	(revision 28375)
@@ -0,0 +1,23 @@
+SELECT
+    stackAssociation.sass_id,
+    stackAssociation.projection_cell,
+    stackSumSkyfile.*,
+    stackRun.state,
+    stackRun.tess_id,
+    stackRun.skycell_id,
+    stackRun.filter,
+    stackRun.workdir,
+    stackRun.label,
+    (SELECT rawExp.camera FROM 
+        stackInputSkyfile 
+        JOIN warpRun USING(warp_id)
+        JOIN fakeRun ON warpRun.fake_id = fakeRun.fake_id
+        JOIN camRun ON camRun.cam_id = fakeRun.cam_id
+        JOIN chipRun ON camRun.chip_id  = chipRun.chip_id
+        JOIN rawExp ON chipRun.exp_id  = rawExp.exp_id
+        where stack_id = stackRun.stack_id limit 1
+    ) as camera
+FROM stackRun
+JOIN stackSumSkyfile USING(stack_id)
+JOIN stackAssociationMap USING(stack_id)
+JOIN stackAssociation USING(sass_id)
Index: trunk/ippTools/share/stacktool_tosummary.sql
===================================================================
--- trunk/ippTools/share/stacktool_tosummary.sql	(revision 28375)
+++ trunk/ippTools/share/stacktool_tosummary.sql	(revision 28375)
@@ -0,0 +1,13 @@
+SELECT DISTINCT sass_id,rawExp.camera,stackRun.workdir,stackRun.tess_id,stackRun.state
+       FROM stackRun
+       JOIN stackInputSkyfile ON stackRun.stack_id = stackInputSkyfile.stack_id
+       JOIN stackAssociationMap ON stackRun.stack_id = stackAssociationMap.stack_id
+       JOIN stackAssociation USING(sass_id)
+       JOIN warpRun USING(warp_id)
+       JOIN fakeRun USING(fake_id)
+       JOIN camRun USING(cam_id)
+       JOIN chipRun USING(chip_id)
+       JOIN rawExp USING(exp_id)
+       LEFT JOIN stackSummary USING(sass_id)
+WHERE stackRun.state = 'full' AND
+      stackSummary.projection_cell IS NULL
Index: trunk/ippTools/share/warptool_addsummary.sql
===================================================================
--- trunk/ippTools/share/warptool_addsummary.sql	(revision 28375)
+++ trunk/ippTools/share/warptool_addsummary.sql	(revision 28375)
@@ -0,0 +1,5 @@
+INSERT INTO warpSummary (warp_id,projection_cell,path_base) VALUES(
+       %lld,   -- warp_id
+       '%s',   -- projection_cell
+       '%s'    -- path_base
+)
Index: trunk/ippTools/share/warptool_tosummary.sql
===================================================================
--- trunk/ippTools/share/warptool_tosummary.sql	(revision 28375)
+++ trunk/ippTools/share/warptool_tosummary.sql	(revision 28375)
@@ -0,0 +1,7 @@
+SELECT DISTINCT warp_id,rawExp.camera,warpRun.workdir,warpRun.tess_id,rawExp.exp_tag,warpRun.state
+       FROM warpRun 
+       JOIN fakeRun USING(fake_id) JOIN camRun USING(cam_id)
+       JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)
+       LEFT JOIN warpSummary USING(warp_id)
+WHERE warpRun.state = 'full' AND 
+      warpSummary.projection_cell IS NULL 
