first part of columnar prototype (ATLASG-2853)

The columnar prototype is laid out in these two presentations:

The full prototype can be found here: https://gitlab.cern.ch/atlas-asg/columnar-athena/-/tree/columnar/PhysicsAnalysis/Columnar

The branch also contains all tool conversions we have so far, including some partial tool conversions. This initial MR tries to have a minimal subset of the prototype:

  • ColumnarBase base class for tools
  • ColumnAccessor for accessing simple POD columns
  • ObjectColumn-ColumnAccessor for accessing objects from event store: this is needed for actual columnar tools in Array mode, as they can't otherwise implement the top-level function callEvents.
  • ColumnarExampleTools: a few example tools that show common variations of how CP tools access POD columns
  • ColumnarInterfaces: the interface for columnar tools in Array mode
  • ColumnarEventInfo: this contains the definition of EventInfo, as that is needed for some tests

Parts that were truncated/removed and will come in later MRs:

  • all of the actual CP tool migrations
  • the definitions and special accessors for all the xAOD types (beyond the definition for EventInfo)
  • all the other ColumnAccessor implementations, e.g. for ElementLink and vectors
  • ColumnInfo members only needed for those accessors
  • the software stack for using columnar tools in Array mode
  • any tests that rely on that software stack in Array mode
  • the python language bindings in array mode

Merge request reports

Loading