I assume you have coded up the characteristic function (CF) for Heston (being careful about complex logs as described in this forum and in a paper by Kahl and Jackel) and then you do the integration (ie Fourier inversion) as in Heston (1993), Lewis (2001), Sepp (2003) or Carr and Madan (1999). To include jumps, since the jumps are independent of everything else, all you need to do is multiply your Heston CF by the CF of the jumps. Lewis (2001) and Sepp (2003) give more details.The Lewis paper is on the web at :
http://www.optioncity.net/publications.htm or
http://www.optioncity.net/publications.htmThe Sepp paper is at:
http://math.ut.ee/~spartak/papers/stochjumpvols.pdfCarr and Madan is on Peter CarrÂ’s website at
www.petercarr.netThe jumps could be normally distributed or exponential or double exponential. When calibrating, (ie the fit to market option prices), try to constrain the intensity rate to be not too large and try to constrain the mean jump size to be not too small either. One thing that sometimes happens if you do not apply some sensible constraints is that the solver tries to generate parameters that have a high frequency (ie high intensity) of v. small jumps (whilst at the same time, the diffusion vol becomes improbably small)which is not the idea at all. Setting a max value (if your solver allows) of the intensity rate and a min value of the mean jump size should help.What is a good max and min might depend on the asset class and the asset vol and a reasonable guess or intuition at what the parameters might be.