Config merging improvements
Description
This MR aims to improve upon the existing config/fragment structure of the tdd. Previously, a section of a given config could include a single file fragment, e.g.
#config.yaml
{
"file" : "path/to/a/fragment.json"
}
This is limited however. This MR allows us to instead do
#config.yaml
{
"file" : ["path/to/a/fragment1.json", "path/to/a/fragment2.json"]
}
A key example of how this can clean up configs significantly can be seen in the GN3_dev.json
config.
To really allow detailed merging to work, all configuration lists have now been converted to dictionaries. E.g, previously we could have two track collections like:
"tracks" : [
{
"output_name" : "tracks_ghost"
....
},
{
"output_name" : "tracks_dr"
....
},
]
This would now be
"tracks" : {
"tracks_ghost" : {...}
"tracks_dr" : {...}
}
Which allows us to more fully utilise the multi-config file merging.
The config merging is handled in athena, for now we ahve copied the relevent file to the tdd (FTagDumper/python/ConfigText.py
). There is an open athena MR (athena!82948) to introduce this, at which point we will remove the local implementation.
I have produced a couple of scripts used to do some automatic config conversion, found here. They aren't perfect but can get the job done with minor corrections after.
Review checklist:
-
CI Passing -
Comments addressed -
Source branch is up to date with target