Skip to content

data handles for AnalysisBase

Nils Erik Krumnack requested to merge krumnack/athena:asg_data_handles into master

Note for merge reviewers: As outlined below this tries to closely follow the corresponding implementation in the StoreGate package and not everything is final yet either (more MRs to come). So please abstain from comments that make this deviate further from the StoreGate implementation, or that not all functionality is there yet.

After discussion with @ssnyder I varied from what we original discussed: The original plan was to incorporate the StoreGate and AthenaKernel packages into AnalysisBase. However, on closer examination, those packages are very tightly coupled with Gaudi, so no matter what we do, we would have a fair amount of conditional compilation. So the decision was that instead of incorporating fine-grained conditional compilation into the StoreGate package, we would go with a separate package and a single conditional per package.

So, this new package is mostly copying over and stripping down the corresponding files from the StoreGate package, replacing some of the core functions to work in AnalysisBase. I generally tried to stick with formatting and conventions of the original file. Some comments may no longer reflect 100% what the given function does, but since all code should be written to work in Athena as well as AnalysisBase users should anyways write their code so that it works in Athena, so them following those comments should be good practice regardless.

Most of what I took out relates to functionality that we don't support in AnalysBase, e.g. aliases, but also relates to some workflows that seem either outdated or something we don't really want in AnalysisBase, e.g. in AnalysisBase you will only be able to create a ReadHandle from a ReadHandleKey. Most of the code I didn't use I simply removed, but some is commented out, because it corresponds to functionality I still need to implement or details I want to improve.

There are a couple of things I still need to work on. Most obviously we want our tools to be able to read meta-data and I need to be able to parse the store names. Probably there will be more handle types needed as well. And the way I implement the AnalysisBase specific functionality could be improved as well. Still, as it is already good enough to be very helpful with the AnalysisBase migration. As such I hope we can merge it before all of that is addressed, and then I follow up with more MRs in the future (and possibly other people as well).

I also updated the muon packages to use this, which allowed to add them to AnalysisBase, but more importantly allowed me to test that this compiles.

cc @alister @lheinric @akraszna

Edited by Nils Erik Krumnack

Merge request reports