[AGIPD] Add support to correct only selected trains
Description
This MR adds support to the AGIPD notebook to restrict corrections to a specific set of trains. They may either be passed as an explicit list of IDs (index may also be possible later) or taken from a PPU (pulse picker) device present in the files (to support the HED use case of low latency processing).
An interesting situation arised while working on this in that all trains in a file may be invalid in the sense of not meant for corrections. While the code already had plenty of handling of which trains are valid and which are not, the code could not actually handle the case of empty files (no trains) or no valid trains at all. I've tried to support this situation with the minimum of changes.
Most of the train selection code should be significantly simpler once EXtra-data arrives for AGIPD. Also, preliminary tests suggest this code runs into problems earlier discovered by Thomas K and David D here and here, but this may not be a major problem.
How Has This Been Tested?
Tested on regular data without PPU device, but manual train selection. Tested on HED data with PPU device, but only single-train picking.
Types of changes
- Breaking change (fix or feature that would cause existing functionality to not work as expected)