   int zval = threadIdx.z + blockIdx.z * blockDim.z;
   likelihood likelihooder = getObjects(myspherer, threadIdx.x, threadIdx.y, zval, blockIdx.x, blockIdx.y, lsum, psum, phc);
   float likelihood1 = -1e30f;
-//  if (likelihooder.factor  < 2e-5)
+  if (likelihooder.factor > 1e-17)
   {
   likelihood1 = thrust::reduce(thrust::seq,
 				   thrust::make_transform_iterator(thrust::make_counting_iterator(0), likelihooder),

    }
    else
	r2 = sqrt(r2);
    
    qx += x;
    qy += y;
    float gr = qx * qx + qy * qy;


    float factor = (/*0.01f + 0.99f **/ expf(- gr / (2 * sigmag * sigmag)));
    factor *= sinc(qx / sigma * 0.5) * sinc(qy / sigma * 0.5);
    //if (factor < 0.3f) factor = 0.3f;
    val.x = r2 * factor;



    cufftComplex val;
    val.y = 0.f;


    float r2 = r * r - qx * qx - qy * qy;
    if (r2 < 0.f)
