Multi-channel analyzer#

TODO: write

* Dataset **_mca_** : *float* MCA data reported on *@A* lines
* Dataset **_mca_channel_**: provided as HDF5 dimension scale for **_mca_** dataset
    * if CALIB data specified: *float* scaled MCA channels -- :math:`x_k = a +bk + ck^2`
    * if CALIB data not specified: *int* MCA channel numbers

TODO: show with one MCA

TODO: show with CALIB

1#@CALIB -0.00442719 0.0161734 0 mca1
2#@ROI  FeKa(mca1 R1) 377 413
3#@ROI  MnKa(mca1 R0) 344 376
1MCA:NXnote
2   @NX_class = "NXnote"
3   @description = "MCA metadata"
4   calib_a:NX_FLOAT64 = -0.00442719
5   calib_b:NX_FLOAT64 = 0.0161734
6   calib_c:NX_FLOAT64 = 0.0

In this fragment, 4 MCA detectors are used, each with 256 channels:

1@A1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 35 0 71 0 0 0 0 35 35 0 35 0 107 143 143 143 215 322 358 645 502 681 502 861 1112 1148 1758 1148 1507 1327 1184 1004 466 430 287 179 71 0 35 35 71 71 35 107 71 35 107 71 35 0 0 35 0 0 0 35 35 0 0 0 0 0 71 0 0 0 0 0 0 0 0 35 0 35 0 35 35 0 0 35 0 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2@A2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 35 0 0 0 35 0 0 0 107 107 35 71 143 179 394 322 107 322 645 466 681 897 1471 1291 1794 2009 1578 1973 1865 1758 2224 1255 789 574 538 215 251 143 107 71 143 107 107 0 71 35 35 107 143 35 0 71 0 71 35 0 35 143 35 0 0 35 0 0 35 107 0 0 71 35 35 71 0 0 35 35 107 0 0 71 0 0 0 35 0 0 0 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3@A3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 35 0 0 0 0 0 0 0 71 0 0 0 0 0 35 35 35 0 71 71 107 35 107 215 179 394 251 358 358 538 538 717 717 574 609 897 538 538 609 502 358 287 107 71 35 143 71 35 0 0 0 0 143 35 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 35 0 35 0 35 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4@A4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 35 0 35 0 0 0 35 0 35 0 0 0 0 71 215 215 35 358 251 179 358 322 538 753 466 574 466 1686 1507 1327 1148 1794 1363 1507 1112 861 717 394 179 143 35 35 71 35 35 107 35 71 179 35 107 71 107 35 179 0 35 35 35 35 71 0 0 0 71 0 35 0 71 0 0 0 0 0 0 0 0 0 0 35 35 35 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Written into the /SCAN/data group with the other scan motors and counters:

 1 _mca1_:NX_INT64[1353,256] = __array
 2     __array = [
 3         [0, 0, 0, '...', 0]
 4         [0, 0, 0, '...', 0]
 5         [0, 0, 0, '...', 0]
 6         ...
 7         [0, 0, 0, '...', 0]
 8       ]
 9     @axes = "Energy:_mca1_channel_"
10     @spec_name = "_mca1_"
11     @units = "counts"
12 _mca1_channel_:NX_INT64[256] = [1, 2, 3, '...', 256]
13     @spec_name = "_mca1_channel_"
14     @units = "channel"
15 _mca1_channel_scaled_x:NX_INT64[256] = [1, 1, 1, '...', 1]
16     @spec_name = "_mca1_channel_scaled_x"
17     @units = ""