HDF5 File Structure

The files generated by EPICS are an HDF5 data format which can be interpreted via dedicted viewers or through scripts. HDFView is a useful tool to get an overview of the data you have generated.

Various names of the data are not clear and therefore are described below.

The overall structure is:

<File Name>
        └─Entry
          ├─ data
          |   └─ data
          └─instrument
                  ├─NDAttributes
                  |     ├─DTFactor
                  |     ├─DTPercent
                  |     ├─EventWidth
                  |     ├─SCA0
                  |     ├─SCA1
                  |     ├─SCA2
                  |     ├─SCA3
                  |     ├─SCA4
                  |     ├─SCA5
                  |     ├─SCA6
                  |     └─SCA7
                  ├─Detector
                  └─Performance

Data

The histogram data is stored within the data sturcture, this is an array of integers from bin 0 to 4096 relating to the number of events that occured in that energy range. By default each bin is 10 eV but can be changed during calibration.

Scaler Data

The file is structured as a 3 dimmensional 0-indexed array of

Frame x Channel x Bin

Therefore a 100 frame scan for 8 channels will have the dimensions:

100 x 8 x 4096

The Scaler data for the first frame on the second channel will be stored in:

<file name>['entry']['data']['data'][0][1]

This is an array of length 4096 containing the spectrum histogram.

NDAttributes

Various parameters from the scan are stored for each channel and frame to provide additional information about the scan conditions.

These parameters are stored seperatley for each channel in the format:

CHAN<n><Parameter>

where n is the channel and Parameter is one of the values listed below. Each array will be a 0-indexed array with length equal to the number of frames in the scan

DTFactor

Dead time factor is the the input count rate (ICR) divided by the output count rate (OCR).

CHAN<n>DTFactor will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

DTPercent

Dead time percent is the calculated from the amount of time the system is not counting during the scan based on the event width and the input count rate (ICR)

CHAN<n>DTPercent will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

EventWidth

Provides information about the configured event width per channel and frame.

SCA0

This is the ‘time’ scaler, in clock ticks for each frame of the scan. The Xspress 3 clock is 80 Mhz, therefore each clock tick is 12.5 ns.

CHAN<n>SCA0 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA1

This is the ‘reset tick’ scaler and specifies how many clock ticks the resets caused to be made dead during the frame.

CHAN<n>SCA1 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA2

This is the ‘reset count’ scaler, this is the number of resets that occured within the frame.

CHAN<n>SCA2 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA3

This is the ‘all event’ scaler, and is what the system has determined as all the photon events. This is commonly refered to as the Input Count Rate (ICR).

CHAN<n>SCA3 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA4

This is the ‘all good’ scaler, and is what the system has determined as all the photon events that have been processed and placed into the energy bins. This is commonly refered to as the Output Count Rate (OCR).

CHAN<n>SCA4 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA5

This is the ‘Window 0’ scaler, this counts the number of events in the first configured window. By default there is no window defined.

CHAN<n>SCA5 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA6

This is the ‘Window 1’ scaler, this counts the number of events in the first configured window. By default there is no window defined.

CHAN<n>SCA6 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.

SCA7

This is the ‘Pileup’ scaler, this is a counter for the number of events that get rejected as pileup events i.e. events that happenend before the system was ready to recieve the next event.

CHAN<n>SCA7 will be an 1 dimensional 0-indexed array of length the number of frames in the scan.