Skip to content
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e74cf60
insert pics
JoschD Jun 18, 2025
40c44d4
Merge branch 'user_guide_updates' into user_guide_updates_bbgui_model…
JoschD Jun 25, 2025
0166925
Merge branch 'user_guide_updates' into user_guide_updates_bbgui_model…
JoschD Jun 26, 2025
653423e
follow symlinks
JoschD Jun 26, 2025
18eca54
Merge branch 'user_guide_updates' into user_guide_updates_bbgui_model…
JoschD Jul 30, 2025
c9a30de
lhc model creation
JoschD Aug 5, 2025
adde840
model creation sps
JoschD Aug 5, 2025
3eda7d8
file dialogs
JoschD Aug 6, 2025
f832259
bpms and such
JoschD Aug 6, 2025
24416ae
quick reformat
JoschD Aug 6, 2025
d235ac3
BPM panel
JoschD Aug 7, 2025
50db987
better bad bpms info
JoschD Aug 7, 2025
f825466
apply josh
JoschD Aug 11, 2025
97788f4
fixes felix
JoschD Aug 15, 2025
c8bd55c
PS and PSB
JoschD Aug 15, 2025
2bb934d
Merge branch 'user_guide_updates_bbgui_model_creation' into user_guid…
JoschD Aug 18, 2025
19e7c43
missing pics
JoschD Aug 18, 2025
0bf0e8c
Merge branch 'user_guide_updates_bbgui_model_creation' into user_guid…
JoschD Aug 18, 2025
5ba5fa5
add do analysis here
JoschD Aug 18, 2025
411d8b8
do analysis dialog
JoschD Aug 18, 2025
6989de8
ascii
JoschD Aug 18, 2025
27e3704
parallelization
JoschD Aug 18, 2025
8778953
better phrasing
JoschD Aug 18, 2025
0173c34
Merge branch 'user_guide_updates' into user_guide_updates_bpm_panel
JoschD Aug 19, 2025
5e2823e
acronyms
JoschD Aug 19, 2025
8145edc
added harpy page
JoschD Aug 19, 2025
81299a9
felix fixes
JoschD Aug 19, 2025
19122a3
minor emphasising
JoschD Aug 19, 2025
16a8221
output path
JoschD Aug 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/css/custom_colors.css
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@
--color-cernpurple: #6e2466;
}


/* Useful to set a `cern` blue as primary in mkdocs.yml (dark mode) */
[data-md-color-primary="cern"] {
--md-primary-fg-color: #0033a0;
--md-primary-fg-color--light: #9BAEDB;
--md-primary-fg-color--dark: #0033A0;
}

/* General emphasis class */
.omc-emph {
color: var(--md-primary-fg-color);
Expand Down
7 changes: 1 addition & 6 deletions docs/css/extra.css
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,7 @@ a.cern_internal {

}

/* Useful to set a `cern` blue as primary in mkdocs.yml (dark mode) */
[data-md-color-primary="cern"] {
--md-primary-fg-color: #0033a0;
--md-primary-fg-color--light: #9BAEDB;
--md-primary-fg-color--dark: #0033A0;
}


/* Fix the Mathjax scrolling boxes issue */
.md-typeset div.arithmatex {
Expand Down
251 changes: 193 additions & 58 deletions docs/guis/betabeat/bpm_panel.md

Large diffs are not rendered by default.

40 changes: 38 additions & 2 deletions docs/guis/betabeat/common_components.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,15 @@ Independent of which tab is selected, some general components of the UI are comm

All plots are running with the same back-end classes, which allows additional control via mouse and keyboard.

Zooming can be achieved by drawing a rectangle with the left mouse button or with the shortcuts listed below.
They also support the "hover" feature, which allows you to inspect additional details about the plotted points by hovering your mouse cursor over them.
<figure>
<center>
<img src="../../assets/images/betabeat_gui/plot_with_hover.png" width="100%" alt="Beta-Beating Plot with BPM hover info." />
<figcaption>Hover info on a Beta-Beating Plot.</figcaption>
</center>
</figure>

- **Zoom**: Zooming can be achieved by drawing a rectangle with the left mouse button or with the shortcuts listed below.
- **Hover Info**: The plots support the "hover" feature, which allows you to inspect additional details about the plotted points by hovering your mouse cursor over them.

### Shortcuts

Expand Down Expand Up @@ -124,5 +131,34 @@ As long as any task is running, there will also be a small animation on the righ
but the actual task will keep running in the background.
This needs to be implemented in the future.

## File Opening Dialogs

To make navigating between different folders easier, especially considering the deeply nested paths of `afs` and `nfs`,
some shortcuts have been implemented into the file opening dialogs, which become available for all relavant dialogs **after [the beam selection window](beam_selection.md)**.
They can be found at the top right of the dialog, and hovering them will show their functionality:

<figure>
<center>
<img src="../../assets/images/betabeat_gui/open_files_folders.png" width="30%" alt="Special links in the file opening dialogs." />
<figcaption>Special links in the file opening dialogs.</figcaption>
</center>
</figure>

- **First Path** (:fontawesome-solid-check::fontawesome-solid-x:):
Return to the initial path you were in when the window opened.
- **Input Path** (:fontawesome-solid-circle-info:):
Go to the path set as [_Input Path_ in the beam selection window](beam_selection.md#input).
- **Output Path** (:fontawesome-solid-eye:):
Go to the path set as [_Output Path_ in the beam selection window](beam_selection.md#output).
- **Root Path** (**<>**)
Go to the root-path for the current GUI instance, i.e. the path in which the accelerator-folder (e.g. `LHCB1`) is located.
This is usually the date-directory within the output folder, unless you have choosen that folder as the _Output Path_,
in which case it will be the same as the _Output Path_ (see the [Continue Analysis Admonition in the Beam Selection Window](beam_selection.md#folder-structure)).
- **Fill Dir** (:fontawesome-solid-arrow-right:) _(Only available for the LHC and only if the folder is mounted)_:
Go to the fill-directory of [the choosen accelerator](beam_selection.md#beam).
- **Accelerator Dir** (:fontawesome-solid-star:) _(Only available for LHC, SPS, PS and PSB, and only if the folder is mounted)_:
Go to the default OMC analyis directory of [the choosen accelerator](beam_selection.md#beam),
which is usually the same as [the _Output Dir_, if the default is used in the beam selection window](beam_selection.md#output).

[omc3]: https://github.com/omc3
[pylhc]: https://github.com/PyLHC
21 changes: 11 additions & 10 deletions docs/guis/betabeat/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,10 @@ This is in contrast to the other settings tabs, which control the settings passe

- **Run Per-File Tasks in Parallel**:
If active, tasks that are started together but can run independently per file will be run in individual tasks in parallel,
e.g. the `harpy` analysis will be run in parallel for each turn-by-turn file, even if started with multiple files selected.
Also, when running multiple optics analysis, but clicking the `Run per file` button, the analysis will be run in parallel for each file.
Conversely, if `Also run optics analysis` is selected, the first step of the `harpy` analsysis will be run sequentially per file,
as coordination between multiple tasks is not implemented.
e.g. the `harpy` analysis will be run in parallel for each turn-by-turn file, even if started with multiple files selected at once.
When running `optics analysis`, with _combine analysis_ deactivated, the analysis will be run in parallel for each file.
Conversely, if the user opts to also run the `optics analysis` directly from the BPM-Panel with _combine analysis_ activated, the `harpy` analysis of the files will be run sequentially per file in python,
as multiprocessing is not implemented in python.

## Tunes Tab

Expand Down Expand Up @@ -156,7 +156,7 @@ The fields are non-editable when it does not make sense in the current settings
</center>
</figure>

The Harpy tab contains the settings for the harmonic `harpy` analysis.
The Harpy tab contains the settings for the [harmonic `harpy` analysis][harpy_analysis].

- **Files**:
This field is not editable and automatically set when selecting TbT files in the [BPM Panel](bpm_panel.md) and running the analysis.
Expand Down Expand Up @@ -244,7 +244,7 @@ The `python` default is `""`, i.e. no suffix.
</center>
</figure>

Most of the cleaning, for which the settings can be changed here, are part of the harmonic analysis module `harpy` in `omc3`
Most of the cleaning, for which the settings can be changed here, are part of the [harmonic analysis module `harpy` in `omc3`][harpy_analysis]
and will be executed during the "Analyse Spectrum" phase.
Some of this procedure is also described on the [BPM filtering page][bpm_filtering].

Expand All @@ -254,12 +254,12 @@ Some of this procedure is also described on the [BPM filtering page][bpm_filteri
is done within the cleaning module (see below).

??? info "Why is cleaning part of the harmonic analysis?"
Cleaning is part of the harmonic analysis in `harpy` as the [frequency analysis is done on the v-matrix of the SVD][harpy_ipac]:
Cleaning is part of the harmonic analysis in `harpy` as the [frequency analysis is done on the v-matrix of the SVD][harpy_analysis]:
SVD is used to reduce the noise in the BPM data by selecting only the most important modes and in the same step also to detect bad bpms.
As this decomposition is a linear transformation, the frequency analysis can be run directly on decomposed v-matrix, without
having to re-compose the data into the time-domain, saving time and memory.
The disadvantage is that, as we do not save the SVD matrices, there is no way to only run _cleaning_ without frequency analysis at the moment.
For more details, see [doi:10.18429/JACoW-IPAC2022-WEPOMS035][harpy_ipac].
For more details, see [this documentation][harpy_analysis] and [doi:10.18429/JACoW-IPAC2022-WEPOMS035][harpy_ipac].

- **Active**:
If active, the cleaning module is run during the "Analyse Spectrum" phase.
Expand Down Expand Up @@ -487,7 +487,6 @@ which is the `python`-internal representation of the accelerator and its setting

[python-docs]: https://pylhc.github.io/omc3/
[multiturn]: ../multiturn/gui.md
[harpy_ipac]: https://accelconf.web.cern.ch/ipac2022/papers/wepoms035.pdf
[bpm_filtering]: ../../measurements/physics/bpm_filtering.md
[bad_bpms]: ../../measurements/physics/bpm_filtering.md#manual
[isolation_forest_cleaning]: ../../measurements/physics/bpm_filtering.md#isolation-forest
Expand All @@ -496,4 +495,6 @@ which is the `python`-internal representation of the accelerator and its setting
[gitlab_issue279]: https://gitlab.cern.ch/acc-co/lhc/lhc-app-beta-beating/-/issues/279
[n_bpm_method]: https://journals.aps.org/prab/abstract/10.1103/PhysRevAccelBeams.20.111002
[three_bpm_method]: https://repository.cern/records/eny2v-4y338
[isolation_forest_issue]: https://github.com/pylhc/omc3/issues/184
[isolation_forest_issue]: https://github.com/pylhc/omc3/issues/184
[harpy_ipac]: https://accelconf.web.cern.ch/ipac2022/papers/wepoms035.pdf
[harpy_analysis]: ../../measurements/physics/harpy.md
20 changes: 20 additions & 0 deletions docs/measurements/physics/harpy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Harmonic Analysis with Harpy

This page describes how the harmonic analysis is performed with the `harpy` module.
If you want to know how to use the `harpy` module, refer to the [`omc3` analysis workflow][omc3_analysis].

!!! todo "Implement this page"
Explain how harpy works.
Similar to [Malina - Harpy: A Fast, Simple and Accurate Harmonic Analysis with Error Propagation](https://accelconf.web.cern.ch/ipac2022/doi/JACoW-IPAC2022-WEPOMS035.html)
but more detail:

- SVD, Noise cleaning, Noise estimation
- Why numpy FFT? What about SUSSIX, LASKAR?
- Zero padding
- Binning
- Error propagation
- BPM cleaning
- Line identification


[omc3_analysis]: ../../packages/omc3/analysis.md
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ nav:
- Error Propagation: measurements/physics/error_propagation.md
- BPM-Calibration: measurements/physics/bpm_calibration.md
- BPM-Filtering: measurements/physics/bpm_filtering.md
- Harmonic Analysis: measurements/physics/harpy.md
- Coupling: measurements/physics/coupling.md
- K-Mod: measurements/physics/kmod.md
- Linear IR Optics: measurements/physics/ir_linear_optics.md
Expand Down