menzelandClaude Opus 4.8 a4e7e8bd5c
CI for csaxs_bec / test (pull_request) Successful in 1m30s
Read the Docs Deploy Trigger / trigger-rtd-webhook (push) Successful in 2s
CI for csaxs_bec / test (push) Successful in 1m34s
ci: fix plugin checkout for fork pull requests
The 'Checkout BEC Plugin Repository' step pinned repository to bec/csaxs_bec
with ref github.head_ref. For a pull request opened from a fork, head_ref is
the fork's branch name, which does not exist in the base repo, so the checkout
failed with 'git ... exit code 1' before any tests ran.

Fall through to github.sha instead: on pull_request events that is the
test-merge commit, which lives in the base repo, so the checkout succeeds for
fork PRs and in-repo branches alike (and gates on the merged result).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 14:28:39 +02:00
2025-05-24 11:37:51 +02:00

cSAXS BEC

cSAXS specific plugins and configs for BEC This document guides you through the procedure to spin up BEC at the beamline for a new experiment (e-account). You might want to run cSAXS copy scripts before in case you want to have the former data structure to be preserved.

Overview

  • Clone cSAXS BEC repository into e-account (e.g. into ~/Data10/software/.)
  • Start Epics iocs
  • Start BEC, BEC server and load/modify the device config with relevant hardware
  • BEC commands

Clone cSAXS BEC repository

Clone the current cSAXS BEC repository from GIT into the new e-account. Create directory

mkdir ~/Data10/software
cd ~/Data10/software

Clone repository

git clone https://gitlab.psi.ch/bec/csaxs_bec.git

Start epics iocs

You can start up the iocs while the ./setup_bec.sh script is running. Be aware though that the scripts requires you to interact with it.

DelayGenerator

Open a new tab in a terminal in comp1/comp2 or cons1 and follow the commands below:

ssh gac-x12sa@localhost
cd ~/delaygen
iocsh -7.0.6 startup.script

Be aware -7.0.6 is referring to the current epics version and might change in future (SLS 2.0). To start the epics panel (only if needed), run in a new shell

caqtdm -noMsg -macro P=delaygen:,R=DG1: srsDG645.ui

More notes on usages and cabelling of DDGs. Currently 3 generators are used:

  • DDG1 for detectors (EXT Enable from SGalil stages, T0 to DDG2, AB for eiger, CD for Falcon, EF for Pilatus_2)
  • DDG2 for mcs card (ext. enable from DDG1, AB to mcs card)
  • DDG3 for fast shutter and mcs enable (AB short pulse to enable MCS (needed!!), CD to keep FSH open )

Eiger

Open a new tab in a terminal in comp1/comp2 or cons1 and follow the commands below:

ssh gac-x12sa@localhost
cd ~/Software/Eiger/
./launch_ioc

A live view of status and images for std_daq can be found here xbl-daq-29:5000.

Pilatus_2

First, start the cam server. Connect to the computer and follow the instructions printed after connecting:

ssh det@x12sa-pd-2 (Pilatus2)

The cam server will open, wait until you see **. Nex step, open a new tab in a terminal in comp1/comp2 or cons1 and follow the commands below:

ssh gac-x12sa@localhost
cd ~/Software/Pilatus300K/
./launch_epics

FalconX1

Open a new tab in a terminal in comp1/comp2 or cons1 (logged in as the current e-account) and follow the commands:

ssh x12sa-cons-01
cd /ioc/X12SA-PC-FALCONX1/
iocsh -7.0.6 startup.script

Be aware -7.0.6 is referring to the current epics version and might change in future (SLS 2.0)

Start BEC, BEC server and load device config

Step 1 needs to have finished for continuing with these steps. What remains now is to start the bec server. Connect to pc15543 and open a new terminal to run:

cd ~/Data10/software
source bec_venv/bin/activate
bec-server start
tmux attach -t bec

Open another teminal on pc15543 and start BEC:

cd ~/Data10/software
source bec_venv/bin/activate
bec

Note: In case there is a warning after starting BEC that it was not able to import scilog, you will have to pip install scilog in the bec_venv to be able to send printouts to scilog from the command line. Within a new terminal:

cd ~/Data10/software
source bec_venv/bin/activate
pip install scilog

Device config from csaxs-bec plugins

bec.config.update_session_with_file('/sls/X12SA/data/e20639/Data10/software/csaxs-bec/bec_plugins/configs/bec_device_config_sastt.yaml')
bec.config.save_current_session('~/Data10/software/current_config.yaml')

The second command is helpful if you adjust limits of motors, which will then be stored in the config and loaded if a reload of the configuration is needed.

BEC commands

A number of commands that are useful:

To move devices that are added in the config:

umv(dev.samx, 0) #absolute
umvr(dev.samx, 0) #relative
dev.samx.wm #print motor position and limits
dev.samx.limits = [low_limit, high_limit] # To set limits, note, same lower and higher limit, e.g. [0, 0] means no limits!!

Scans:

scans.acquire(exp_time = 0.5, frames_per_trigger=10, readout_time=3e-3) # equivalent to a loopscan 30 0.5
scans.line_scan(dev.samx, -1, 1, steps=20, exp_time=0.5, readout_time=3e-3, relative=True) # optional, add frames_per_trigger =10 for burst acquisition at each step
#Scan 2 motors in a step scan at the same time
scans.line_scan(dev.samx, -1, 1, dev.samy, -1, 1, steps=20, exp_time=0.5, readout_time =3e-3, relative=True) # step scan with 20 steps, again frames_per_trigger can be added for burst at each point
scans.sgalil_grid(start_y = , end_y = , interval_y = , start_x=, end_x=, interval_x =, exp_time=0.5, readout_time=3e-3, relative=True)
S
Description
cSAXS specific plugins and configs for BEC
Readme BSD-3-Clause
20 MiB
Languages
Python 100%