EIGER Tests

These are the tests used for the EIGER module testing.

sls_detector_tools.eiger_tests.analog_pulses(detector, clk='Half Speed', N=1000)[source]

Test the analog side of the pixel using test pulses Normally this test is run only using clock divider 1 Expect to see cosmics in the final image since the pulsing takes around a minute.

_images/pulse.png
sls_detector_tools.eiger_tests.counter(detector, clk='Full Speed')[source]

Test the digital counter logic. Note this does not test the overflow of the pixel

#Test is done by toggeling enable:
1364 --> 2730 --> 101010101010
 682 --> 1366 --> 010101010110

Using enable only increments of 2 in the counter value is possible

sls_detector_tools.eiger_tests.generate_report(path)[source]

Generate a report based on the contents in a folder outputs a multipage pdf file

sls_detector_tools.eiger_tests.io_delay(detector, clk='Full Speed')[source]

Scan iodelay and for each step verify that the readout works. Run without pulsing the detector. But half speen and full speed are run as a part of the standard tests.

_images/iodelay0.png _images/iodelay1.png
sls_detector_tools.eiger_tests.overflow(detector, clk='Half Speed')[source]

Overflow test using analog pulses

Unfortunatley the enable toggling cannot be used to check this because of problems when going to overflow

sls_detector_tools.eiger_tests.plot_lines(x, lines, interval, center)[source]
sls_detector_tools.eiger_tests.rx_bias(detector, clk='Full Speed', npulse=10)[source]

Scan rx bias and check for each value if the data is read out correctly. Toggle the enable using d.pulse_chip(n) to load counter values. Default number of pulses used is 10 while the old software at the probe station uses 721 pulses. The expected number of counts is n_pulses*2 + 2

The output shows a line per chip in the module with blue patches for the normal range (+/- 1 sigma) and a red dashed line for the standard value that we set.

_images/rxb0.png

Running the chip at half speed should give a larger rx bias window.

_images/rxb1.png

Both tests are a part of the standard EIGER test suite.

sls_detector_tools.eiger_tests.setup_test_and_receiver(detector, clk)[source]

Contexmanger that is used in many of the tests. Sets up the detector and returns a receiver which can be used to get images from the receiver zmq stream.

clk = 'Full Speed'
with setup_test_and_receiver(detector, clk) as receiver:
    detector.acq()
    data = receiver.get_frame()
sls_detector_tools.eiger_tests.tp_scurve(name, d, clk=1)[source]