first attempt at shared accessor code for columnar calo clusters (ATLASG-2853)
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
andsamplingData
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