Skip to content

Configure scdaq at runtime

We'd like to configure (at least) the machine-specific parts of scdaq at runtime. My current idea is that the configuration is sent by the scout FM at configure1 to scdaq, however I'm not certain if we should just send the entire configuration or only the machine-specific parts. When I set up the newly puppetized machine yesterday the values I needed to change were

processor_type
output_filename_prefix
nOrbitsPerFile # Though this doesn't qualify as machine-specific..

From my point the advantage of putting only the machine specific parts into the FM config is that it avoids some duplication, the disadvantage is that we wouldn't be versioning the non-specific parts. Maybe the optimal solution would be to have a section for the common scdaq configuration and then machine specific configurations, see as an example:

{
    "scdaqCommonConfig": "
input:fit/config/scdaq-calo.confedma

# Settings for Micron board only
loadBitFile:yes

# and so on...
",
    "scoutedSystems": [
        {
            "fedID": "1402",
            "scdaq": {
                "host": "scoutdaq-s1d12-34-01",
                "port": "8000",
            "settings": "
processor_type:GMT
output_filename_prefix:scout_GMT
"
            },
            "scone": { ... }
        },
        {
            "fedID": "1360",
            "scdaq": {
                "host": "scoutdaq-s1d12-39-01",
                "port": "8000",
            "settings": "
processor_type:CALO
output_filename_prefix:scout_CALO
"
            },
            "scone": { ... }
        }
    ]
}
  1. For clarification: the scoutFM has an auto-recover function, so "at configure" can also happen during a run if the FM determines that the machine is in a bad state.

Edited by Dinyar Rabady