I was able to successfully inject fake sources using processCcdWithFakes.py and insertFakes.py into both the calexp and coadds of the CI-HiTS2015 dataset. The test ccdVisit that I ran was ccdnum=56, visit=411371.
After running the ap_verify normally for this this ccdVisit, I created a set of uniformly spaced randoms at mag_g =21. I made them uniform so that they are easy to find by eye. There are two different difference image runs. In one we inject into the calexp only and difference against the regular coadd. In the other we inject the same sources into both the calexp and the coadd. The former is shown on the left while the later is shown on the right:
You can see the regular pattern of positive sources in the left hand image while they are missing on the right, having been mostly subtracted in the diff. Zooming on on the right hand image shows that there are residuals of the injected sources.
Finally, below is a plot of the DiaSources stored in the Apdb for three cases: a run with no fake injection (green), fakes injected into both (orange), fakes injected into the calexp only (blue). The points from the different samples are given different sizes to show when they overlap. The blue isolated blue points mostly show the injected point sources while the orange points mostly do not overlap with the injected points, having been mostly removed from in the difference.
Currently this work and inputs to ap_pipe are done by manually editing the DecamMapper.yaml file to point to either the real or fake injected calexps and additionally moving the files containing the coadds to point to the real and injected data. This could be scripted up in Gen2 to be more automated or possibly through another method I'm not aware of. Gen3 should make this process more reproducible and easier given the ability to configure the input and output datasets.