The settings file reference

To return to the main DAQInterface wiki, click here

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:

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: $HOME/path_to_product_dir_not_yet_defined/products

boardreader timeout: 60
eventbuilder timeout: 30
aggregator timeout: 30

max_fragment_size_bytes: 1000000

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:
  • log_directory refers to the location on the filesystem where you want the artdaq logfiles produced when running your DAQ to be saved.
  • data_directory_override is an optional parameter; if 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.
  • record_directory refers 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.
  • package_hashes_to_save refers 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. Please note that if you're not using an MRB-installed artdaq-based DAQ system (e.g., if your artdaq-based DAQ system is just set up as a ups product) then you'll want to leave this list empty, as you won't have access to the git repos of the packages.
  • productsdir_for_bash_scripts refers to the products/ directory where Bash scripts will search for the xmlrpc_c package in order for them to send xmlrpc commands to artdaq processes and the root package in order for the bin/ script to be able to count the events saved to file in a run; 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_bytes effectively describes the largest event which can pass through the system; if you know you'll have events larger than its default setting in your experiment, you'll want to increase its value.

There are also the optional process timeout parameters. One may wish to fine-tune these timeouts depending on an experiment's conditions. The parameters to add are called boardreader timeout, eventbuilder timeout and 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