diff --git a/docs/assets/images/multiturn_gui/ACDipoleScheduler.png b/docs/assets/images/multiturn_gui/ACDipoleScheduler.png new file mode 100644 index 00000000..f84b37fe Binary files /dev/null and b/docs/assets/images/multiturn_gui/ACDipoleScheduler.png differ diff --git a/docs/assets/images/multiturn_gui/ADTACDipole.png b/docs/assets/images/multiturn_gui/ADTACDipole.png new file mode 100644 index 00000000..141fe464 Binary files /dev/null and b/docs/assets/images/multiturn_gui/ADTACDipole.png differ diff --git a/docs/assets/images/multiturn_gui/bunch_selection.png b/docs/assets/images/multiturn_gui/bunch_selection.png new file mode 100644 index 00000000..50293363 Binary files /dev/null and b/docs/assets/images/multiturn_gui/bunch_selection.png differ diff --git a/docs/assets/images/multiturn_gui/concentrator_settings.png b/docs/assets/images/multiturn_gui/concentrator_settings.png new file mode 100644 index 00000000..9d43fd0f Binary files /dev/null and b/docs/assets/images/multiturn_gui/concentrator_settings.png differ diff --git a/docs/assets/images/multiturn_gui/create_kick_group.png b/docs/assets/images/multiturn_gui/create_kick_group.png new file mode 100644 index 00000000..7d4d4289 Binary files /dev/null and b/docs/assets/images/multiturn_gui/create_kick_group.png differ diff --git a/docs/assets/images/multiturn_gui/create_schedule_table.png b/docs/assets/images/multiturn_gui/create_schedule_table.png new file mode 100644 index 00000000..c22305b9 Binary files /dev/null and b/docs/assets/images/multiturn_gui/create_schedule_table.png differ diff --git a/docs/assets/images/multiturn_gui/default_view.png b/docs/assets/images/multiturn_gui/default_view.png new file mode 100644 index 00000000..ffd05d14 Binary files /dev/null and b/docs/assets/images/multiturn_gui/default_view.png differ diff --git a/docs/assets/images/multiturn_gui/flag_status.png b/docs/assets/images/multiturn_gui/flag_status.png new file mode 100644 index 00000000..d273237e Binary files /dev/null and b/docs/assets/images/multiturn_gui/flag_status.png differ diff --git a/docs/assets/images/multiturn_gui/lsa_generation_bp_optics_table.png b/docs/assets/images/multiturn_gui/lsa_generation_bp_optics_table.png new file mode 100644 index 00000000..0001cf51 Binary files /dev/null and b/docs/assets/images/multiturn_gui/lsa_generation_bp_optics_table.png differ diff --git a/docs/assets/images/multiturn_gui/measurement_environment.png b/docs/assets/images/multiturn_gui/measurement_environment.png new file mode 100644 index 00000000..0a4f0ec7 Binary files /dev/null and b/docs/assets/images/multiturn_gui/measurement_environment.png differ diff --git a/docs/assets/images/multiturn_gui/prewritten_schedules.png b/docs/assets/images/multiturn_gui/prewritten_schedules.png new file mode 100644 index 00000000..0bde8489 Binary files /dev/null and b/docs/assets/images/multiturn_gui/prewritten_schedules.png differ diff --git a/docs/assets/images/multiturn_gui/select_kick_group.png b/docs/assets/images/multiturn_gui/select_kick_group.png new file mode 100644 index 00000000..81dd88f4 Binary files /dev/null and b/docs/assets/images/multiturn_gui/select_kick_group.png differ diff --git a/docs/assets/images/multiturn_gui/tunes_setup.png b/docs/assets/images/multiturn_gui/tunes_setup.png new file mode 100644 index 00000000..afd918bf Binary files /dev/null and b/docs/assets/images/multiturn_gui/tunes_setup.png differ diff --git a/docs/css/extra.css b/docs/css/extra.css index 192df0fc..48e1d002 100644 --- a/docs/css/extra.css +++ b/docs/css/extra.css @@ -72,7 +72,7 @@ a.cern_internal { .md-typeset .nodeco .leftFigure, .md-typeset .nodeco .rightFigure { - width:45%; + width:45%; margin: 0 0 0 0; display: inline-block; } @@ -90,8 +90,7 @@ a.cern_internal { } - -/* Not used but I'll leave it here in case someone wants to test it. Just put `cern` as primary in mkdocs.yml (jdilly) */ +/* 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; diff --git a/docs/guis/about.md b/docs/guis/about.md index b38dd00b..f6d59750 100644 --- a/docs/guis/about.md +++ b/docs/guis/about.md @@ -12,6 +12,7 @@ Of these, only the Beta-Beat GUI is currently developed by the team. ## Running the GUIs The GUIs can be started from your development environment or via deployed `.jnlp` from the archives: + === "Beta-Beat-OMC3" diff --git a/docs/guis/betabeat/optics_panel.md b/docs/guis/betabeat/optics_panel.md index 275ca256..c3b24fef 100644 --- a/docs/guis/betabeat/optics_panel.md +++ b/docs/guis/betabeat/optics_panel.md @@ -17,7 +17,7 @@ A wide variety of computed physical properties can be visualized across the enti ### Open Files - - TODO: Open and convert BBS files! [outputfiles](/guis/betabeat/betabeatsource.html#meaning-of-the-output-files) +- TODO: Open and convert BBS files! [outputfiles](betabeatsource.md#meaning-of-the-output-files) ## Segment-by-Segment: Segment Tab diff --git a/docs/guis/multiturn/excitation.md b/docs/guis/multiturn/excitation.md new file mode 100644 index 00000000..ab382c50 --- /dev/null +++ b/docs/guis/multiturn/excitation.md @@ -0,0 +1,243 @@ +# Performing Beam Excitation + +Once [all the checks](safety.md) have been performed, one can start measurements. +In the Multiturn GUI one can perform beam excitation with either the AC Dipole or the ADT, and both procedures are very similar. +Select either the `ACDipole` or `ADTACDipole` tab at the top of the GUI, depending on the desired excitation device. + +## Common Settings + +The following settings are set identically for both the AC Dipole and the ADT, in the left-hand side of the GUI: + +### Kick Groups + +Before exciting the beam, one should select or create a kick group. +A kick group collects measurements under a single name, gathers them in the logbook and makes it easier in the future to simultaneously load related kicks at once. + +??? tip "Kickgroups in JSON" + Each kick group also has a corresponding `.json` file in `/user/slops/data/LHC_DATA/OP_DATA/Betabeat/KickGroups/MULTITURN_ACQ_GROUPS`, in which the paths to the acquired turn-by-turn data and their individual `.json` files containing information about the excitation parameter is stored. + See also the [PyLHC tool for KickGroups][pylhc_kickgroups]{target=_blank}. + +Creating a new group is done by clicking the ++"Select Active group"++ button in the top left corner of the GUI, which will open the following dialog: + +
+
+ Select Active Group Dialog +
Select Active Group Dialog
+
+
+ +Typically one wants to create a new kick group. +To do so: + +- Click the ++"Create new Group"++ button at the bottom in the centre, which will open the following dialog, with a default naming scheme: + +
+
+ Create New Group Dialog +
Create New Group Dialog
+
+
+ +- Adapt the text entry under `Group Name` to reflect the measurements to be done in this group. +A good naming practice is to lead with the date and beam number as suggested, e.g. `YYYY-MM-DD_BEAM1_Measurement_description`. +Make sure to press `Enter` after typing the name. +Optionally add a description in the field below, and click the ++"Create"++ button. +Once created the new group will appear at the bottom of the list of available groups. + +- Select the new group and click the ++"Activate selected"++. +This should then create a new entry in the `LHC-OMC` logbook with information about the group, and all acquisitions done in this group will be logged to that entry automatically. + +### Tunes Setup + +The fields in this section expect the values of the horizontal and vertical tunes for the selected beam: + +
+
+ Tunes setup section +
Tunes Setup Section
+
+
+ +They should be the natural tunes used in the machine during measurements. +Either enter the values manually or, to enter the current tunes click the ++"Acquire QH"++ and ++"Acquire QV"++ buttons which will update the value to the current one measured with the BBQ. +These values can be manually refined if necessary. + +!!! warning "Unexpected Tunes" + This acquisition is also a sanity check for the state of the machine. + It can happen that the machine tunes are different from what is expected, e.g. because it was forgotten to revert them to the desired working point. + Such a mistake would easily be detected with a press of this button, which can prevent unexpected beam dumps. + __Use this feature!__ + +### Concentrator Settings + +These settings refer to the excitation to be performed. +The excitation device needs to know which bunches to excite and how long the excitation should last (in terms of turns). + +
+
+ Concentrator settings section +
Concentrator Settings Section
+
+
+ +- To select the bunches, click the ++"Select ..."++ button under the `Bunches` section, which opens the following dialog: + +
+
+ Bunch Selection Panel +
Bunch Selection Panel, Highlighting the Filled Slots in Green
+
+
+ +- Choose ++"Select Bunches with Beam"++ to select all bunches present in the machine, then click ++"OK"++ in the top right to validate the selection. +We typically do not inject bunches that won't be excited for optics measurements. +It is also possible to manually enter the (comma-separated) bunches to excite. + +- Set the number of turns to maintain the excitation for in the `Turns` field below. +These correspond to the excitation plateau length, and does not include ramp-up and ramp-down times. + +!!! tip "Excitation Duration" + For AC-Dipole measurements, this setting is typically __6600 turns__, while for ADT measurements it is typically __40,000 turns__. + Do not set these values higher than these for the respective measurements, as this can lead to the AC Dipole being damaged or the BPM buffers overflowing causing data to be lost or overwritten. + +## AC Dipole Excitation + +Selecting the `ACDipole` tab will change the right-hand side of the GUI window to display the following: + +
+
+ AC Dipole Tab +
AC Dipole Tab
+
+
+ +The two following settings need to be set before starting measurements. + +### Tune Deltas + +The excitation device drives the beam motion to a different frequency than the natural tune, which is determined by its offset from the natural tune, called the "tune delta". +Set these values in the `start` fields of the `Tune deltas` section, for both the horizontal and vertical planes (`Horizontal settings` and `Vertical settings` sections). + +!!! tip "Typical Default Values" + + We often perform optics measurements using the $Q_x = 0.28$, $Q_y = 0.31$ tunes, and the following tune deltas: + + - The horizontal tune delta is typically set to $\Delta Q_x = -0.01$. + - The vertical tune delta is typically set to $\Delta Q_y = 0.012$. + + These values result in typical excitation tunes of $Q_x^{driven} = 0.27$ and $Q_y^{driven} = 0.322$. + Depending on the specific measurements, other tunes and tune deltas may be required. + Always consult with the experts on shift if unsure about the values to use. + +The resulting driven tunes will be automatically computed and displayed under `Start Excitation tune`. +Make sure to double check these values, as a wrong setting can lead to a direct beam dump. + +### Kick Amplitudes + +Kick amplitudes determine the excitation strength. +Generally higher kicks lead to better signal-to-noise ration and allow measuring more faint beam modes and RDTs, but come with the risk of beam losses and therefore signal degradation, or even beam dump. + +Set the Kick Amplitudes by changing the value in `Excitation amplitude (%)` field, for both the horizontal and vertical planes (`Horizontal settings` and `Vertical settings` sections). +Always ask the experts on shift if unsure about the kick amplitudes to set. + +??? info "Kick Amplitudes at Injection" + + As the beams are not particularly hard at injection, small kick amplitudes lead to large peak to peak oscillations and we generally use small amplitudes. + A reasonable starting point is anywhere between __1%__ and __3%__, then going up slowly in steps of __2%__, until beam losses during kicks stop being reasonable. + +??? info "Kick Amplitudes in the Ramp" + + Performing kicks in the ramp requires careful planning. + As the beam energy increases, so does the beam rigidity harder and hence larger kick amplitudes can be used. + Nevertheless, careful monitoring of losses during acquisitions and adjusting the kick amplitudes accordingly is crucial. + + Typically, we prepare a table various kicks to be performed, indicating the time in the ramp, corresponding energy, phase knob setting, ATS factor, kick amplitude and optics file. + These should follow the various match points for the given energy ramp program, and the kick strengths should scale approximately linearly with the beam energy, starting from safe strength at injection. + + Most of these information can be found by opening a `CCM` then navigating to `LHC Control` -> `LHC Beam Control` -> `Settings` -> `Generation`. + Once the app has opened, select the `Edit types` tab then the `Beam Process Type` sub-tab. + Search & select the relevant beam process using the `Filter` field on the left, then click the big black ++"Show/Hide optic Table"++. + This will create a popup window displaying the match points during the ramp (if the BP is for a ramp) with their time, energy and optics file. + +
+
+ Beam Process Optics Table from LSA Generation App +
Beam Process Optics Table from LSA Generation App
+
+
+ + An __example table__ is shown below, generated for the proton-proton `RAMP-SQUEEZE-6.8TeV-ATS-2m-2025` beam process as in the picture above. + It is okay to copy-paste a previous table and update it. + + | Time | Energy (TeV) | Phase Knob | ATS | Kick Amplitude (%) | Optics | + |:-----:|:------------:|:----------:|:---:|:------------------:|:----------------------------------------:| + | 30s | 0.46 | 100% | 1 | 3 | R2025aRP_A11mC11mA10mL10m_PhaseKnob100On | + | 240s | 1.0 | 50% | 1 | 7 | R2025aRP_A11mC11mA10mL10m_PhaseKnob50On | + | 405s | 1.9 | 0% | 1 | 13 | R2025aRP_A11mC11mA10mL10m | + | 580s | 2.9 | 0% | 1 | 19 | R2025aRP_A700cmmC700cmA10mL700cm | + | 720s | 3.7 | 0% | 1 | 24 | R2025aRP_A370cmmC370cmA10mL370cm | + | 860s | 4.5 | 0% | 1 | 30 | R2025aRP_A200cmmC200cmA10mL200cm_1 | + | 1010s | 5.5 | 0% | 0.8 | 36 | R2025aRP_A200cmmC200cmA10mL200cm_0-8 | + | 1160s | 6.2 | 0% | 0.6 | 41 | R2025aRP_A200cmmC200cmA10mL200cm_0-6 | + | 1247s | 6.7 | 0% | 0.5 | 45 | R2025aRP_A200cmmC200cmA10mL200cm_0-5 | + + The values in this table are a good starting point, but it is important to monitor the losses and reduce the kick amplitudes accordingly. + +??? info "Kick Amplitudes at Top Energy" + + At top energy the increased beam rigidity allows us larger kick amplitudes. + A reasonable starting point is __5%__, then going up in steps of __5%__ until beam losses during kicks stop being reasonable. + Remember that it is very time-consuming to get back to this state when losing the beam at top energy, so monitor beam losses carefully and be reasonable with the kick increases. + +### Exciting the Beam + +Trigger an acquisition by clicking the yellow ++"Acquire with ACDipole excitation"++ button at the bottom left of the GUI. +The AC Dipole will arm, then kick the beam. +Make sure to have a `BLM Display` application open and to monitor the losses during that time. + +Afterwards, a new tab will open at the very top of the GUI to display the BPM measurements, which can be checked: a menu list lets one select any BPM from each beam, and view the recorded bunch centroid turn-by-turn data through the acquisition. + +??? info "Losses on Kicks" + Sometimes when increasing the kick amplitude, one will notice large losses. + In this case it is recommended to kick a couple times at this amplitude or just below to see if the losses reduce or are consistent. + + Should they reduce the beam might have just needed cleaning and one can increase the kick amplitude further. + Otherwise, stop increasing unless a beam dump is affordable. + Refer to the experts on shift if unsure about the losses, and whether the kick amplitude can be increased further. + +!!! danger "Do not Kick Both Beams Simultaneously" + + Firstly, kicking both beams simultaneously might exceed the losses threshold and lead to a beam dump. + + Secondly, triggering an acquisition will always turn off the tune feedback, radial loop, and orbit feedback for that beam. + Afterward, the system restores these to the exact state they were in before the acquisition. + This means if one kicks Beam 1 and quickly after Beam 2, Beam 1’s feedback loops will be left off! + This is because they were off when the system triggered the Beam 2 measurement, and the system restores the global state. + + As a rule of thumb, wait a few seconds in between kicking the two beams. + +## ADT AC-Dipole Excitation + +Selecting the `ADTACDipole` tab will change the right-hand side of the GUI window to display the following: + +
+
+ ADT AC-Dipole Tab +
ADT AC-Dipole Tab
+
+
+ +Currently ADT AC-dipole measurements are almost identical to the AC Dipole measurements, but due to the limitations of the magnet, cannot (yet) reach the same kick-strengths as the dedicated AC-dipole. +This deficit can be overcome in improving the signal-to-noise ratio through increased measurement lengths, i.e. up to __40,000 turns__. +Refer to the [AC Dipole Excitation](#ac-dipole-excitation) section above for the settings and steps. + +Trigger an acquisition by clicking the yellow ++"Acquire with ADT/AC excitation"++ button at the bottom left of the GUI. + +*[AC Dipole]: Alternating Current Dipole +*[ADT]: LHC Transverse Damper +*[BBQ]: Base Band Tune, a system used to continuously measure the beam's tunes +*[RDT]: Resonance Driving Term +*[BP]: Beam Process +*[beam dump]: Whenever the beams are sent out of the machine by the protection systems. It is equivalent to losing 100% of the beam at once. + +[pylhc_kickgroups]: https://pylhc.github.io/PyLHC/entrypoints/kickgroups.html diff --git a/docs/guis/multiturn/gui.md b/docs/guis/multiturn/gui.md index 109ebe08..ecff2d05 100644 --- a/docs/guis/multiturn/gui.md +++ b/docs/guis/multiturn/gui.md @@ -1 +1,40 @@ # The Multiturn GUI + +The Multiturn GUI provides functionality to set up and perform beam excitation with the AC Dipole or the ADT. +Excitations feature automatic saving of turn-by-turn BPM data. +This section will guide you through the GUI's layout and functionality. + +The GUI is a Java application and is typically run from the `CCM`: + +=== "From the CCM" + Have a [working `CCM`][gui_basics] running as `lhcop`, then navigate to `LHC Control` -> `LHC Beam Measurements` -> `Multiturn`. + +After opening, the GUI should look like this: + +
+
+ Multiturn GUI landing page +
Multiturn GUI Landing Page
+
+
+ +After opening, select at the top of the GUI either the `Acquisition BEAM1` or `Acquisition BEAM2` tab, depending on the beam you plan on measuring. + +!!! warning + It is recommended to not kick both beams from the same GUI, as it can lead to crashes and unexpected behavior. + Open a separate GUI for each beam. + + !!! tip "Closing Tabs" + To avoid kicking the wrong beam accidentally, one can drag and drop the tab for the unused beam out of the GUI. + +The following pages are available: + +- [Safety Checks](safety.md) for how important checks to be performed for measurements. +- [Beam Excitation](excitation.md) for how to excite the beam with either the AC Dipole or the ADT. +- [Scheduled Excitations](scheduler.md) for how to schedule and run AC-Dipole measurements with a set of predefined kick amplitudes. + +*[AC Dipole]: Alternating Current Dipole +*[ADT]: LHC Transverse Damper +*[BPM]: Beam Position Monitor + +[gui_basics]: ../about.md#running-in-the-ccc-in-2025 diff --git a/docs/guis/multiturn/safety.md b/docs/guis/multiturn/safety.md new file mode 100644 index 00000000..4e1951a8 --- /dev/null +++ b/docs/guis/multiturn/safety.md @@ -0,0 +1,110 @@ +# Safety Checks + +After selecting which beam to excite and acquire data for, the next step is to prepare the correct excitation settings and check for various state flags. +A first check to perform is that specific systems of the machine themselves are in the correct state to allow for beam excitation. +Some general checks are [available on this page](../../measurements/procedures/general_checks.md), and below are the specific checks to perform in the Multiturn GUI. + +!!! info "Good Red, Bad Red" + As one will see below, an indicator colored in red is not always a bad thing in the Multiturn GUI, due to conventions. + Check thoroughly the meaning of each indicator (also called flag) from the instructions below and make sure they are in a correct state. + +??? tip "Quick Recap" + + Please read the following sections carefully regarding the meaning of various flags. + Here is a quick recap of flags to check and the expected state for measurements: + + | Flag | Expected State | Notes | + |---------------------|:--------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------| + | **Beam Presence** | **Green** | Beam must be present. | + | **Setup Beam** | **Green** | Beam must be in Setup mode. | + | **ATLAS BCM** | **Red** | Should be masked (red). Ask EIC to contact ATLAS control room to mask BCM. | + | **Orbit Feedback** | **Red** | Orbit feedback should be off during measurements. Turned on/off automatically | + | **Radial Loop** | **Red** | Radial loop feedback should be off during measurements. Turned on/off automatically | + | **Tune Feedbacks** | **Red** | All tune feedbacks should be off during measurements. Turned off/on automatically. | + | **Chroma Feedback** | **Green** | Displays acceptable (or not) state of last measured chromaticity value. | + | **Landau Feedback** | **Red** or **green** | MOs usually off, unless you want to include their effect in the measurements. | + +## Flag Status + +At the top left of the GUI, a small section titled `Flag Status` displays simple main flags, as shown below: + +
+
+ Flag Status Section +
Flag Status Section
+
+ +Their meanings are as follows: + +- `Beam Presence`: indicates whether beam is circulating in the LHC, for the beam corresponding to the selected tab. This will be green if beam is present, red otherwise. __Always make sure it is green__. +- `Setup Beam`: indicates whether the beam status set by the operator is `Setup`. It will be green if the beam is in `Setup` mode, red otherwise. __Always make sure it is green__. +- `ATLAS BCM`: indicates whether the ATLAS BCM has been masked from the interlock. It is green if the ATLAS BCM is active, red otherwise. __Always make sure it is red__, as we measure in special beam conditions and want it to be masked. + +!!! info "Masking the BCM" + The ATLAS BCM can only be masked by ATLAS operators, from their control room. + Ask the current EIC to call the ATLAS control room and ask to mask their BCM before starting measurements. + +## Measurement Environment + +The `Measurement Environment` section just below provides a quick overview of the current machine feedback and damping states, as can be seen below: + +
+
+ Measurement Environment Section +
Measurement Environment Section
+
+ +### Feedback State + +- `OrbitOFF` (red) indicates that the orbit feedback is currently off and will appear green and change to `OrbitON` when it is active. +- `RadialLoopOFF` (red) shows the radial loop feedback is off; when on, it will appear green as `RadialLoopON`. + +??? info "What are those?" + The orbit feedback acts on correctors to keep the measured closed orbit to the reference one. + The radial loop feedback acts on the RF cavities to keep the beam's bunched in the center of their respective RF buckets. + +Both these feedback systems should be off during measurements, but on between kicks. +They will automatically be turned off when you start a measurement, and will be turned back on as soon as the acquisition is complete. + +### Tune Feedback State + +These buttons represent the state of the tune feedback for each beam and plane: + +- `B1 H`: Beam 1, Horizontal +- `B1 V`: Beam 1, Vertical +- `B2 H`: Beam 2, Horizontal +- `B2 V`: Beam 2, Vertical + +Red indicates the feedback is off, green indicates it is on. + +??? info "What are those?" + The tune feedback acts on dedicated quadrupole circuits in the arcs to keep the beam's tunes to the desired values. + +These feedback should be off during measurements, but on between kicks. +They will automatically be turned off when you start a measurement, and will be turned back on as soon as the acquisition is complete. + +### Chroma State & Landau Damping + +Similarly to the above, these flags display the state of the chromaticity for each beam and plane (for chroma state), or simply each beam (for landau damping). + + +- `Chroma State`: indicates the status of the last measured chromaticity value; displays as green if acceptable for optics measurements and red otherwise. __Always make sure it is green__. +- `Landau Damping`: refers to the powering of the MO circuits and is red when the MOs are off, green when they are powered. __It should usually be red__, but __can be green__ should you choose to include the effects of the MOs in your measurements. + +Talk to the experts on shift if you are unsure about these settings. + +??? info "What are those?" + The chromaticity state is a simple check on the beam's chromaticities vs acceptable values. + The Landau damping flags display the powering state of the octupole circuits in the arcs, which are used to damp the beam's coherent oscillations. + +## Kicker Keys + +In order to allow for beam excitation with the AC Dipole or the ADT, the physical key must be inserted in the nearby server room, and turned to correct setting. +Let the current EIC know which device you plan on using, and ask them to go insert the key in the server room. + +When all these checks are satisfied, proceed to the [next step of the measurement setup](excitation.md). + +*[ATLAS BCM]: ATLAS Beam Condition Monitor +*[EIC]: Engineer in Charge, operators of the LHC +*[AC Dipole]: Alternating Current Dipole +*[ADT]: LHC Transverse Damper diff --git a/docs/guis/multiturn/scheduler.md b/docs/guis/multiturn/scheduler.md new file mode 100644 index 00000000..8407c808 --- /dev/null +++ b/docs/guis/multiturn/scheduler.md @@ -0,0 +1,72 @@ +# AC Dipole Scheduler + +It is possible to automate the process of running measurements with different kick amplitudes using the AC Dipole Scheduler. +To access the scheduler, select the `ACDipoleScheduled` tab at the top of the GUI. +The right-hand side of the GUI window will then display the following: + +
+
+ AC-Dipole Scheduler Tab +
AC-Dipole Scheduler Tab
+
+
+ +## Creating a Kick Schedule + +A kick schedule can be created either manually or by loading a prewritten template schedule from file. +It is also possible to edit the template that is already present in the GUI by changing the `H Amplitude (%)` and `V Amplitude (%)` values in the table. +It is not possible to edit the `Index` column. +To reset this template table, select the button ++"Reload from Template"++ below the table. + +### Manual Creation + +To create a kick schedule from scratch, select the ++"Create Table"++ button below the table. +This will open the following dialog: + +
+
+ Create Kick Schedule Dialog +
Create Kick Schedule Dialog
+
+
+ +Set the start and end amplitudes as well as the step size in their respective fields. +Note that the start and end are inclusive, and entries would only be created up to the `End Amplitude`. +Click the ++"Create Kick Table"++ when done. + +This will bring you back to the previous view, with the `H Amplitude (%)` and `V Amplitude (%)` columns filled with the inferred kick steps. +The `Index` column is automatically filled with row numbers, don't mind it. + +For instance the scenario from the screenshot above will create a table with 4 rows - `3%`, `5%`, `7%`, and `9%` for both the horizontal and vertical kick amplitudes. + +### Prewritten Schedules + +To load a prewritten kick schedule, select the ++"Import .csv"++ button below the table. +This will open a file dialog to navigate and select the `.csv` file containing the kick schedule. + +There exists a small repository of prewritten kick schedules to be imported, which can be found in the `/user/slops/data/LHC_DATA/OP_DATA/Betabeat/MULTITURN_KICK_SCHEDULES/` directory + +
+
+ Prewritten Kick Schedules +
Prewritten Kick Schedules
+
+
+ +## Running a Kick Schedule + +Once a kick schedule is ready, it is necessary to setup the horizontal and vertical kick tune deltas just below. +Refer to the [common settings](excitation.md#common-settings) as well as the [AC-Dipole](excitation.md#ac-dipole-excitation) section on the previous page to set these. +Please also make sure the [safety checks](safety.md) have been performed. + +Click the yellow ++"Acquire with ACDipoleScheduled excitation"++ button at the bottom left of the GUI to start running the schedule. +This will an acquisition with the first row's settings, and will automatically move on to the next row once the AC Dipole is ready to kick again. + +!!! info "Cancelling a Schedule" + To cancel the acquisition while running a kick schedule, press the ++"Stop"++ button. + Note that if the scheduler has moved on to the next row and is already waiting for the AC Dipole to be ready when ++"Stop"++ is pressed, the schedule will stop after the next kick is complete and not before. + There is no way to cancel the next kick once it is waiting for the AC Dipole to be ready. + +It is also possible to run the kick schedule from a specific row, by selecting the given row in the table and then clicking the ++"Start from Selection"++ button. + +*[AC Dipole]: Alternating Current Dipole diff --git a/docs/guis/usage/ide_install.md b/docs/guis/usage/ide_install.md index f68bd5c0..fe574596 100644 --- a/docs/guis/usage/ide_install.md +++ b/docs/guis/usage/ide_install.md @@ -16,7 +16,7 @@ To be able to use the same IDE for different languages is also of value. ### VSCode -Do be able to use [VSCode][vscode_webpage]{target=_blank} as an IDE for Java, the [Extension pack for Java][vscode_java]{target=_blank} needs to be installed. +To be able to use [VSCode][vscode_webpage]{target=_blank} as an IDE for Java, the [Extension pack for Java][vscode_java]{target=_blank} needs to be installed. Additionally, the following settings need to be set in `Extensions -> Language Support for Java -> Gradle`: diff --git a/docs/logbook/LHC/2022_lhc.md b/docs/logbook/LHC/2022_lhc.md index 2b8df213..aed8cf77 100644 --- a/docs/logbook/LHC/2022_lhc.md +++ b/docs/logbook/LHC/2022_lhc.md @@ -5,12 +5,13 @@ Some entries (underlined) offer a tooltip when hovered, with a quick description The tables below can be sorted by clicking next to the column headers. !!! tip "Results Visualization" + Various results graphs and the scripts to make them are available in `lintrack`: + ``` /afs/cern.ch/eng/sl/lintrack/LHC_commissioning2022/ ``` - | Start Date | End Date | Shifts | Type | Shift Purpose | Logbook Link | |:----------------:|:----------------:|:----------:|:-------------:|:------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | 2022-04-23 08:00 | 2022-04-23 16:30 | 1H | Commissioning | Injection Linear Optics | [Shift Plan][inj_linear_optics]{target=\_blank .cern_login} / [Summary][inj_linear_optics_sum]{target=\_blank .cern_login} | diff --git a/docs/logbook/LHC/2025_lhc.md b/docs/logbook/LHC/2025_lhc.md index a272534b..0a687847 100644 --- a/docs/logbook/LHC/2025_lhc.md +++ b/docs/logbook/LHC/2025_lhc.md @@ -34,7 +34,7 @@ The tables below can be sorted by clicking next to the column headers. *[Injection Optics Global Corrs]: Test of tools. Rephased BPMs. Confirmed local coupling corrections, measured virgin machine at injection optics and did global corrections. Reached similar performance as previous years. First attempts of total phase corrections, used the ones from 2024. First use of new Segment-by-Segment. -*[Coupling Through Squeeze + dE/E]: Checked local coupling and local corrections at 2 m, 1.2 m, 30_60 cm and 18_60 cm (CMS $\beta$x_$\beta$y cm). While at 18_60cm, we attempted dE/E correction to no avail. We also slowly removed the triplet local corrections to see 275 % beta beating, again attempted dE/E correction to no avail. Tested Arc45 bump knobs and arc45+arc81 bump knobs. Tested effectiveness of local coupling knobs from 2024 (by reducing to 95%). +*[Coupling Through Squeeze + dE/E]: Checked local coupling and local corrections at 2 m, 1.2 m, 30_60 cm and 18_60 cm (CMS betax_betay cm). While at 18_60cm, we attempted dE/E correction to no avail. We also slowly removed the triplet local corrections to see 275 % beta beating, again attempted dE/E correction to no avail. Tested Arc45 bump knobs and arc45+arc81 bump knobs. Tested effectiveness of local coupling knobs from 2024 (by reducing to 95%). *[Injection and Ramp]: Arc-by-Arc coupling and global corrections at inj. Tried large amp kicks and failed. Beta-Beating during the ramp. Arc corrections. Global corrections at flat-top (2m). *[Measurements through the Squeeze]: Recheck 2m; Optics at 1.2m (global corrections, arc-by-arc coupling) taken from 2m work well; Optics at 60cm needs arc-by-arc coupling iteration; Optics at 18cm Kmod, local corrections, new B1 local correction. *[Energy Shift, NL at 18cm and local iterations]: Checking of Energy Shift. Beta-waist and arc-by-arc coupling at 18cm. b4 corrections at 18cm. diff --git a/docs/measurements/procedures/general_checks.md b/docs/measurements/procedures/general_checks.md index c344f31e..d9d0d5b3 100644 --- a/docs/measurements/procedures/general_checks.md +++ b/docs/measurements/procedures/general_checks.md @@ -5,6 +5,10 @@ Here are a few checks to perform before starting measurements. These are updated as much as possible for Run 3 values. +!!! tip "Multiturn Application" + Measurements are performed using the Multiturn application. + [See here](../../guis/multiturn/gui.md) for a full section about this GUI and how to use it. + - [ ]
Make Sure Intensity Is below $10^{10}$ppb until Local Corrections Are In

After local corrections, we can move to having 3 bunches (each below $10^{10}$ppb) evenly spaced along the ring.

@@ -14,7 +18,7 @@ These are updated as much as possible for Run 3 values.

- [ ]
Mask the Appropriate BLMs -

It is possible tp "mask" some of the BLMs, which means making sure they won't trigger any beam dump. They are essentially ignored in the interlocked system when masked. +

It is possible to "mask" some of the BLMs, which means making sure they won't trigger any beam dump. They are essentially ignored in the interlocked system when masked.

- [ ]
Turn Off the Landau Octupoles @@ -40,6 +44,10 @@ These are updated as much as possible for Run 3 values.

There should be a pre-made setting for this.

+- [ ]
Deactivate Injection Protection +

Only if measuring at injection, ask the EIC to deactivate this setting. +

+ !!! note "Timing Tables" Normally, starting in Run 3 the timing tables are automatically loaded by the Multiturn application. It can't hurt to check that they are, though. @@ -89,7 +97,7 @@ Here are some general checks on should always keep in mind when performing measu ## General Corrections Caveats - [ ]
Beware of the Corrections Signs - For a quick (but rough) reference see [this old note][polarity_acc_note] [this 2022 presentation][riccardo_lhc_polarity] by Riccardo. + For a quick (but rough) reference see [this old note][polarity_acc_note]{target=_blank} and [this 2022 presentation][riccardo_lhc_polarity]{target=_blank} by Riccardo. - [ ]
Calculated Global Corrections

The calculated global correction are really corrections and should be trimmed in with a positive sign.

diff --git a/docs/packages/pylhcsubmitter/job_submitter.md b/docs/packages/pylhcsubmitter/job_submitter.md index 52d5323e..a9e9c6ed 100644 --- a/docs/packages/pylhcsubmitter/job_submitter.md +++ b/docs/packages/pylhcsubmitter/job_submitter.md @@ -67,7 +67,7 @@ Parameters in the template script (see below) are indicated in the `%(PARAMETER) ??? success "Recommended Method" Starting studies from Python is the recommended method, especially with a high number of parameters. - As we will see later on, other methods methods require all parameter values to be written down while the pythonic way allows for an easier and clearer definition of the parameter space. + As we will see later on, other methods methods require all parameter values to be written down while the pythonic way allows for an easier and clearer definition of the parameter space. The parametrizing of simulations and submission to `HTCondor` through Python is as simple as calling the `main` function of the submitter with the desired parameters. See below: @@ -190,7 +190,7 @@ After submitting our tune sweep studies, we can check the status of our jobs via The output should look something like this:
- + Jobs in the condor queue
condor_q: Shows the jobs in the condor queue.
diff --git a/mkdocs.yml b/mkdocs.yml index 04d2c041..0093702f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -32,9 +32,23 @@ theme: - content.action.edit # editing button on the pages is opt-in since v9 - content.code.copy # copy button for code blocks palette: - scheme: preference - primary: indigo - accent: amber + + # Palette toggle for light mode + - scheme: default + primary: indigo + accent: amber + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + # Palette toggle for dark mode + - scheme: slate + primary: cern + accent: amber + toggle: + icon: material/brightness-4 + name: Switch to light mode + font: text: Roboto code: Roboto Mono @@ -179,6 +193,9 @@ nav: - About: guis/rdt_feeddown/gui.md - Multiturn GUI: - About: guis/multiturn/gui.md + - Safety Checks: guis/multiturn/safety.md + - Beam Excitation: guis/multiturn/excitation.md + - Scheduled Excitations: guis/multiturn/scheduler.md - Usage and Development: - Guidelines: guis/usage/guidelines.md - IDE Setup: guis/usage/ide_install.md