Special analysis suites

Introduction

Special analysis suite is a new concept introduced in the version 0.8.2 to solve some issues which cannot be addressed in EXtra-foam core. Each suite is a group of applications (we will call it app in the rest part of this documentation) dedicated for specific online analysis. The following table compares EXtra-foam core and special suite in various aspects.

EXtra-foam core EXtra-foam special suite
General purpose; rich features. Special-purposed small apps.
Heavy computation. Light computation.
Image detector oriented. Any detector.
One instance per detector per cluster. No restriction on number of instances.
GUI performance degrades with a lot of plots. Limited plots per app. GUI update rate can reach 10 Hz in most cases.
Complicated. Easy to implement.
Multi-process; distributed. Single-process; multi-threading.
Python and C++. Pure Python.
  Depends on EXtra-foam core; may need a core instance to run.

There are two different work flows for special analysis:

  1. The special analysis receives processed data from a main EXtra-foam instance;
  2. The special analysis is independent from the main instance and it directly receives data from a “Karabo bridge”.

The first work flow can be deemed as an extension to EXtra-foam core, while the second one is indeed similar to a mini karaboFAI prior to version 0.4.7.

The special analysis suite can be started by typing

extra-foam-special-suite TOPIC

in a terminal. Depending on the topic, you will see a facade window like

_images/special_suite_facade_scs.png

Click one of the app icons and the analysis window will show up and the facade will be closed. If one needs two instances of the same app, one can simply repeat the process. Apps in special suite can be further categorized into special-purposed (e.g. XAS-TIM, tr-XAS) and general purposed (e.g. Camera view, multi-camera view) apps. General purposed apps will appear in any topic while special-purposed apps will only appear in certain topics. Moreover, the same special-purposed app may behave differently in different topics. Namely, they are really customized for topics.

More info on command line arguments can be obtained as

[user@exflonc12 ~]$ extra-foam-special-suite --help

 usage: extra-foam-special-suite [-h] [-V] [--use-gate] [--debug]
                                 {SPB,FXE,SCS,SQS,MID,HED,DET}

 positional arguments:
   {SPB,FXE,SCS,SQS,MID,HED,DET}
                         Name of the topic

 optional arguments:
   -h, --help            show this help message and exit
   -V, --version         show program's version number and exit
   --debug               Run in debug mode

General purposed apps

Camera view, Vector view, multi-camera view

Camera view

_images/special_suite_camera_view.jpg

Camera view is a light-weight image tool for monitoring image data updated at 10 Hz or even faster. It also allows to monitor (ROI) histogram of the image. When the ROI is activated, histogram is calculated over the ROI instead of the whole image. It supports any train-resolved image data, i.e. an image data which has a shape of (y, x) or (1, y, x) or (y, x, 1).

More small features will be added in the future.

Input Description
Output channel Output channel name.
Property Image data property name.
M.A. window Slicer used to slice pulses in a train.
Bin range Histogram bin range.
# of bins Number of histogram bins.

Vector view

_images/special_suite_vector_view.jpg

Vector view helps you monitor 1D data like XGM intensity, digitizer pulse integral, pulse-resolved ROI FOM and the correlation between them. Vector view receives processed data from a main EXtra-foam instance.

Input Description
Vector1 Vector 1.
Vector2 Vector 2 (optional).

Note

In order to correlate two vectors, you will need to use the Pulse slicer in the data source tree located in the main GUI to select the data.

Warning

To have the pulse-resolved ROI FOM data, currently you must open the Histogram window in the main GUI and select ROI FOM as the analysis type. This will activate the pulse-resolved ROI FOM calculation, which is a little bit expensive. Also, make sure the Pulse resolved checkbox is checked.

Special purposed apps

  • SPB

Gotthard

  • FXE

Bragg diffraction peak, XES

  • SCS

Gotthard, Gotthard (pump-probe), tr-XAS, XAS-TIM, XAS-TIM-XMCD

  • MID

Gotthard, Gotthard (pump-probe)

  • HED
  • DET

Multi-module scan

  • XPD

Gotthard

Gotthard

_images/special_suite_gotthard.jpg

When the ROI is activated, histogram is calculated over the ROI instead of the whole image.

For applying dark subtraction, one can record the dark online or load a dark run from the file.

Input Description
Output channel Output channel name.
M.A. window Moving average window size.
Pulse slicer Slicer used to slice pulses in a train.
P.O.I. (sliced) Index of the pulse of interest after pulse slicing. For example, if there are 60 pulses in a train and the slicer only selects a half of them. The index range will be from 0 to 29.
Bin range Histogram bin range.
# of bins Number of histogram bins.
Scale (eV/pixel) Scale used for axis calibration. If it is zero, no calibration will be performed and the Offset will be ignored as well.
Offset (eV) Offset used for x-axis calibration.
Histogram over M.A. Check to calculate the histogram over the moving averaged data.

Gotthard (pump-probe)

_images/special_suite_gotthard_pump_probe.jpg
Input Description
Output channel Output channel name.
M.A. window Moving average window size.
On-pulse slicer Slicer used to slice on (pumped) pulses in a train.
Off-pulse slicer Slicer used to slice off (unpumped) pulses in a train. The numbers of the on and off pulses must be the same.
Pump-probe P.O.I. Index of the pump-probe pulse of interest. For example, if there are 10 on-pulses and 10 off-pulses, the range of the index is from 0 to 9.
Dark-pulse slicer Slicer used to slice dark pulses in a train.
Dark-pulse P.O.I. Index of the dark pulse of interest. For example, if there are 5 dark pulses and the total number pulses is 100, the index range is from 0 to 4 regardless of the dark pulse positions in the train.

tr-XAS

_images/special_suite_tr_xas.png

XAS-TIM

_images/special_suite_xas_tim.png
Input Description
XGM Output channel XGM output channel name.
Digitizer output channel Digitizer output channel name.
Digitizer channels Check to analyze data on the corresponding channel.
Mono device ID Monochromator device ID.
# of pulses/train Number of ‘useful’ XGM pulses in a train.
APD stride Stride used in slice the digitizer APD data.
XGM intensity threshold Pulses with XGM intensity below this threshold will be ignored.
Pulse window Maximum number of pulses used in calculating the spectra.
# of energy bins Number of energy bins for spectra calculation.
Pulse window Maximum number of pulses used in I0/I1 correlation visualization.
Show spectra Check to show spectra on the corresponding digitizer channel.

XAS-TIM-XMCD

_images/special_suite_xas_tim_xmcd.png

XAS-TIM-XMCD is very similar to XAS-TIM. For input not listed in the following table, please refer to the input table in XAS-TIM.

Input Description
Magnet device ID Output channel name of the device which provides the magnet current values.
Magnet current threshold Pulses with an absolute magnet current value below this threshold will be ignored.