This README section features 2 GUIs: A LogCollecor
GUI and a main RunControl GUI
.
The RunControl GUI provides an graphical overview over the DAQ System, including all producers, dataCollectors, Monitors and LogCollectors (Components in the following) The GUI consists of three sections:
Shows the overall state of the DAQ. The component with the lowest state defines the system state. The possible states are
- ERROR: Something went wrong
- UNINIT: The startup state - Init required to continue
- UNCONF: Initialized but not yet configured
- CONF: Configured - ready to take data
- STOPPED: Data taking has been stopped and the system has not been reconfigured afterwards.
- RUNNING: Actively running
Buttons and line edits to control the DAQ. Inactive buttons are greyed out:
- Init file:ExampleFile
- Line edit for the currently set init file, which can be changed by simply entering the desired filename (NB: has to have the end
.ini
) - Load-Button: Opens Dialog to browse the system searching for a
*.ini
file, which is loaded to the line-edit - Init-Button: Distibutes the init command and file to all connected components
- Line edit for the currently set init file, which can be changed by simply entering the desired filename (NB: has to have the end
- Config File: ExampleFile
- Line edit for the currently set configuration file, which can be changed by simply entering the desired filename (NB: has to have the end
.conf
) - Load-Button: Opens Dialog to browse the system searching for a
*.conf
file, which is loaded to the line-edit - Config-Button: Distibutes the configure command and file to all connected components
- Line edit for the currently set configuration file, which can be changed by simply entering the desired filename (NB: has to have the end
- Next RunN: Can be set if the next run is not supposed to be the last number + 1
- Start-Button: Start data taking
- Stop-Button: Stop data taking
- Blue progress bar: Shows completion of the current scan - cannot be changed manually
- Scan File: ExampleFile Create a scan of any parameter, detailed description and examples can be found below
- Line edit for the currently set scan configuration file, which can be changed by simply entering the desired filename (NB: has to have the end
.scan
) - Load-Button: Opens Dialog to browse the system searching for a
*.scan
file, which is loaded to the line-edit - StartScan-Button: Starts the scan and allows for an interruption at any time.
- LogConfigs: If checked, the current configuration is copied to a file
called
config_run_RUNNUMBER.txt
and stored in current working directory or at the path given in the config, see below
- Line edit for the currently set scan configuration file, which can be changed by simply entering the desired filename (NB: has to have the end
All connected components are shown in a table located in the bottom part. For each component, the following information is displayed:
- type: Can be Producer, DataCollector, Monitor
- name: Registered Name
- state: Current state
- Connection: tcp:://IP:Port
- message: Last status message sent
- information: frequently updated detailed information about the component.
Right clicking on each component opens a dialog to set the component into a desired state
.
Note that most components can only go up one state per step.
No parameters required
- config_log_path: Path to which the configuration is copied at
runstart. Defaults to an empty string
- EUDAQ_CTRL_PRODUCER_LAST_START: Last producer that is started
- EUDAQ_CTRL_PRODUCER_FIRST_STOP: First producer that is stopped
Self explaining GUI to scroll through the logs.
Each *.scan
file needs a [global] section which defines the scan behavior. Any actual scan is defined in a numbered section [0..1000].
Scans sections with number above 1000/ below 0 are not considered.
A running example of a scan can be found here, including starting scripts and all required files.
The scans are executed according to their assigned number [i] is always executed before [i+1].
A scan can be defined to be nested
. If so, all previous configurations are repeated for each point in the other scan:
[0] from s1=2 to s1=3 (with default =2) and [1] from s2=8 to s2=10 (with default =8) will be in pairs (s1,s2)
nested = false: (2,8)->(3,8)->(2,9)->(2,10)
nested = true: (2,8)->(3,8)->(2,9)->(3,9)->(2,10)->(3,10)
The [global]- section has the following parameters:
configPrefix
: The prefix for all files: _SCANSTEP.scan is added automatically - Default:default
timeBasedScan
:1
if the scan should take a certain time at each point, else a number of events is taken at each step. Default:1
timePerStep
: Run-time ins
for each step, no default value and only required iftimeBasedScan == 1
nEventsPerStep
: Number of events per step, no default value and only required iftimeBasedScan != 1
allowNested
: If set to1
nested scans are allowed, overwrites sectionnested
argument. Default0
repeatScans
: Repeat the scan until the user interrupts if set to1
. Otherwise stop after finishing. Default:0
Each scan section [0..1000] requires the parameters:
parameter
: The parameter that should be scannedstart
: Start point of scanstop
: Stop point of scanstep
: Step size of scanname
: Name of the component containing the scanned parameterdefault
: Default value to be used in all scan section [i!=iScan]. Default:start
nested
: Repeat all scan sections with [i<iScan] for each step if set to1
, no effect otherwise. Default:0
eventCounter
: Required if [global.timeBasedScan!=1]. Defines the component that triggers the next step, if it has seen [gloabl.neventsPerStep] events.