Why does the general form of an Hamiltonian of a qubit for a two level system have all real entries? I understand that Hamiltonian has to be hermitian. For a two level system, why does the general form of an Hamiltonian of a qubit have all real entries :
$$
\hat{H} = \frac{1}{2}\left( \begin{array}{cc} \epsilon & \delta \\ \delta & -\epsilon \end{array} \right)
$$
where $\epsilon$ as the offset between the potential energy and $\delta$ as the matrix element for tunneling between them.
Or equivalently in the following form why is there an absence of $\sigma_y$ term:
$$H=\frac{1}{2} \delta\sigma_x + \frac{1}{2}\epsilon\sigma_z \,.$$ 
 A: A Hamiltonian is only defined up to a unitary transformation.  
One can apply the unitary $U(\theta) = e^{i \sigma_z \theta /2}$ to the Hamiltonian you wrote to obtain:
$$
U\hat{H}U^\dagger = 
\frac{1}{2}\begin{bmatrix}
\epsilon & \delta e^{i\theta} \\
\delta e^{-i\theta} & -\epsilon
\end{bmatrix}
$$
So $\theta$ can always be chosen to make the matrix elements real.
A: In the time-independent case, you can think of the Hamiltonian as specified by a  constant 'magnetic field vector'
$$H \sim \mathbf{B} \cdot \boldsymbol{\sigma}.$$
By rotating your frame, you rotate the field, and hence change the coefficients of the $\sigma_i$. For example, you could rotate so that your $z$ axis is parallel to $\mathbf{B}$, so that the Hamiltonian becomes
$$H \sim \sigma_z.$$
This is equivalent to diagonalizing the Hamiltonian. 
However, in most applications, there's a special axis picked out (e.g. by an external field) conventionally called the $z$ axis, which we don't want to change. That means we're only allowed to do rotations in the $xy$ plane. In general, such a rotation can always set $B_y = 0$, giving the form
$$H \sim a \sigma_z + b \sigma_x$$
which is exactly what you have. 
