Skip to content

[TriggerMenu] Improvements for checkL1TopoParams

Jean Yves Beaucamp requested to merge jbeaucam/athena:23.0-L1-common-params into 23.0

This MR adds support for common parameters shared between multiple L1Topo algorithm instances of the same algorithm. For example, we can configure three instances of an algorithm with

configs = [(1,10),(2,20),(3,30)]
alg.addvariable('CommonParam', 10)
for bitid, config in enumerate(configs):
    alg.addvariable('ParamPerInstance1', config[0], bitid)
    alg.addvariable('ParamPerInstance2', config[1], bitid)

adding the following to L1TopoParams.py

'AlgoClassName': {'comment': '',
                  'common_parameters': ['CommonParam'],
                  'parameters': ['ParamPerInstance1', 'ParamPerInstance2']},

resulting in the following total parameters: ['CommonParam', 'ParamPerInstance1', 'ParamPerInstance2', 'ParamPerInstance1', 'ParamPerInstance2', 'ParamPerInstance1', 'ParamPerInstance2']

Support for multiple conditions is also added, allowing for algorithm parameter configurations like

'DisambiguationIncl2': {'ApplyDR = 1': {'comment': '',
                                        'parameters': ['MinET1',
                                                       'MinET2',
                                                       'DisambDRSqrMin',
                                                       'DisambDRSqrMax']},
                        'ClusterOnly = 0 and ApplyDR = 0': {'comment': '',
                                                            'parameters': ['MinET1',
                                                                           'MinET2',
                                                                           'DisambDRSqrMin']},
                        'ClusterOnly = 1 and ApplyDR = 0': {'comment': '',
                                                            'parameters': ['MinET1',
                                                                           'MinET2']}},

This (currently unused) entry is in the curent version of L1TopoParams.py (https://gitlab.cern.ch/atlas/athena/-/blob/23.0/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Menu/L1TopoParams.py#L77), but the conditional parsing wasn't implemented in the checkL1TopoParams method.

Edited by Jean Yves Beaucamp

Merge request reports