BNMR and BNQR Experiments at TRIUMF
This is the main page of the documentation for the Data Acquisition System (DAQ) for the BetaNMR (BNMR) and BetaNQR (BNQR) experiments at TRIUMF
The Data Acquisition System is based on the MIDAS data acquisition package.
There are two separate beamlines, BNMR and BNQR, each with its own experimental setup :
- bnmr running on the BNMR high-voltage platform
- bnqr running on the BNQR high-voltage platform
Each experimental setup has its own #Hardware Components (i.e. a VME crate containing DAQ modules). Each runs as a separate MIDAS experiment named bnmr or bnqr. DAQ software specific to these experiments (MIDAS clients) run the experiments - see #Software Components. Experimenters control the experiment using the MIDAS Web Server (mhttpd).
The main TRIUMF EPICS Control System is used to control the beam, which can be switched to either experiment's beamline. There are two Beam Modes that the experiments can be run in:
- single channel mode
- where the beam is sent to one beamline (channel) only, either BNMR or BNQR. Only one of the DAQ systems bnmr or bnqr is active.
- dual channel mode
- where the beam is switched between the two beamlines (channels) BNMR and BNQR at regular intervals. Both DAQ systems bnmr and bnqr are active.
For both experiments, two types of environment are defined (cf MUSR experiments):
- Integral or TI (Type 1)
- Time Differential or TD (Type 2)
There are two separate concepts that use similar naming schemes (e.g. 1f, 20) - the timing of pulses issued by the PPG and the name of the overall experimental mode. The overall mode determines both which timing scheme is run, as well as which hardware is scanned during the run (e.g. RF frequency, Na cell voltage). Multiple experimental modes may use the same PPG timing scheme (e.g. modes 1c, 1d, 1e, 1n use the PPG timing scheme called 1n).
|Mode name||PPG timing||BNMR?||BNQR?||Comment|
|10||10||✓||✓||No RF, nothing scanned|
|1a||1a||✓||✓||Scan RF frequency|
|1b||1b||✓||✓||Scan RF frequency|
|1c||1n||✓||✓||Scan settings on a Camp device|
|1d||1n||✓||✓||Scan the laser intensity|
|1e||1n||✓||Scan the magnetic field strength|
|1f||1f||✓||✓||Scan RF frequency|
|1g||20||✓||✓||Scan RF frequency|
|1j||20||✓||✓||Scan settings on a Camp device|
|1n||1n||✓||✓||Scan the Rb cell voltage or any other EPICS device|
|1w||1w||✓||Parametric scan of RF frequencies|
|1x||1f||✓||✓||Scan RF frequency with one region at higher resolution|
|2a||2a||✓||✓||Scan RF frequency|
|2b||2b||✓||✓||Scan RF frequency|
|2d||1b||✓||✓||RF on, nothing scanned|
|2e||2e||✓||✓||Scan RF frequency|
|2f||2f||✓||✓||Scan RF frequency|
|2h||20||✓||Read alpha channels from scalers|
|2w||2w||✓||RF Wurst modulation|
Users change which mode is active using the webpages for each experiment, which in turn interact with the mode changer python script.
DAQ hardware components for each DAQ system (BNMR/BNQR) include the following VME modules:
|Module||Description||VME Base Address||BNMR?||BNQR?||Manual|
|SIS3801 version E||multichannel scaler A||0x2800||✓||SIS3801 manual (PDF)|
|SIS3801 version E||multichannel scaler B||0x1800||✓|
|SIS3820||multichannel scaler B||0x38000000||✓||SIS3820 manual (PDF)|
|PPG (Pulseblaster)||Pulse Programmer||0x8000||✓||✓||PPG manual (PDF) Spincore Pulseblaster (PDF)|
|PSM||Pol Synthesizer module (RF)||0x820000||✓||PSM|
|PSMII||Pol Synthesizer module II (RF)||0x820000|
|PSMIII||Pol Synthesizer module III(RF)||0x820000||✓|
|MVME162||68040 board (VxWorks) that runs CAMP||✓ (bnmrvw)||✓ (polvw)|
|VMIC||Linux machine in VME crate that runs frontend||✓ (lxbnmr)||✓ (lxbnqr)|
The connections between the DAQ VME Modules are shown in BNMR DAQ Hardware Connections.
The DAQ system is based on the MIDAS package. Data acquisition software to run the bnmr and bnqr experiments has been written to run under MIDAS. This includes the frontend, custom logger etc. This software is mostly common to both experiments, with the differences between each experiment handled by Midas ODB settings (most things) and a compile-time flag (choosing whether to build the febnmr or febnqr frontend).
The experiment is controlled using the MIDAS webserver (mhttpd). Due to the large number of experimental parameters required, Midas custom pages have been written for the experimenters to control and monitor their experiment.
The custom logger (mdarc/midbnmr) saves the data into MUSR MUD format files, and the MUSR CAMP slow control system is used for slow controls. Analysis is done by physica.
The DAQ software components are started by the script start-all and stopped by the script kill-all. These include standard MIDAS utilities (e.g. mhttpd, mlogger, mserver) as well as components specific to the bnmr and bnqr experiments.
The main DAQ software components specific to the bnmr and bnqr experiments are shown in the table below. A full ist can be found on the software overview page.
|febnmr_32bit.exe||lxbnmr||bnmr||the frontend sets up, reads out hardware modules, sends histograms.|
The frontend code for both experiments is identical.
|Midas clients - configuration|
|mode_changer.py||isdaq01||both||changes between experimental modes and between real/test runs|
|rf_calculator_fe.py||isdaq01||both||generates PPG program based on user-specified ODB parameters; reports calculated quantities in the ODB; sets up links in the ODB that should be stored in MUD files|
|ppg_compiler_fe.py||isdaq01||both||low-level conversion of PPG program to PPG bytecode|
|Midas clients - logging|
|bnxr_logger.exe||isdaq01||both||writes data to MUD files. Reads information from midas banks (for scaler histograms), EPICS, and CAMP|
|logger_cleanup.exe||isdaq01||both||cleans up and archives any saved run files that were not properly archived. Run by user occasionally as needed.|
|run_comment_editor.py||isdaq01||both||responds to comments written by user in text box on the status page, saving to disk and/or midas banks|
|autorun||isdaq01||both||automatic run controller|
|scripts||isdaq01||both||scripts perform important functions e.g. kill-all, start-all. Scripts run at the begin and end of each run send information to the elog etc.|
|camp||bnmrvw||bnmr||MUSR slow control system|
Click the links in the above table for more details of each program.
Note that the DAQ was rewritten in 2020. Details of the rewritten in 2020. Details of the differences between the new DAQ (documented here) and legacy DAQ (documentation removed) can be found on the 2020 rewrite page.
- The VMIC front end computer
- runs the frontend code which
- controls PSM,PPG, VMEIO, Scaler modules
- acquires data from SIS MCS (scaler) module(s), builds histograms
- uses channel access to control EPICS variable(s) (e.g. helicity)
- periodically sends the data out into the data buffer
- The host computer (isdaq01)
- runs all other software components which
- acquire the data from the data buffer
- log the data
- monitor the experiment
- start/stop runs
In this document, " bnmr or bnqr " may be written as " bn[mq]r "
For example, directories :
- /home/bnmr/online/bnmr spc and spc /home/bnqr/online/bnqr
are referred to by shortcuts such as
space /home/bn[nm]r/online/b[nm]r spc and spc ~/online/b[nm]r
Alternatively, these directories may be written as
where <experiment> <expt> and <beamline> are bnmr or bnqr.