AthenaServices + AthenaPoolExampleAlgorithms: Prepare ThinningCache for setting lossy float compression information
This MR builds on !35326 (merged). It extends Scott's recent updates on thinning (to accommodate per-stream variable selection in AthenaMT
) to use the same infrastructure for setting/getting the lossy float compression information.
The main idea here is to store the lossy float compression information (which is essentially a map that holds a set of AuxIDs
that should be compressed for each compression level) into the ThinningCache
as opposed to the EDM objects themselves. When fully implemented, AthenaOutputStream
is going to store the SG::CompressionInfo
into the event store. ThinningCacheTool
inserts this into a ThinningCache
and one can query the cache via ThinningInfo
. The latter is actually passed onto SG::copyAuxStoreThinned
where the thinning/selection/compression is applied.
This MR puts everything into place for filling the ThinningCache
for the lossy float compression information. However, it's not yet used (i.e. the last bit above), which will be implemented in an upcoming MR. Also, once we switch to this new method, we won't need the IAuxStoreCompression
that is implemented in AuxContainerBase
anymore. So, that bit will also be cleaned up.
This MR is self-consistent and it's already fairly hefty. So, in order to ease the review, I'm submitting this now and will complete the development in a future MR, which will also include the clean-up (but I might also break that bit down too).