Index: trunk/ppTranslate/src/ppMopsDetections.c
===================================================================
--- trunk/ppTranslate/src/ppMopsDetections.c	(revision 28623)
+++ trunk/ppTranslate/src/ppMopsDetections.c	(revision 29556)
@@ -2,8 +2,6 @@
 #include <config.h>
 #endif
-
 #include <stdio.h>
 #include <pslib.h>
-
 #include "ppMops.h"
 
@@ -43,5 +41,31 @@
     psFree(det->nRatioMask);
     psFree(det->nRatioAll);
-
+    psFree(det->psfInstFlux);
+    psFree(det->psfInstFluxSig);
+    psFree(det->apMag);
+    psFree(det->apMagRadius);
+    psFree(det->apMagRaw);
+    psFree(det->apFlux);
+    psFree(det->apFluxSig);
+    psFree(det->peakFluxAsMag);
+    psFree(det->calPsfMag);
+    psFree(det->calPsfMagSig);
+    psFree(det->sky);
+    psFree(det->skySig);
+    psFree(det->qualityPerfect);
+    psFree(det->momentsR1);
+    psFree(det->momentsRH);
+    psFree(det->kronFlux);
+    psFree(det->kronFluxErr);
+    psFree(det->kronFluxInner);
+    psFree(det->kronFluxOuter);
+    psFree(det->diffRP);
+    psFree(det->diffSnP);
+    psFree(det->diffRM);
+    psFree(det->diffSnM);
+    psFree(det->flags2);
+    psFree(det->ippIdet);
+    psFree(det->nFrames);
+    psFree(det->padding);
     return;
 }
@@ -51,5 +75,4 @@
     ppMopsDetections *det = psAlloc(sizeof(ppMopsDetections)); // Detections, to return
     psMemSetDeallocator(det, (psFreeFunc)mopsDetectionsFree);
-
     det->raBoresight = NULL;
     det->decBoresight = NULL;
@@ -93,8 +116,33 @@
     det->nRatioMask = psVectorAllocEmpty(num, PS_TYPE_F32);
     det->nRatioAll = psVectorAllocEmpty(num, PS_TYPE_F32);
-
+    det->psfInstFlux = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->psfInstFluxSig = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->apMag = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->apMagRadius  = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->apMagRaw = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->apFlux = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->apFluxSig = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->peakFluxAsMag = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->calPsfMag = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->calPsfMagSig = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->sky = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->skySig = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->qualityPerfect = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->momentsR1 = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->momentsRH = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->kronFlux = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->kronFluxErr = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->kronFluxInner = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->kronFluxOuter = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->diffRP = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->diffSnP = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->diffRM = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->diffSnM = psVectorAllocEmpty(num, PS_TYPE_F32);
+    det->flags2 = psVectorAllocEmpty(num, PS_TYPE_U32);
+    det->ippIdet = psVectorAllocEmpty(num, PS_TYPE_U32);
+    det->nFrames = psVectorAllocEmpty(num, PS_TYPE_U16);
+    det->padding = psVectorAllocEmpty(num, PS_TYPE_S16);
     return det;
 }
-
 
 ppMopsDetections *ppMopsDetectionsRealloc(ppMopsDetections *det, long num)
@@ -130,8 +178,33 @@
     det->nRatioMask = psVectorRealloc(det->nRatioMask, num);
     det->nRatioAll = psVectorRealloc(det->nRatioAll, num);
-
+    det->psfInstFlux = psVectorRealloc(det->psfInstFlux, num);
+    det->psfInstFluxSig = psVectorRealloc(det->psfInstFluxSig, num);
+    det->apMag = psVectorRealloc(det->apMag, num);
+    det->apMagRadius = psVectorRealloc(det->apMagRadius, num);
+    det->apMagRaw = psVectorRealloc(det->apMagRadius, num);
+    det->apFlux = psVectorRealloc(det->apMagRadius, num);
+    det->apFluxSig = psVectorRealloc(det->apMagRadius, num);
+    det->peakFluxAsMag = psVectorRealloc(det->peakFluxAsMag, num);
+    det->calPsfMag = psVectorRealloc(det->calPsfMag, num);
+    det->calPsfMagSig = psVectorRealloc(det->calPsfMagSig, num);
+    det->sky = psVectorRealloc(det->sky, num);
+    det->skySig = psVectorRealloc(det->skySig, num);
+    det->qualityPerfect = psVectorRealloc(det->qualityPerfect, num);
+    det->momentsR1 = psVectorRealloc(det->momentsR1, num);
+    det->momentsRH = psVectorRealloc(det->momentsRH, num);
+    det->kronFlux = psVectorRealloc(det->kronFlux, num);
+    det->kronFluxErr = psVectorRealloc(det->kronFluxErr, num);
+    det->kronFluxInner = psVectorRealloc(det->kronFluxInner, num);
+    det->kronFluxOuter = psVectorRealloc(det->kronFluxOuter, num);
+    det->diffRP = psVectorRealloc(det->diffRP, num);
+    det->diffSnP = psVectorRealloc(det->diffSnP, num);
+    det->diffRM = psVectorRealloc(det->diffRM, num);
+    det->diffSnM = psVectorRealloc(det->diffSnM, num);
+    det->flags2 = psVectorRealloc(det->flags2, num);
+    det->ippIdet = psVectorRealloc(det->ippIdet, num);
+    det->nFrames = psVectorRealloc(det->nFrames, num);
+    det->padding = psVectorRealloc(det->padding, num);
     return det;
 }
-
 
 bool ppMopsDetectionsAdd(ppMopsDetections *det, float x, float y, double ra, double dec,
@@ -141,5 +214,13 @@
                          float xxMoment, float xyMoment, float yyMoment,
                          psU32 flags, psS64 diffSkyfileId, int naxis1, int naxis2,
-                         int nPos, float fPos, float nRatioBad, float nRatioMask, float nRatioAll)
+                         int nPos, float fPos, float nRatioBad, float nRatioMask, float nRatioAll,
+			 float psfInstFlux, float psfInstFluxSig,
+			 float apMag, float apMagRadius, float apMagRaw, float apFlux, float apFluxSig,
+			 float peakFluxAsMag, float calPsfMag, float calPsfMagSig,
+			 float sky, float skySig, float qualityPerfect,
+			 float momentsR1, float momentsRH,
+			 float kronFlux, float kronFluxErr, float kronFluxInner, float kronFluxOuter,
+			 float diffRP, float diffSnP, float diffRM, float diffSnM,
+			 psU32 flags2, psU32 ippIdet, psU16 nFrames, psS16 padding)
 {
     psVectorAppend(det->x, x);
@@ -173,8 +254,33 @@
     psVectorAppend(det->nRatioMask, nRatioMask);
     psVectorAppend(det->nRatioAll, nRatioAll);
-
+    psVectorAppend(det->psfInstFlux, psfInstFlux);
+    psVectorAppend(det->psfInstFluxSig, psfInstFluxSig);
+    psVectorAppend(det->apMag, apMag);
+    psVectorAppend(det->apMagRadius, apMagRadius);
+    psVectorAppend(det->apMagRaw, apMagRaw);
+    psVectorAppend(det->apFlux, apFlux);
+    psVectorAppend(det->apFluxSig, apFluxSig);
+    psVectorAppend(det->peakFluxAsMag, peakFluxAsMag);
+    psVectorAppend(det->calPsfMag, calPsfMag);
+    psVectorAppend(det->calPsfMagSig, calPsfMagSig);
+    psVectorAppend(det->sky, sky);
+    psVectorAppend(det->skySig, skySig);
+    psVectorAppend(det->qualityPerfect, qualityPerfect);
+    psVectorAppend(det->momentsR1, momentsR1);
+    psVectorAppend(det->momentsRH, momentsRH);
+    psVectorAppend(det->kronFlux, kronFlux);
+    psVectorAppend(det->kronFluxErr, kronFluxErr);
+    psVectorAppend(det->kronFluxInner, kronFluxInner);
+    psVectorAppend(det->kronFluxOuter, kronFluxOuter);
+    psVectorAppend(det->diffRP, diffRP);
+    psVectorAppend(det->diffSnP, diffSnP);
+    psVectorAppend(det->diffRM, diffRM);
+    psVectorAppend(det->diffSnM, diffSnM);
+    psVectorAppend(det->flags2, flags2);
+    psVectorAppend(det->ippIdet, ippIdet);
+    psVectorAppend(det->nFrames, nFrames);
+    psVectorAppend(det->padding, padding);
     return true;
 }
-
 
 bool ppMopsDetectionsCopySingle(ppMopsDetections *target, const ppMopsDetections *source, long index)
@@ -210,4 +316,31 @@
     psVectorAppend(target->nRatioMask, source->nRatioMask->data.F32[index]);
     psVectorAppend(target->nRatioAll, source->nRatioAll->data.F32[index]);
+    psVectorAppend(target->psfInstFlux, source->psfInstFlux->data.F32[index]);
+    psVectorAppend(target->psfInstFluxSig, source->psfInstFluxSig->data.F32[index]);
+    psVectorAppend(target->apMag, source->apMag->data.F32[index]);
+    psVectorAppend(target->apMagRadius, source->apMagRadius->data.F32[index]);
+    psVectorAppend(target->apMagRaw, source->apMagRaw->data.F32[index]);
+    psVectorAppend(target->apFlux, source->apFlux->data.F32[index]);
+    psVectorAppend(target->apFluxSig, source->apFluxSig->data.F32[index]);
+    psVectorAppend(target->peakFluxAsMag, source->peakFluxAsMag->data.F32[index]);
+    psVectorAppend(target->calPsfMag, source->calPsfMag->data.F32[index]);
+    psVectorAppend(target->calPsfMagSig, source->calPsfMagSig->data.F32[index]);
+    psVectorAppend(target->sky, source->sky->data.F32[index]);
+    psVectorAppend(target->skySig, source->skySig->data.F32[index]);
+    psVectorAppend(target->qualityPerfect, source->qualityPerfect->data.F32[index]);
+    psVectorAppend(target->momentsR1, source->momentsR1->data.F32[index]);
+    psVectorAppend(target->momentsRH, source->momentsRH->data.F32[index]);
+    psVectorAppend(target->kronFlux, source->kronFlux->data.F32[index]);
+    psVectorAppend(target->kronFluxErr, source->kronFluxErr->data.F32[index]);
+    psVectorAppend(target->kronFluxInner, source->kronFluxInner->data.F32[index]);
+    psVectorAppend(target->kronFluxOuter, source->kronFluxOuter->data.F32[index]);
+    psVectorAppend(target->diffRP, source->diffRP->data.F32[index]);
+    psVectorAppend(target->diffSnP, source->diffSnP->data.F32[index]);
+    psVectorAppend(target->diffRM, source->diffRM->data.F32[index]);
+    psVectorAppend(target->diffSnM, source->diffSnM->data.F32[index]);
+    psVectorAppend(target->flags2, source->flags2->data.U32[index]);
+    psVectorAppend(target->ippIdet, source->ippIdet->data.U32[index]);
+    psVectorAppend(target->nFrames, source->nFrames->data.U16[index]);
+    psVectorAppend(target->padding, source->padding->data.S16[index]);
 
     target->num++;
@@ -257,4 +390,31 @@
             det->nRatioMask->data.F32[num] = det->nRatioMask->data.F32[i];
             det->nRatioAll->data.F32[num] = det->nRatioAll->data.F32[i];
+            det->psfInstFlux->data.F32[num] = det->psfInstFlux->data.F32[i];
+            det->psfInstFluxSig->data.F32[num] = det->psfInstFluxSig->data.F32[i];
+            det->apMag->data.F32[num] = det->apMag->data.F32[i];
+            det->apMagRadius->data.F32[num] = det->apMagRadius->data.F32[i];
+            det->apMagRaw->data.F32[num] = det->apMagRaw->data.F32[i];
+            det->apFlux->data.F32[num] = det->apFlux->data.F32[i];
+            det->apFluxSig->data.F32[num] = det->apFluxSig->data.F32[i];
+            det->peakFluxAsMag->data.F32[num] = det->peakFluxAsMag->data.F32[i];
+            det->calPsfMag->data.F32[num] = det->calPsfMag->data.F32[i];
+            det->calPsfMagSig->data.F32[num] = det->calPsfMagSig->data.F32[i];
+            det->sky->data.F32[num] = det->sky->data.F32[i];
+            det->skySig->data.F32[num] = det->skySig->data.F32[i];
+            det->qualityPerfect->data.F32[num] = det->qualityPerfect->data.F32[i];
+            det->momentsR1->data.F32[num] = det->momentsR1->data.F32[i];
+            det->momentsRH->data.F32[num] = det->momentsRH->data.F32[i];
+	    det->kronFlux->data.F32[num] = det->kronFlux->data.F32[i];
+	    det->kronFluxErr->data.F32[num] = det->kronFluxErr->data.F32[i];
+	    det->kronFluxInner->data.F32[num] = det->kronFluxInner->data.F32[i];
+	    det->kronFluxOuter->data.F32[num] = det->kronFluxOuter->data.F32[i];
+	    det->diffRP->data.F32[num] = det->diffRP->data.F32[i];
+	    det->diffSnP->data.F32[num] = det->diffSnP->data.F32[i];
+	    det->diffRM->data.F32[num] = det->diffRM->data.F32[i];
+	    det->diffSnM->data.F32[num] = det->diffSnM->data.F32[i];
+	    det->flags2->data.U32[num] = det->flags2->data.U32[i];
+	    det->ippIdet->data.U32[num] = det->ippIdet->data.U32[i];
+	    det->nFrames->data.U16[num] = det->nFrames->data.U16[i];
+	    det->padding->data.S16[num] = det->padding->data.S16[i];
             num++;
         }
@@ -291,6 +451,31 @@
     det->nRatioMask->n = num;
     det->nRatioAll->n = num;
-
+    det->psfInstFlux->n = num;
+    det->psfInstFluxSig->n = num;
+    det->apMag->n = num;
+    det->apMagRadius->n = num;
+    det->apMagRaw->n = num;
+    det->apFlux->n = num;
+    det->apFluxSig->n = num;
+    det->peakFluxAsMag->n = num;
+    det->calPsfMag->n = num;
+    det->calPsfMagSig->n = num;
+    det->sky->n = num;
+    det->skySig->n = num;
+    det->qualityPerfect->n = num;
+    det->momentsR1->n = num;
+    det->momentsRH->n = num;
+    det->kronFlux->n = num;
+    det->kronFluxErr->n = num;
+    det->kronFluxInner->n = num;
+    det->kronFluxOuter->n = num;
+    det->diffRP->n = num;
+    det->diffSnP->n = num;
+    det->diffRM->n = num;
+    det->diffSnM->n = num;
+    det->flags2->n = num;
+    det->ippIdet->n = num;
+    det->nFrames->n = num;
+    det->padding->n = num;
     return true;
 }
-
