first part of columnar prototype (ATLASG-2853)
The columnar prototype is laid out in these two presentations:
- https://indico.cern.ch/event/1463263/contributions/6161076/attachments/2941910/5168958/Columnar-2024-10-07.pdf
- https://indico.cern.ch/event/1505092/contributions/6335590/attachments/3007720/5302122/Columnar-2025-02-03.pdf
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