[TriggerMenu] Improvements for checkL1TopoParams
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.