         event_hash[ tid + 1 ] = 0;  // clear the event_hash
         __syncthreads();
 
-        unsigned int rand = curand_poisson( &states[blockIdx.x], rho / 256.0 );
+        unsigned int rand = curand_poisson( &states[blockIdx.x], rho );
         __syncthreads();
 
         for( i = 1; i < 32; i <<= 1 ) {

    __shared__ RealType rand_pool[ THREAD_NUM ];
    __shared__ unsigned int event_hash[ THREAD_NUM + 1];

    event_hash[tid] = 0;    // clear event_hash

#ifdef LOG_RANDOM_EVENTS

        }
        i += rand_offset;
        rand += rand_offset;
#else
        rand_pool[ tid ] = curand_uniform( &states[blockIdx.x] );
#endif  // USE_PARTIAL_RANDOM_POOL
        __syncthreads();

        RealType accum = 0.;
        while (i < rand) {
