Data acquisition framework for the Jungfrau detector using odin-data consisting of:
- EigerMetaWriter: A plugin for the odin-data meta_writer application
- EigerProcessPlugin: A plugin for the odin-data FrameProcessor
A VSCode devcontainer is provided for simpler local development. odin-data
is
pre-installed in /odin
and there are vscode settings to build jungfrau-detector
against
this. A virtual environment is available at /venv
and will be the default environment.
Follow the steps below to get started.
Commands starting with >
are vscode commands and can be run with F1
,
while commands starting with $
are bash commands to be run in a terminal (inside the
vscode devcontainer). Within the devcontainer cmake
will be available on the PATH, so
make sure vscode user settings have cmake.cmakePath
set to cmake
(the default).
-
Open the project in VSCode and re-open in devcontainer when prompted, or open manually with
> Dev Containers: Reopen in Container
-
Install the recommended extensions for the workspace (
> Extensions: Show Recommended Extensions
) -
Build jungfrau-detector
i.
> CMake: Delete Cache and Reconfigure
(select gcc version in dropdown. If not present, select scan for kits then reopen the > prompt and select the gcc version)ii.
> CMake: Install
-
Install the jungfrau-detector python package with dev dependencies and tickit simulator
i.
$ pip install -e './python[dev,sim]'
-
Run the dev deployment from the
deploy
directory with$ zellij -l layout.kdl
It is then possible to edit the python applications and restart, or edit the C++ applications, rebuild and restart.
To debug any of the applications in the full deployment, stop that process and run the VSCode launch config to run an equivalent process in the debugger. For example the Odin Control launch config uses the same config file as the instance in the full deployment.
- fastcs-odin: An EPICS driver to control the odin-data / eiger-detector applications
- fastcs-eiger: An EPICS driver to control Eiger detectors
- tickit-devices: A set of simulated devices, including Eiger