RFC-585 initially presented the the replacement of AmpInfoTable with cameraGeom.Amplifier. As part of this rework, implemented on DM-18610, all Camera, Detector, and Amplifier objects have been made immutable, with only `getXYZ()` accessors. To change the values of any of these objects, a Builder subclass is used to create a new object that implements the setXYZ() methods, which can then be finalized into a new immutable base object.
The accessors from the AmpInfoTable records have been copied over to the new Amplifier class, so in most cases, API changes are trivial. New accessors will be added in future tickets (DM-21274, DM-21275,
DM-21276, DM-21277) in an attempt to clean up the camera construction process (DM-21279, which will ensure the same code is used for camera construction whether the definitions are stored as FITS or yaml).
This ticket migrates all DM code that currently access or change cameraGeom objects to the new API, hopefully preventing any disruption. This has caused enough code churn that I'd like to get this (and
DM-18610) reviewed and merged before starting on tickets that will make use of this easier-to-use interface.