Index: branches/eam_branches/ipp-20140813/psModules/src/objects/Makefile.am
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/Makefile.am	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/Makefile.am	(revision 37351)
@@ -53,4 +53,5 @@
 	pmSourceIO_CMF_PS1_SV2.c \
 	pmSourceIO_CMF_PS1_SV3.c \
+	pmSourceIO_CMF_PS1_SV4.c \
 	pmSourceIO_CMF_PS1_DV1.c \
 	pmSourceIO_CMF_PS1_DV2.c \
@@ -157,5 +158,6 @@
 pmSourceIO_CMF_PS1_SV1.c \
 pmSourceIO_CMF_PS1_SV2.c \
-pmSourceIO_CMF_PS1_SV3.c
+pmSourceIO_CMF_PS1_SV3.c \
+pmSourceIO_CMF_PS1_SV4.c
 
 pmSourceIO_CMF_PS1_V1.c : pmSourceIO_CMF.c.in mksource.pl
@@ -195,3 +197,6 @@
 	mksource.pl pmSourceIO_CMF.c.in PS1_SV3 pmSourceIO_CMF_PS1_SV3.c
 
+pmSourceIO_CMF_PS1_SV4.c : pmSourceIO_CMF.c.in mksource.pl
+	mksource.pl pmSourceIO_CMF.c.in PS1_SV4 pmSourceIO_CMF_PS1_SV4.c
+
 # EXTRA_DIST = pmErrorCodes.h.in pmErrorCodes.dat pmErrorCodes.c.in
Index: branches/eam_branches/ipp-20140813/psModules/src/objects/mksource.pl
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/mksource.pl	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/mksource.pl	(revision 37351)
@@ -29,4 +29,5 @@
 		"PS1_SV2", 2,
 		"PS1_SV3", 3,
+		"PS1_SV4", 4,
     );
 
Index: branches/eam_branches/ipp-20140813/psModules/src/objects/pmSource.c
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/pmSource.c	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/pmSource.c	(revision 37351)
@@ -176,4 +176,7 @@
     source->parent = NULL;
     source->tmpPtr = NULL;
+    source->chipNum = -1;
+    source->chipX = -1000;
+    source->chipY = -1000;
     source->imageID = -1;
     source->nFrames = 0;
Index: branches/eam_branches/ipp-20140813/psModules/src/objects/pmSource.h
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/pmSource.h	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/pmSource.h	(revision 37351)
@@ -127,4 +127,7 @@
     pmSource *parent;			///< reference to the master source from which this is derived
     psPtr *tmpPtr;                      ///< pointer that may be used to store data in a particular module. e.g. psphotKronIterate.
+    short chipNum;                      ///< camera dependent of chip suppling pixels for fullforce source
+    short chipX;                        ///< chip space X coord of fullforce source
+    short chipY;                        ///< chip space Y coord of fullforce source
     int imageID;
     psU16 nFrames;
Index: branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO.c
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO.c	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO.c	(revision 37351)
@@ -602,4 +602,5 @@
 	    PM_SOURCES_WRITE("PS1_SV2",   CMF_PS1_SV2);
 	    PM_SOURCES_WRITE("PS1_SV3",   CMF_PS1_SV3);
+	    PM_SOURCES_WRITE("PS1_SV4",   CMF_PS1_SV4);
 	    PM_SOURCES_WRITE("PS1_DV1",   CMF_PS1_DV1);
 	    PM_SOURCES_WRITE("PS1_DV2",   CMF_PS1_DV2);
@@ -1124,4 +1125,5 @@
 	    PM_SOURCES_READ_PSF("PS1_SV2",   CMF_PS1_SV2);
 	    PM_SOURCES_READ_PSF("PS1_SV3",   CMF_PS1_SV3);
+	    PM_SOURCES_READ_PSF("PS1_SV4",   CMF_PS1_SV4);
 	    PM_SOURCES_READ_PSF("PS1_DV1",   CMF_PS1_DV1);
 	    PM_SOURCES_READ_PSF("PS1_DV2",   CMF_PS1_DV2);
@@ -1412,4 +1414,5 @@
 	PM_SOURCES_READ_XSRC("PS1_SV2",   CMF_PS1_SV2);
 	PM_SOURCES_READ_XSRC("PS1_SV3",   CMF_PS1_SV3);
+	PM_SOURCES_READ_XSRC("PS1_SV4",   CMF_PS1_SV4);
 	PM_SOURCES_READ_XSRC("PS1_DV1",   CMF_PS1_DV1);
 	PM_SOURCES_READ_XSRC("PS1_DV2",   CMF_PS1_DV2);
@@ -1454,4 +1457,5 @@
 	PM_SOURCES_READ_XFIT("PS1_SV2",   CMF_PS1_SV2);
 	PM_SOURCES_READ_XFIT("PS1_SV3",   CMF_PS1_SV3);
+	PM_SOURCES_READ_XFIT("PS1_SV4",   CMF_PS1_SV4);
 	PM_SOURCES_READ_XFIT("PS1_DV1",   CMF_PS1_DV1);
 	PM_SOURCES_READ_XFIT("PS1_DV2",   CMF_PS1_DV2);
@@ -1495,4 +1499,5 @@
 	PM_SOURCES_READ_XRAD("PS1_SV2",   CMF_PS1_SV2);
 	PM_SOURCES_READ_XRAD("PS1_SV3",   CMF_PS1_SV3);
+	PM_SOURCES_READ_XRAD("PS1_SV4",   CMF_PS1_SV4);
 	PM_SOURCES_READ_XRAD("PS1_DV1",   CMF_PS1_DV1);
 	PM_SOURCES_READ_XRAD("PS1_DV2",   CMF_PS1_DV2);
@@ -1536,4 +1541,5 @@
 	PM_SOURCES_READ_XGAL("PS1_SV2",   CMF_PS1_SV2);
 	PM_SOURCES_READ_XGAL("PS1_SV3",   CMF_PS1_SV3);
+	PM_SOURCES_READ_XGAL("PS1_SV4",   CMF_PS1_SV4);
 	PM_SOURCES_READ_XGAL("PS1_DV1",   CMF_PS1_DV1);
 	PM_SOURCES_READ_XGAL("PS1_DV2",   CMF_PS1_DV2);
Index: branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO.h
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO.h	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO.h	(revision 37351)
@@ -41,4 +41,5 @@
 MK_PROTO(CMF_PS1_SV2);
 MK_PROTO(CMF_PS1_SV3);
+MK_PROTO(CMF_PS1_SV4);
 MK_PROTO(CMF_PS1_DV1);
 MK_PROTO(CMF_PS1_DV2);
Index: branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO_CMF.c.in
===================================================================
--- branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 37260)
+++ branches/eam_branches/ipp-20140813/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 37351)
@@ -221,4 +221,12 @@
 	  @>PS1_V4@               psMetadataAdd (row, PS_LIST_TAIL, "LENS_E2_SH_PSF",   PS_DATA_F32, "shear polarizability element (objects)",     source->lensingPSF->shear->e2); 
 	}
+
+        // if lensing params exist also include the backmapped chipID and chip coordinates
+	if (source->lensingPSF && source->lensingPSF->shear) {
+            @>PS1_V4@               psMetadataAdd (row, PS_LIST_TAIL, "SRC_CHIP_NUM",   PS_DATA_S16, "id of warp input chip",     source->chipNum); 
+            @>PS1_V4@               psMetadataAdd (row, PS_LIST_TAIL, "SRC_CHIP_X",    PS_DATA_S16, "x coord in warp input chip",     source->chipX); 
+            @>PS1_V4@               psMetadataAdd (row, PS_LIST_TAIL, "SRC_CHIP_Y",    PS_DATA_S16, "y coord in warp input chip",     source->chipY); 
+            @>PS1_V4@               psMetadataAdd (row, PS_LIST_TAIL, "PADDING3",      PS_DATA_S16, "more padding", 0);
+        }
 
         @>PS1_V2,PS1_SV?,>PS1_DV1@ psMetadataAdd (row, PS_LIST_TAIL, "MOMENTS_R1",       PS_DATA_F32, "first radial moment",                        moments.Mrf);
@@ -907,5 +915,5 @@
     }
 
-    @>PS1_DV2@ pmChip *chip = readout->parent->parent;
+    @>PS1_DV2,>PS1_SV3@ pmChip *chip = readout->parent->parent;
 
     pmModelStatus badModel = PM_MODEL_STATUS_NONE;
@@ -966,12 +974,12 @@
 	    }
 
-	    @>PS1_DV2@ psSphere ptSky = {0.0, 0.0, 0.0, 0.0};
-	    @>PS1_DV2@ float posAngle = 0.0;
-	    @>PS1_DV2@ float pltScale = 0.0;
-	    @>PS1_DV2@ pmSourceLocalAstrometry (&ptSky, &posAngle, &pltScale, chip, xPos, yPos);
-	    @>PS1_DV2@ double raPos = ptSky.r*PS_DEG_RAD;
-	    @>PS1_DV2@ double decPos = ptSky.d*PS_DEG_RAD;
-	    @>PS1_DV2@ posAngle *= PS_DEG_RAD;
-	    @>PS1_DV2@ pltScale *= PS_DEG_RAD*3600.0;
+	    @>PS1_DV2,>PS1_SV3@ psSphere ptSky = {0.0, 0.0, 0.0, 0.0};
+	    @>PS1_DV2,>PS1_SV3@ float posAngle = 0.0;
+	    @>PS1_DV2,>PS1_SV3@ float pltScale = 0.0;
+	    @>PS1_DV2,>PS1_SV3@ pmSourceLocalAstrometry (&ptSky, &posAngle, &pltScale, chip, xPos, yPos);
+	    @>PS1_DV2,>PS1_SV3@ double raPos = ptSky.r*PS_DEG_RAD;
+	    @>PS1_DV2,>PS1_SV3@ double decPos = ptSky.d*PS_DEG_RAD;
+	    @>PS1_DV2,>PS1_SV3@ posAngle *= PS_DEG_RAD;
+	    @>PS1_DV2,>PS1_SV3@ pltScale *= PS_DEG_RAD*3600.0;
 
 	    float kronFlux = source->moments ? source->moments->KronFlux : NAN;
@@ -987,6 +995,6 @@
             psMetadataAddF32 (row, PS_LIST_TAIL, "X_EXT_SIG",        0, "Sigma in EXT x coordinate",                  xErr);
             psMetadataAddF32 (row, PS_LIST_TAIL, "Y_EXT_SIG",        0, "Sigma in EXT y coordinate",                  yErr);
-            @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "RA_EXT",           0, "EXT model ra coordinate",                    raPos);
-            @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "DEC_EXT",          0, "EXT model dec coordinate",                   decPos);
+            @>PS1_DV2,>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "RA_EXT",           0, "EXT model ra coordinate",                    raPos);
+            @>PS1_DV2,>PS1_SV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "DEC_EXT",          0, "EXT model dec coordinate",                   decPos);
 	    @>PS1_DV2@ float instFlux = isfinite(model->mag) ? pow(10.0, -0.4*model->mag) : NAN;
 	    @>PS1_DV2@ psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_FLUX",    0, "EXT fit instrumental counts",                instFlux);
