Update Spectral data

This commit is contained in:
arrell_c 2025-01-31 13:05:41 +01:00
parent 386d035ee6
commit adf5740243

View File

@ -1,110 +1,110 @@
## Channel & device list
A standard channel naming is applied to the following devices:
- SARFE10-PSSS059
- SARFE10-PSSS059-LB
- SAROP21-PMOS127-1D
- SAROP21-PMOS127-2D
- SAROP31-PMOS132-1D
- SAROP31-PMOS132-2D
- SATOP11-PSAS079
All spectrometer data channels are listed in the following sheet:
[Sheet of spectrometer data channels](https://docs.google.com/spreadsheets/d/16Hz7MZR3E7-OmLHfakkT2K6yPMFUzp4eIFZxrzXWjFk/edit?usp=sharing)
## Nomenclature
| Style | Meaning |
|-------|---------|
| \<device name\>:**SPECTRUM**\* | Raw spectral data |
| \<device name\>:**FIT**\* | Results of Gaussian fit |
| \<device name\>:**SPECT**\* | Statistics from the raw (without fit) spectrum |
| \<device name\>:**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:
```plaintext
# 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:
```plaintext
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.
**Spectral brightness**
To quantify an increase in the spectral intensity in a narrowing bandwidth, the so called Spectral brightness is calculated:
$`\text{Spectral brightness} = \frac{\text{Single shot intensity [uJ]}}{\text{Single shot spectral FWHM [eV]}}`$
At Aramis, the current channel used for the single shot pulse intensity is:
`SARFE10-PBPG050:FAST-PULSE-ENERGY`
and the spectral FWHM uses the single-shot spectral width. The result channel name is:
`<device name>:FIT-BRT`
indicating the data uses a Gaussian fit. Be aware that this data is only meaningful if the spectral intensity distribution is near Gaussian.
## Data flow schematic
![](https://docs.google.com/drawings/d/e/2PACX-1vRShOtDRMpQTAY1p5oZKvRcuyLToMvmgzTQHOS_JrdQArvqcul-RoMcIobmKFc8RPgJVjGzULKczS5-/pub?w=1440&h=1080)
## CamServer setup
The PSSS has a dedicated server - sf-daqsync-11.psi.ch
### Store pipeline
- SARFE10-PSSS059_store
- 4 clients
This pipeline sends the camera image directly to the image buffer.
**Channels**
- SARFE10-PSSS059:FPICTURE
### PSSS pipeline
- SARFE10-PSSS059_psss
- 13 clients
This pipeline extracts the spectra, fits and produces the statistics.
**Channels**
- SARFE10-PSSS059:FIT-BRT
- SARFE10-PSSS059:FIT-COM
- SARFE10-PSSS059:FIT-FWHM
- SARFE10-PSSS059:FIT-RES
- SARFE10-PSSS059:FIT-RMS
- SARFE10-PSSS059:SPECT-COM
- SARFE10-PSSS059:SPECT-RES
- SARFE10-PSSS059:SPECT-RMS
- SARFE10-PSSS059:SPECTRUM_X
- SARFE10-PSSS059:SPECTRUM_Y
- SARFE10-PSSS059:SPECTRUM_Y_SUM
## Channel & device list
A standard channel naming is applied to the following devices:
- SARFE10-PSSS059
- SARFE10-PSSS059-LB
- SATOP21-PMOS127-1D
- SATOP21-PMOS127-2D
- SATOP31-PMOS132-1D
- SATOP31-PMOS132-2D
- SATOP11-PSAS079
All spectrometer data channels are listed in the following sheet:
[Sheet of spectrometer data channels](https://docs.google.com/spreadsheets/d/16Hz7MZR3E7-OmLHfakkT2K6yPMFUzp4eIFZxrzXWjFk/edit?usp=sharing)
## Nomenclature
| Style | Meaning |
|-------|---------|
| \<device name\>:**SPECTRUM**\* | Raw spectral data |
| \<device name\>:**FIT**\* | Results of Gaussian fit |
| \<device name\>:**SPECT**\* | Statistics from the raw (without fit) spectrum |
| \<device name\>:**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:
```plaintext
# 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:
```plaintext
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.
**Spectral brightness**
To quantify an increase in the spectral intensity in a narrowing bandwidth, the so called Spectral brightness is calculated:
$`\text{Spectral brightness} = \frac{\text{Single shot intensity [uJ]}}{\text{Single shot spectral FWHM [eV]}}`$
At Aramis, the current channel used for the single shot pulse intensity is:
`SARFE10-PBPG050:FAST-PULSE-ENERGY`
and the spectral FWHM uses the single-shot spectral width. The result channel name is:
`<device name>:FIT-BRT`
indicating the data uses a Gaussian fit. Be aware that this data is only meaningful if the spectral intensity distribution is near Gaussian.
## Data flow schematic
![](https://docs.google.com/drawings/d/e/2PACX-1vRShOtDRMpQTAY1p5oZKvRcuyLToMvmgzTQHOS_JrdQArvqcul-RoMcIobmKFc8RPgJVjGzULKczS5-/pub?w=1440&h=1080)
## CamServer setup
The PSSS has a dedicated server - sf-daqsync-11.psi.ch
### Store pipeline
- SARFE10-PSSS059_store
- 4 clients
This pipeline sends the camera image directly to the image buffer.
**Channels**
- SARFE10-PSSS059:FPICTURE
### PSSS pipeline
- SARFE10-PSSS059_psss
- 13 clients
This pipeline extracts the spectra, fits and produces the statistics.
**Channels**
- SARFE10-PSSS059:FIT-BRT
- SARFE10-PSSS059:FIT-COM
- SARFE10-PSSS059:FIT-FWHM
- SARFE10-PSSS059:FIT-RES
- SARFE10-PSSS059:FIT-RMS
- SARFE10-PSSS059:SPECT-COM
- SARFE10-PSSS059:SPECT-RES
- SARFE10-PSSS059:SPECT-RMS
- SARFE10-PSSS059:SPECTRUM_X
- SARFE10-PSSS059:SPECTRUM_Y
- SARFE10-PSSS059:SPECTRUM_Y_SUM
- SARFE10-PSSS059:processing_parameters