                         int*                         d_ring_counter,
                         int                          d_ring_counter_max,
                         cv::cuda::PtrStepSzInt2      d_ring_output,
-                        size_t param_windowSizeOnInnerEllipticSegment,
-                        float  param_averageVoteMin )
+                        const size_t param_windowSizeOnInnerEllipticSegment,
+                        const float  param_averageVoteMin )
 {
     Direction direction       = Left;
     Direction other_direction = Right;

    size_t    ct;
    float     angle_diff;

    __device__ RingBuffer( Direction dir, size_t size ) {
        assert( size < EDGE_LINKING_MAX_RING_BUFFER_SIZE );
        direction   = dir;
        max_size    = size;

            if (convexEdgeSegmentSize > param_windowSizeOnInnerEllipticSegment) {
                int write_index = atomicAdd( d_ring_counter, 1 );
                if( write_index <= d_ring_counter_max ) {
                    printf("From (%d,%d): %d (average vote %f) - accept, edge segment size %d\n", p->coord.x, p->coord.y, i, averageVote, convexEdgeSegmentSize );
                    buf.copy( d_ring_output, write_index );
                } else {
                    printf("From (%d,%d): %d (average vote %f) - skip, max number of arcs reached (%d)\n", p->coord.x, p->coord.y, i, averageVote, d_ring_counter_max );
