Index: /branches/eam_branches/ipp-20130904/ppSim/src/ppSimSmoothReadout.c
===================================================================
--- /branches/eam_branches/ipp-20130904/ppSim/src/ppSimSmoothReadout.c	(revision 36292)
+++ /branches/eam_branches/ipp-20130904/ppSim/src/ppSimSmoothReadout.c	(revision 36293)
@@ -4,4 +4,5 @@
 {
     bool status;
+    psTimerStart ("ppSmooth");
 
     // XXX use these defaults?
@@ -10,14 +11,29 @@
     float sigma = psMetadataLookupF32(&status, recipe, "SEEING"); // Seeing SIGMA (pixels)
 
-    // bool oldThreads = psImageConvolveSetThreads(true); // Old value of threading in psImageConvolve
+    char *modelName = psMetadataLookupStr(&status, recipe, "PSF.MODEL"); // Seeing SIGMA (pixels)
+    if (!strcmp (modelName, "PS_MODEL_GAUSS")) {
+      // bool oldThreads = psImageConvolveSetThreads(true); // Old value of threading in psImageConvolve
+      // smooth the image in place, applying the mask as we go
+      psImageSmooth(input->image, sigma, nSigma);
+      psLogMsg("ppSmooth", PS_LOG_MINUTIA, "smooth image: %f sec\n", psTimerMark("ppSmooth"));
+      return true;
+    }
 
-    psTimerStart ("ppSmooth");
+    if (!strcmp (modelName, "PS_MODEL_PS1_V1")) {
+      // bool oldThreads = psImageConvolveSetThreads(true); // Old value of threading in psImageConvolve
+      // smooth the image in place, applying the mask as we go
+      psImageSmooth2dCacheData *smdata = psImageSmooth2dCacheAlloc(nSigma);
+      psImageSmooth2dCacheKernel_PS1_V1 (smdata, sigma, 1.0);
 
-    // smooth the image in place, applying the mask as we go
-    psImageSmooth(input->image, sigma, nSigma);
-    psLogMsg("ppSmooth", PS_LOG_MINUTIA, "smooth image: %f sec\n", psTimerMark("ppSmooth"));
+      psImageSmooth2dCache_F32 (input->image, smdata);
+
+      psFree (smdata);
+      psLogMsg("ppSmooth", PS_LOG_MINUTIA, "smooth image: %f sec\n", psTimerMark("ppSmooth"));
+      return true;
+    }
 
     // psImageConvolveSetThreads(oldThreads);
-    return true;
+    psLogMsg("ppSmooth", PS_LOG_MINUTIA, "failed to smooth image: %f sec\n", psTimerMark("ppSmooth"));
+    return false;
 }
 
