Disperson relationship across a bandgap

From Optical Imaging and Spectroscopy (Wiley - OSA 2009)
By David J. Brady
www.opticalimaging.org
Figure 4.24

K=2 Sin[Pi/6];
b=.01;
hmf=8b/K^2;
mScale=31;
a[kz_]:=1-kz^2;
bmf[kz_]:=4(a[kz]+b)/K^2;
H0off[kz_]:=(xH=Transpose[Join[{Table[0,{mScale+1}]},Transpose[Join[
DiagonalMatrix[Table[hmf^2/(16 n^2+2 hmf-4bmf[kz]),{n,-(mScale-1)/2,(mScale-1)/2}]],{Table[0,{mScale}]}]]]];xH=xH+Transpose[xH]);
H0[kz_]:=N[Det[IdentityMatrix[mScale+1]+H0off[kz]]];

K=2 Sin[Pi/6];
b=.5 10^-1;
mScale=9;
a[kz_]:=1-kz^2;
Hoff[kz_]:=(xH=Transpose[Join[{Table[0,{mScale}]},Transpose[Join[
DiagonalMatrix[Table[b/2,{mScale-1}]],{Table[0,{mScale-1}]}]]]];xH=xH+Transpose[xH]);
H[kz_,q_]:=Det[DiagonalMatrix[Table[a[kz]-(q+ n K)^2 ,{n,-(mScale-1)/2,(mScale-1)/2}]]+Hoff[kz]];
qq[kz_]:=qq/.Solve[H[kz,qq]==0,qq];

aa=Plot[qq[kz][[11]],{kz,(Sqrt[1-((K^2)/4)])-0.09,(Sqrt[1-((K^2)/4)])},Frame->True,Axes->False]

bb=Plot[qq[kz][[10]],{kz,(Sqrt[1-((K^2)/4)]),(Sqrt[1-((K^2)/4)])+0.09},Frame->True,Axes->False]

cc=Plot[-Im[qq[kz][[10]]]+0.5,{kz,(Sqrt[1-((K^2)/4)])-0.015,(Sqrt[1-((K^2)/4)])+0.015},Frame->True,Axes->False,PlotRange->All,PlotStyle->{Dashing[{0.01`,0.01`}]}]

Show[aa,bb,cc,FrameLabel->{(Subscript[k, z]),q},PlotRange->All]