A robust and adaptive recovery-based discontinuous Galerkin method for the numerical solution of convection diffusion equations