 public:
 	// constructor
 	PopulationPar(double rate, DataAugmentation<ChiType>& D, dim3& nB, dim3& nT) :
-		target_rate(rate), daug(D), nBlocks(nB), nThreads(nT)
+		target_rate(rate), Daug(D), nBlocks(nB), nThreads(nT)
 	{
 		h_theta.resize(dim_theta);
 		d_theta = h_theta;

		logdensity_pop<ChiType><<<nBlocks,nThreads>>>(p_theta, p_chi, p_logdens);
        CUDA_CHECK_RETURN(cudaDeviceSynchronize());

		// reset the number of MCMC iterations
		current_iter = 1;
		naccept = 0;

class Characteristic {
public:
	// constructor
	__device__ __host__ Characteristic(int iter, int id) : current_iter(iter), idata(id);
	__device__ __host__ virtual ~Characteristic() {}

	// set the state of the random number generator
	void SetState(curandState& localState) { state = localState; }

	// compute the conditional log-posterior density of the measurements given the characteristic
	__device__ __host__ virtual double logdensity_meas(double* chi, double* meas, double* meas_unc)
