Skip to content

introduce Dual-Use Services for use in AnalysisBase

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

This is mostly based on what we do for tools, with some cleanups of things I would have done differently for tools in retrospect, plus all the changes required by services differently from tools. Two of the main changes:

  • I just assume that an AsgService has to be created via AsgServiceConfig, and designed the interfaces around that.
  • I do manage/hold all services via smart pointers. That means (among other things) that if two services were to reference each other, they ought to clear their ServiceHandle in finalize.

I should probably also add a createService() to DualUseConfig.py, but I'd need an instruction of how to configure services in Athena (yes, I know that's very basic, but I never had to do that). However, there are probably more things that need to be added/changed as we add actual services to AnalysisBase (which I haven't done yet). So this will likely not be the last merge requests on this topic. Though hopefully this is good enough that all future merge requests are centered around adding an actual service.

Anybody an opinion on sweeping this into 21.9 as well? I believe they are using some of our dual-use infrastructure.

Adding the usual suspects for comment: @tadej @jburr @akraszna @lheinric @alister

Edited by Nils Erik Krumnack

Merge request reports