## Channel list
All PSSS data channels are listed in the following sheet:

[Sheet of PSSS data channels](https://docs.google.com/spreadsheets/d/16Hz7MZR3E7-OmLHfakkT2K6yPMFUzp4eIFZxrzXWjFk/edit?usp=sharing)

## Nomenclature

| Style | Meaning|
|----------|----------|
| SARFE10-PSSS059:**SPECTRUM***|Raw spectral data |
| SARFE10-PSSS059:**FIT*** | Results of Gaussian fit |
| SARFE10-PSSS059:**SPECT*** | Statistics from the raw (without fit) spectrum |
| SARFE10-PSSS059:**AVG*** | Data calculated from average (not single shot) spectra |

## Concepts
**Width and center**

Spectral width and central energy are calculated by both a Gaussian fit and directly from the spectra.  Depending on the spectral intensity profile, the Gaussian may return a poor representation of the spectra, for example for a spectral with a long tail.  Before both fitting and calculation the spiky single shot spectra are smoothed with a savgol filter:

```
# smooth the spectrum with savgol filter with 51 window size and 3rd order polynomial
smoothed_spectrum = scipy.signal.savgol_filter(spectrum, 51, 3)
```

The standard deviation and center of mass for the spectra are calculated as:

``` 
smoothed_spectrum_normed = smoothed_spectrum / np.sum(smoothed_spectrum)
spectrum_com = np.sum(axis * smoothed_spectrum_normed)
spectrum_std = np.sqrt(np.sum((axis - spectrum_com) ** 2 * smoothed_spectrum_normed))
```

**Relative energy spread**

Channels ending in **RES** are a measure of the relative energy spread in units of ‰.  For **FIT** data the relative energy spread is calculated as:

$`\frac{2.355*\sigma}{\mu}`$

and for directly calculated values (**SPECT**):

$`\frac{2.355*RMS}{\text{Center of mass}}`$

where the factor or 2.355 is included to allow these values to be comparable.

## Data flow schematic
<img src="https://docs.google.com/drawings/d/e/2PACX-1vRShOtDRMpQTAY1p5oZKvRcuyLToMvmgzTQHOS_JrdQArvqcul-RoMcIobmKFc8RPgJVjGzULKczS5-/pub?w=1440&amp;h=1080">