“XH is the worlds first 50μm pitch Ge Strip detector which has been designed specifically for Energy Dispersive EXAFS (EDE). Carrying on from the CLRC development of XSTRIP1, a Si based detector system, XH makes use of amorphous germanium (a-Ge) contact technology produced by LBNL2 and readout ASICs developed by CLRC. XH is designed to address the issues of detection efficiency and radiation damage that limit the effectiveness of the original XSTRIP system.”
The system is controlled from its own PC or via a TCP/IP connection from a beamline computer system.
The Lima plugin has been tested only at ESRF for a unique XH detector on BM23 and ID24 beamlines.
Prerequisite Linux OS¶
The plugin is only working for Linux distribution and been tested on Redhat E4 i386 and debian 6 x86_64.
Installation & Module configuration¶
Follow the generic instructions in Build and Install. If using CMake directly, add the following flag:
For the Tango server installation, refers to PyTango Device Server.
Initialisation and Capabilities¶
Implementing a new plugin for new detector is driven by the LIMA framework but the developer has some freedoms to choose which standard and specific features will be made available. This section is supposed to give you the correct information regarding how the camera is exported within the LIMA framework.
This plugin has been implemented in respect of the mandatory capabilites but with some limitations which are due to the camera and SDK features. We only provide here extra information for a better understanding of the capabilities for Andor cameras.
In addition to the standard capabilities, we make the choice to implement some optional capabilities which are supported by the SDK and the I-Kon cameras. A Shutter control, a hardware ROI and a hardware Binning are available.
How to use¶
This is a python code example for a simple test:
from Lima import Xh from lima import Core # hostname port config name cam = Xh.Camera('xh-detector', 1972, 'config_xhx3') hwint = Xh.Interface(cam) ct = Core.CtControl(hwint) acq = ct.acquisition() # configure some hw parameters # set some low level configuration # setting new file parameters and autosaving mode saving=ct.saving() pars=saving.getParameters() pars.directory='/buffer/lcb18012/opisg/test_lima' pars.prefix='test1_' pars.suffix='.edf' pars.fileFormat=Core.CtSaving.EDF pars.savingMode=Core.CtSaving.AutoFrame saving.setParameters(pars) # now ask for 2 sec. exposure and 10 frames acq.setAcqExpoTime(2) acq.setNbImages(10) ct.prepareAcq() ct.startAcq() # wait for last image (#9) ready lastimg = ct.getStatus().ImageCounters.LastImageReady while lastimg !=9: time.sleep(0.1) lastimg = ct.getStatus().ImageCounters.LastImageReady # read the first image im0 = ct.ReadImage(0)