Skip to content

first attempt at shared accessor code for columnar calo clusters (ATLASG-2853)

Nils Erik Krumnack requested to merge krumnack/athena:calo_accessors into main

This basically tries to move the relevant code from CaloCluster_v1 into helper functions that get all the cluster data needed passed in. In essence, to allow to share the code between the xAOD and columnar environments we will need to have some functions like this, but there is a range of possibilities how they could look like.

For now I converted energyBE and the functions it calls internally, to create a basis for discussions. I tried to copy-paste the code from the accessors into the helper functions, and then called them from the accessor functions. I didn't really try to clean them up, just moving code over.

I did discuss this with the relevant experts, and tried to incorporate all their comments. There were the following minor comments left:

  • Are people happy with the new namespace name, parameter passing, etc.?
  • Do we need public and private functions (and turn the namespace into a struct), or is calling it a detail namespace good enough?
  • Should the samplingPattern and samplingData be put into a struct instead? My feeling is it is a bit over the top (at least for now), and I want more of a clean example that I can repeat for other accessors in other places.
  • Should I just move all the 1-2 line accessors I converted to the header file now, so that they can be inlined?

This is now squarely in the realm of Core so I hope I can get some feedback from the relevant experts. As I wrote above, we need to move the relevant code into standalone functions that get all data passed in, but I'm fully flexible on any of the details. @akraszna @amete @ssnyder

Edited by Nils Erik Krumnack

Merge request reports

Loading