w
CI for csaxs_bec / test (push) Successful in 1m32s

This commit is contained in:
2026-05-13 13:48:03 +02:00
parent c3f426182b
commit 02e8b9e9d4
-57
View File
@@ -1,57 +0,0 @@
# Falcon integration
Discussion about the integration of the Falcon detector at different beamlines.
## cSAXS
All PVs are set up when the detector is being connected to BEC. At least the ones that were found relevant at the time of the integration. The detector is operated in MAPPING mode, with the pixel advance mode set to GATE. The number of pixels per buffer is set to 20 with a maximum queue size of 2000 on the hdf5 side.
During the beamtime in 2024, this IOC was running on a console and we were able to measure at roughly ~50Hz. Any faster acquisition meant that we loose data.
cSAXS might like to operate the detector at much higher frequencies.
``` python
# Core Settings
self.preset_mode.put(1)# 0 Normal, 1 Inverted
self.input_logic_polarity.put(0)# 0 Manual 1 Auto
self.auto_pixels_per_buffer.put(0)# Sets the number of pixels/spectra in the buffer
self.pixels_per_buffer.put(20)
## HDF5 settings
self.hdf5.enable.put(1)
self.hdf5.xml_file_name.put("layout.xml") # csaxs file layout
self.hdf5.lazy_open.put(1)
self.hdf5.temp_suffix.put("")
self.hdf5.queue_size.put(2000)
self.hdf5.file_template.put("%s%s")
self.hdf5.file_write_mode.put(2)
self.nd_array_mode.put(1) # Segment spectra in Epics =1, 0 no segmentation
## Acquisition settings
self.collect_mode.put(1) # SPECTRUM = 0 MAPPING = 1
self.pixel_advance_mode.put(1) # USER = 0 GATE = 1 SYNC = 2
self.ignore_gate.put(0) # 0 False, 1 True
```
## SuperXAS
At the SuperXAS beamline, the Falcon detector is operated in SPECTRUM mode and MAPPING mode. However, so far we have only worked with the SPECTRUM mode. Different to cSAXS, settings of the detector IOC are loaded through clicking a configuration icon on a desktop. The only settings that are set are
``` python
self.collect_mode.set(0).wait()
self.preset_real_time.set(0).wait()
# The detector is also gated, I believe. And we then read out the following relevant channels
"""Get dead time corrected counts base on signals from dxp and mca of Falcon"""
dxp: EpicsDXPFalcon = getattr(self.parent, f"dxp{self._channel}")
mca: EpicsMCARecord = getattr(self.parent, f"mca{self._channel}")
icr = dxp.input_count_rate.get()
ocr = dxp.output_count_rate.get()
roi = mca.rois.roi0.count.get()
ert = mca.elapsed_real_time.get()
```
The issue here is that the channels update continously, and we do not have a way of knowing that no new updates are coming in. How do we solve that?
### Debye
Fully HW mode, no integration to BEC yet.