The settings file reference¶
To return to the main DAQInterface wiki, click on Daqinterface instructions
The settings file contains parameters used when running DAQInterface that are rarely meant to be changed. DAQInterface reads it in when it's launched, and finds it via the DAQINTERFACE_SETTINGS environmental variable. The contents of the file typically looks something like the following (infile #comments excluded):
log_directory: /tmp data_directory_override: /tmp record_directory: $HOME/run_records package_hashes_to_save: [ artdaq-demo, artdaq-core-demo, artdaq ] productsdir_for_bash_scripts: /mu2e/ups boardreader timeout: 60 eventbuilder timeout: 30 datalogger timeout: 30 dispatcher timeout: 30 max_fragment_size_bytes: 1024000 advanced_memory_usage: false
You'll want to change many of these parameters when using DAQInterface to run an experiment's software (dune-artdaq, sbnd-artdaq, etc.). With that in mind, these parameters can be described as follows, starting with those whose presence in the file is required:
log_directoryrefers to the location on the filesystem where you want the artdaq logfiles produced when running your DAQ to be saved. "/tmp" is not a good location.
record_directoryrefers to the directory on your host where metadata, etc., about the runs you'll perform gets saved; this is referred to below as the "run records directory", and you'll need to create it.
productsdir_for_bash_scriptsrefers to the products/ directory where Bash scripts (e.g., send_transition.sh, which you've already used) will search for the xmlrpc_c package in order for them to send xmlrpc commands to artdaq processes; most likely this is either in the products/ directory local to the installation of the artdaq-based system you plan to use, or in some common products/ area on the host.
max_fragment_size_bytesdescribes the largest fragment produced by a boardreader which DAQInterface should expect to handle; if you know you'll have fragments larger than the default setting in your experiment, you'll want to increase its value. But see
advanced_memory_usage, below, and the memory management details section for complete info on how to get DAQInterface to manage memory buffer sizes. Hex values are supported but need to be prefaced with an "0x"; e.g., setting max_fragment_size_bytes to "0xfa000" is equivalent to setting it to "1024000".
There are also many optional parameters:
boardreader timeout, eventbuilder timeout, datalogger timeout and dispatcher timeoutThese are the optional process timeout parameters (as of DAQInterface v3_03_00, defaults are all at 30 seconds). One may wish to fine-tune these timeouts depending on an experiment's conditions. The parameters to add are called
aggregator timeout; the first two should be self-explanatory, the third refers to the timeout applied to both the DataLogger and Dispatcher. So, e.g., we could set timeouts like so (values supplied are just randomly chosen for the example):
boardreader timeout: 15 eventbuilder timeout: 40 aggregator timeout: 30
package_hashes_to_saverefers to the names of the packages installed in the srcs/ subdirectory set up during the MRB installation of the artdaq-based DAQ system whose git commit hashes you want saved in the run records directory for a given run. If the source repo isn't available, then the package version rather than the git commit hash will be saved instead.
data_directory_overrideIf it appears in the settings file then *.root files get saved to the directory specified by this parameter, rather than the directory specified by the fileName parameter of art's RootOutput module. If you set this, please make sure all experimenters are aware of this so they know where to look for *.root files after a run.
max_configurations_to_listThis only affects DAQInterface if its taking its configurations from an artdaq_database instance, rather than the local filesystem. As configuration databases for experiments can often get filled with hundreds or even thousands of configurations, setting this parameter to <N> ensures that only the <N> most recent configurations will be listed by the listconfigs.sh command.
disable_unique_rootfile_labelsBy default, if there are rootfiles output by multiple artdaq processes (EventBuilders + DataLoggers), then DAQInterface will insert a token of the form "_dl<N>" before the .root extension for DataLoggers (where <N> means the <N>th DataLogger) and similarly with _eb for EventBuilders. In this way, you can ensure that output files have unique names and can also tell you how many processes were writing out data for a given run. If you wish to disable this feature, set
disable_unique_rootfile_labelsto false. Be aware that if you choose this option, you don't want to write output files with the same name listed in the art module on the same host, otherwise you'll lose data
use_messageviewerBy default, if windowing is supported and artdaq_mfextensions is installed, a MessageViewer window will pop up during runs which will print out messages from the artdaq processes. If you wish to disable this feature, set
fake_messagefacilityWhen set to true, DAQInterface will format its print statements to appear like MessageFacility messages
boardreader_prioritiesFormatted as a set of regular expressions, e.g.:
boardreader_priorities: component01 component.*, this tells DAQInterface how to order the transitions it sends the BoardReader processes. In this example, in the case of "init" (during the config transition) and "start" (during the start transition), DAQInterface would first send the command for component01, wait for a successful response, and then send the commands in no particular order to the remaining components. During stop, the reverse is true; for terminate, the shutdown transition order doesn't matter, so the order is ignored in order to parallelize the sending of the shutdowns as much as possible. n.b. For DAQInterface v3_06_00 and prior versions, a bug exists where the first regular expression in the list gets skipped over; a workaround is to have "dummy" as the first regular expression, followed by regular expressions which actually match your boardreader labels
transfer_plugin_to_useThe name of the transfer plugin to use to send data between processes; defaults to "Autodetect". Only set this if you're sure you know what you're doing.
advanced_memory_usageDefaults to "false". If set to "true", max_fragment_size_bytes must not be set as both settings deal with the same thing in mutually exclusive ways: the size of fragments and events which can pass through the artdaq system.
advanced_memory_usageallows for more sophisticated fine-tuning of these sizes, and warrants its own section. Info is provided in the memory management details section .