Skip to content

RootStorageSvc+RootAuxDynIO: Restructure RNTuple writing

In the current implementation, RootAuxDynIO/RNTupleAuxDynWriter takes care of writing both generic data and xAOD specific data. This MR splits this into two:

  • RootStorageSvc/RNTupleWriterHelper is a concrete class that wraps around the vanilla RNTupleWriter and takes care of writing generic data,
  • RootAuxDynIO/RNTupleAuxDynWriter is simplified to the collection of xAOD specific data, which is later on pass to and written by the former.

The former doesn't implement an interface as I don't see much of a point to it at this point. The eventual goal is to revert the dependency structure such that RootAuxDynIO depends on RootStorageSvc and not vice versa (current approach). We can probably accomplish that by accessing the helper class (via an interface or other means) in RootAuxDynIO and filling in the data that should be written out. It should be relatively easy to do this w/ RNTuple but might be more tricky for TTree. That would require a major rethinking/rework, which is out of the scope of this MR.

Let's keep this as draft and discuss how we think about it. If people are generally happy, I can clean up/fine-tune things etc.

Merge request reports