Index: /trunk/ippScripts/scripts/addstar_run.pl
===================================================================
--- /trunk/ippScripts/scripts/addstar_run.pl	(revision 38089)
+++ /trunk/ippScripts/scripts/addstar_run.pl	(revision 38090)
@@ -102,4 +102,8 @@
 
 if ($stage =~/fullforce/) {
+    $reduction='DEFAULT';
+    #hardwired because why not
+}
+if ($stage =~/diff/) {
     $reduction='DEFAULT';
     #hardwired because why not
Index: /trunk/ippToPsps/config/tables.DO.vot
===================================================================
--- /trunk/ippToPsps/config/tables.DO.vot	(revision 38089)
+++ /trunk/ippToPsps/config/tables.DO.vot	(revision 38090)
@@ -21,7 +21,4 @@
 	<DESCRIPTION>Survey ID</DESCRIPTION>
       </FIELD>
-      <FIELD name="skyCellID" arraysize="1" datatype="float" unit="dimensionless" default="-999">
-        <DESCRIPTION>single float giving PrimaryCell.SkyCell identifier</DESCRIPTION>
-      </FIELD>
       <FIELD name="htmID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
         <DESCRIPTION>HTM index</DESCRIPTION>
@@ -30,5 +27,5 @@
         <DESCRIPTION>Zone index</DESCRIPTION>
       </FIELD>
-      <FIELD name="randomID" arraysize="1" datatype="long" unit="dimensionless" default="0">
+      <FIELD name="randomDiffObjID" arraysize="1" datatype="long" unit="dimensionless" default="0">
 	<DESCRIPTION>Random integer between 0 and 2^32 = 4,394,967,296</DESCRIPTION>
       </FIELD>
Index: /trunk/ippToPsps/config/tables.FO.vot
===================================================================
--- /trunk/ippToPsps/config/tables.FO.vot	(revision 38089)
+++ /trunk/ippToPsps/config/tables.FO.vot	(revision 38090)
@@ -15,4 +15,7 @@
         <DESCRIPTION>IPP object number</DESCRIPTION>
       </FIELD>
+      <FIELD name="randomForcedObjID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
+	<DESCRIPTION>random id</DESCRIPTION>
+      </FIELD>
       <FIELD name="nDetections" arraysize="1" datatype="short" unit="dimensionless" default="-999">
         <DESCRIPTION>total number of detection measurements in all filters</DESCRIPTION>
@@ -21,7 +24,4 @@
         <DESCRIPTION>batch id</DESCRIPTION>
       </FIELD>
-      <FIELD name="gStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="gnTotal" arraysize="1" datatype="short" unit="dimensionless" default="-999">
         <DESCRIPTION>number of detections in g filter</DESCRIPTION>
@@ -105,7 +105,4 @@
 	<DESCRIPTION>polarization, KSB-corrected 2Mxy / (Mxx + Myy)</DESCRIPTION>
       </FIELD>
-      <FIELD name="rStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="rnTotal" arraysize="1" datatype="short" unit="dimensionless" default="-999">
         <DESCRIPTION>number of detections in r filter</DESCRIPTION>
@@ -189,7 +186,4 @@
 	<DESCRIPTION>polarization, KSB-corrected 2Mxy / (Mxx + Myy)</DESCRIPTION>
       </FIELD>
-      <FIELD name="iStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="inTotal" arraysize="1" datatype="short" unit="dimensionless" default="-999">
         <DESCRIPTION>number of detections in i filter</DESCRIPTION>
@@ -273,7 +267,4 @@
 	<DESCRIPTION>polarization, KSB-corrected 2Mxy / (Mxx + Myy)</DESCRIPTION>
       </FIELD>
-      <FIELD name="zStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="znTotal" arraysize="1" datatype="short" unit="dimensionless" default="-999">
         <DESCRIPTION>number of detections in z filter</DESCRIPTION>
@@ -356,7 +347,4 @@
       <FIELD name="zE2" arraysize="1" datatype="float" unit="dimensionless" default="-999">
 	<DESCRIPTION>polarization, KSB-corrected 2Mxy / (Mxx + Myy)</DESCRIPTION>
-      </FIELD>
-      <FIELD name="yStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
       </FIELD>
       <FIELD name="ynTotal" arraysize="1" datatype="short" unit="dimensionless" default="-999">
@@ -457,4 +445,7 @@
         <DESCRIPTION>IPP object number</DESCRIPTION>
       </FIELD>
+      <FIELD name="randomForcedObjID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
+	<DESCRIPTION>random number</DESCRIPTION>
+      </FIELD>
       <FIELD name="nDetections" arraysize="1" datatype="short" unit="dimensionless" default="-999">
         <DESCRIPTION>total number of detection measurements in all filters</DESCRIPTION>
@@ -463,7 +454,4 @@
         <DESCRIPTION>batch id</DESCRIPTION>
       </FIELD>
-      <FIELD name="gStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="gLensObjSmearX11" arraysize="1" datatype="float" unit="arcsec^-2" default="-999">
 	<DESCRIPTION>per-object smear polarizability X11 term</DESCRIPTION>
@@ -526,7 +514,4 @@
 	<DESCRIPTION>psf model shear polarizability E2 term</DESCRIPTION>
       </FIELD>
-      <FIELD name="rStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="rLensObjSmearX11" arraysize="1" datatype="float" unit="arcsec^-2" default="-999">
 	<DESCRIPTION>per-object smear polarizability X11 term</DESCRIPTION>
@@ -589,7 +574,4 @@
 	<DESCRIPTION>psf model shear polarizability E2 term</DESCRIPTION>
       </FIELD>
-      <FIELD name="iStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="iLensObjSmearX11" arraysize="1" datatype="float" unit="arcsec^-2" default="-999">
         <DESCRIPTION>per-object smear polarizability X11 term</DESCRIPTION>
@@ -652,7 +634,4 @@
 	<DESCRIPTION>psf model shear polarizability E2 term</DESCRIPTION>
       </FIELD>
-      <FIELD name="zStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
-      </FIELD>
       <FIELD name="zLensObjSmearX11" arraysize="1" datatype="float" unit="arcsec^-2" default="-999">
 	<DESCRIPTION>per-object smear polarizability X11 term</DESCRIPTION>
@@ -714,7 +693,4 @@
       <FIELD name="zLensPSFShearE2" arraysize="1" datatype="float" unit="dimensionless" default="-999">
 	<DESCRIPTION>psf model shear polarizability E2 term</DESCRIPTION>
-      </FIELD>
-      <FIELD name="yStackID" arraysize="1" datatype="long" unit="dimensionless" default="NA">
-	<DESCRIPTION>stack image id (how to carry through IPP+DVO</DESCRIPTION>
       </FIELD>
       <FIELD name="yLensObjSmearX11" arraysize="1" datatype="float" unit="arcsec^-2" default="-999">
Index: /trunk/ippToPsps/jython/diffobjectbatch.py
===================================================================
--- /trunk/ippToPsps/jython/diffobjectbatch.py	(revision 38089)
+++ /trunk/ippToPsps/jython/diffobjectbatch.py	(revision 38090)
@@ -288,5 +288,5 @@
         sqlLine.group("ippObjID",        "OBJ_ID + (CAT_ID << 32)") # NOTE: shift by 32 bits exactly
         sqlLine.group("surveyID",        "'" + str(self.surveyID) + "'")
-        sqlLine.group("randomID",        "FLOOR(RAND("+str(self.batchID)+")*9223372036854775807)") # XXX where does this number come from??
+        sqlLine.group("randomDiffObjID",        "FLOOR(RAND("+str(self.batchID)+")*9223372036854775807)") # XXX where does this number come from??
         sqlLine.group("batchID",         "'" + str(self.batchID) + "'")
         sqlLine.group("dvoRegionID",     "CAT_ID") 
Index: /trunk/ippToPsps/jython/forcedobjectbatch.py
===================================================================
--- /trunk/ippToPsps/jython/forcedobjectbatch.py	(revision 38089)
+++ /trunk/ippToPsps/jython/forcedobjectbatch.py	(revision 38090)
@@ -328,4 +328,5 @@
         sqlLine.group("ippObjID",        "OBJ_ID + (CAT_ID << 32)") # NOTE: shift by 32 bits exactly
         sqlLine.group("batchID",         "'" + str(self.batchID) + "'")
+        sqlLine.group("randomForcedObjID",        "FLOOR(RAND("+str(self.batchID)+")*9223372036854775807)")
         sqlLine.group("nDetections",      "'0'")
         sql = sqlLine.makeRaw(") SELECT ", " FROM " + cptTableName)
@@ -354,12 +355,8 @@
         sqlLine.group("objID",           "objID")
         sqlLine.group("uniquePspsFOid","uniquePspsFOid")
+        sqlLine.group("randomForcedObjID","randomForcedObjID")
         sqlLine.group("ippObjID",        "ippObjID")
         sqlLine.group("batchID",         "batchID")
         sqlLine.group("nDetections",      "nDetections")
-        sqlLine.group("gStackID",      "gStackID")
-        sqlLine.group("rStackID",      "rStackID")
-        sqlLine.group("iStackID",      "iStackID")
-        sqlLine.group("zStackID",      "zStackID")
-        sqlLine.group("yStackID",      "yStackID")
 
         sql = sqlLine.makeRaw(") SELECT ", " FROM ForcedMeanObject")
Index: /trunk/ippToPsps/jython/gpc1db.py
===================================================================
--- /trunk/ippToPsps/jython/gpc1db.py	(revision 38089)
+++ /trunk/ippToPsps/jython/gpc1db.py	(revision 38090)
@@ -113,5 +113,5 @@
 
             stage = "diff"
-            sql = "SELECT DISTINCT stage_extra1, radeg,decdeg \
+            sql = "SELECT stage_id, avg(radeg),avg(decdeg) \
                    FROM addRun \
                    JOIN addProcessedExp using (add_id) \
@@ -140,11 +140,11 @@
                    AND radeg BETWEEN " + str(minRA) + " AND " + str(maxRA) + " \
                    AND dateobs >= '" + tstart + "'\
-                   AND dateobs <= '" + tend  + "'"
-
+                   AND dateobs <= '" + tend  + "'\
+                   GROUP BY stage_id"                   
 
         elif batchType == "FW":
             
             stage = "fullforce"
-            sql = "SELECT DISTINCT add_id, radeg, decdeg FROM fullForceInput \
+            sql = "SELECT stage_id, avg(radeg), avg(decdeg) FROM fullForceInput \
                    JOIN addRun ON(fullForceInput.ff_id = addRun.stage_id AND fullForceInput.warp_id = addRun.stage_extra1) \
                    JOIN minidvodbRun USING(minidvodb_name) \
@@ -167,5 +167,6 @@
                    AND radeg BETWEEN " + str(minRA) + " AND " + str(maxRA) + " \
                    AND mjd_obs >= (to_days('" + tstart + "')-678941) \
-                   AND mjd_obs <= (to_days('" + tend + "') - 678941) "
+                   AND mjd_obs <= (to_days('" + tend + "') - 678941) \
+                   GROUP BY stage_id"
 
         try:
Index: /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/DiffDetObject
===================================================================
--- /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/DiffDetObject	(revision 38089)
+++ /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/DiffDetObject	(revision 38090)
@@ -5,8 +5,7 @@
 ippObjID  	dimensionless 	BIGINT 	8 	NA 	IPP object number
 surveyID 	dimensionless 	TINYINT 1 	255 	Survey ID
-skyCellID       dimensionless   REAL    4       -999    single float giving PrimaryCell.SkyCell identifier
 htmID 		dimensionless 	BIGINT 	8 	NA 	HTM index
 zoneID 		dimensionless 	INT 	4 	NA 	Zone index
-randomID 	dimensionless 	BIGINT 	8 	0 	Random integer between 0 and 2^32 = 4,394,967,296 remaining ramdom integer 0  
+randomDiffObjID 	dimensionless 	BIGINT 	8 	0 	Random integer between 0 and 2^32 = 4,394,967,296 remaining ramdom integer 0  
 batchID 	dimensionless	BIGINT 	8 	-999 	
 dvoRegionID     dimensionless  	INT     4       -999    identifier to dvo spatial region
Index: /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/DiffDetObject.txt
===================================================================
--- /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/DiffDetObject.txt	(revision 38089)
+++ /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/DiffDetObject.txt	(revision 38090)
@@ -5,8 +5,7 @@
 ippObjID  	 = dvo:cpt.objID | cpt.catID <<32
 surveyID 	 = ipptopsps
-skyCellID        = smf header ?? how does this work for objects 
 htmID 		 = PSPS
 zoneID 		 = PSPS
-randomID 	 = ipptopsps
+randomDiffObjID 	 = ipptopsps
 batchID 	 = ipptopsps
 dvoRegionID      = dvo:cpt:catID 
Index: /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanLensing
===================================================================
--- /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanLensing	(revision 38089)
+++ /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanLensing	(revision 38090)
@@ -3,8 +3,8 @@
 uniquePspsFOid dimensionless BIGINT   8	  NA 	unique id supplied by ipptopsps
 ippObjID        dimensionless   BIGINT   8        NA    IPP object identifier
+randomForcedMeanObjID dimensionless BIGINT   8    NA    random number for this object  
 nDetections     dimensionless   SMALLINT 2      -999    total number of detection measurements in all filters
 batchID         dimensionless   BIGINT   8        NA    batch id 
 -----------------------------------------------------   replicate to bottom for each filter
-gStackID        dimensionless   INT      4              stack image id (how to carry through IPP + DVO)
 gLensObjSmearX11 arcsec^-2      REAL     4      -999    per-object smear polarizability X11 term
 gLensObjSmearX12 arcsec^-2      REAL     4      -999    per-object smear polarizability X12 term
Index: /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanLensing.txt
===================================================================
--- /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanLensing.txt	(revision 38089)
+++ /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanLensing.txt	(revision 38090)
@@ -3,8 +3,8 @@
 uniquePspsFOid   = ipptopsps
 ippObjID         = cpt.objID | cpt.catID << 32
+randomForcedObjID = ipptopsps
 nDetections      = sql sum of cps.NCODE (xnTotal)
 batchID          = ipptopsps
 ---------------- = 
-gStackID         = ipptopsps / gpc1 db
 gLensObjSmearX11 = cpy.X11_SM_OBJ
 gLensObjSmearX12 = cpy.X12_SM_OBJ
Index: /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanObject
===================================================================
--- /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanObject	(revision 38089)
+++ /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanObject	(revision 38090)
@@ -3,8 +3,8 @@
 uniquePspsFOid dimensionless BIGINT   8	  NA 	unique id supplied by ipptopsps
 ippObjID        dimensionless   BIGINT   8        NA    IPP object identifier
+randomForcedObjID dimensionless BIGINT   8        NA    random number generated by ipptopsps
 nDetections     dimensionless   SMALLINT 2      -999    total number of detection measurements in all filters
 batchID         dimensionless   BIGINT   8        NA    batch id 
 -----------------------------------------------------   replicate to bottom for each filter
-gStackID        dimensionless   INT      4              stack image id (how to carry through IPP + DVO)
 gnTotal         dimensionless   SMALLINT 2      -999    number of detections in g filter
 gnIncPSFFlux     dimensionless   SMALLINT 2      -999    number of detections included in robust psf mean in g filter 
Index: /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanObject.txt
===================================================================
--- /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanObject.txt	(revision 38089)
+++ /trunk/ippToPsps/pspsschema/SchemaNew20.0/PSPS_TABLES/Fundamental_IPP_Data_Product_Tables/ForcedMeanObject.txt	(revision 38090)
@@ -3,8 +3,8 @@
 uniquePspsFOid   = ipptopsps
 ippObjID         = cpt.objID | cpt.catID << 32
+randomForcedObjID = ipptopsps
 nDetections      = sql sum of cps.NCODE (xnTotal)
 batchID          = ipptopsps
 ---------------- = 
-gStackID         = ipptopsps / gpc1 db
 gnTotal          = cps.NWARP
 gnIncPSFFlux     = cps.NUSED_WRP
