Ok, I am now convinced that all is in order. I admit I am in no position to review any of the C++ code, but it looks ok as far as I can tell. In order to prove to myself that the photoCalib is indeed persisting a fit equivalent to the the original meas_mosaic fcr fits, I used your CorrectionImageSource to display the persisted fcr fits using cameraGeom's showCamera (after a small correction to your class, see below). I also wrote a PhotoCalibImageSource class to similarly display the persisted photoCalib fit. Here they are side-by-side:
I matched the scales and blinked them to be sure they are effectively (i.e. within tolerance of ~E-6) identical. I also zoomed in on the rotated CCDs to be absolutely sure.
I've pushed a u/lauren/
DM-10728 branch to meas_mosaic with my changes and additions. I committed them as fixup's where appropriate so you should be able to rebase them out if you choose to include them. The only things you a required to use are:
You should probably also double-check my PhotoCalibImageSource if you choose to include it:
Oh, and as you are aware, I pushed a new tickets/
DM-10728 branch to obs_subaru (the dataset definition was in the wrong place: I moved it from exposures: to datasets:).
I have put a few other comments on the PR so, with the caveat that I have not scrutinized the C++ code, I consider this review complete.