- Added:
bad_bpms_summary
script: Collect and summarize the bad BPMs from GUI runs.
-
Added K-Modulation tools:
kmod_importer
: Main function to call the following scripts in succession.kmod_averages
: Combine k-modulation results into a single file.kmod_lumi_imbalance
: Calculate the luminosity imbalance IP1 / IP5 from k-modulation results.kmod_import
: Import k-modulation results into anoptics_measurements
directory asbeta_kmod_().tfs
file.
-
Removed:
- Old k-modulation scripts: Functionality is either in k-mod GUI or in newly added scripts.
- Fixed:
- Setting sparkprops wrong in
knob_extractor
fixed.
- Setting sparkprops wrong in
-
Added:
- Add the ability to calculate a deltap/p offset caused by a change in orbit.
- Add the ability to use
response_madx
to calculate the updated response matrix for the global correction. - Tests for the calculation of the deltap/p and corresponding correction.
- Tests for the calculation of the updated response matrix for the global correction.
-
Fixed:
- Fixed the
response_twiss
when updating the response matrix when calculating the global correction.
- Fixed the
-
Added:
- Optics Measurements:
analyse_dpp
parameter, to analyse only files with a specific DPP for tune, phase and (C)RDTs.
- Optics Measurements:
-
Fixed:
- Uncompensated Phase calculations with
Equation
compensation are now actually uncompensated when passed on to thecoupling
module.
- Uncompensated Phase calculations with
- Fixed:
- Temporary hack to fix
knob_extractor
in CCC.
- Temporary hack to fix
-
Fixed:
- Fixed
DepracationWarning
s related datetime operations. - Fixed
DeprecationWarning
occuring due to the use of oldnumpy
functions. - Fixed
FutureWarning
happening during edge-cases of dataframe concatenation by performing checks ahead of time. - Fixed
FutureWarning
s occuring due to deprecatedpandas.Series
accesses. - Fixed
UserWarning
occuring when wrongly setting ticks and labels for correction plots.
- Fixed
-
Changed:
- Masked
NaturalNameWarning
s happening during HDF5 tables operations, as the use of names such askq4.r8b2
is not avoidable andpandas
properly handles access operations for us. - Masked
UserWarning
s happening during plotting for operations that are explicitely demanded. - Intercept
RankWarning
which can happen during apolyfit
of data and re-emit as log message. - Intercept
OptimizeWarning
happening when the covariance parameters could not be estimated inkmod
analysis and re-emit as log message. - Intercept
OptimizeWarning
happening when the covariance parameters could not be estimated inrdt
analysis and re-emit as log message.
- Masked
-
Added:
- Global Correction for LHC:
- The correction variables in the LHC accelerator class are now handled differently internally, allowing new variable classes to be added to each lhc-year and user-given files in the model-directory.
- Variable categories
MQM_ALL
added to all LHC years. - Variable categories
MQM_INJ_2024
andMQM_TOP_2024
added to LHC 2024. - Adding a "-" in front of a given correction variable name removes this variable from the correction. Does not work for whole variable categories.
- Tests for running
global_correction
withomp
andpinv
correction methods.
- Global Correction for LHC:
-
Fixed:
-
Fixed:
- Measure optics skips now using the ERRAMP column, when not present, i.e. when cleaning deactivated (#451)
hole_in_one
now allowspathlib.Path
objects in addition tostr
(#452)- Pandas to numpy dtype conversions bug (#453).
- Special phases writing now skipped when accelerator has no special phases (#454).
- RDT/CRDT calculation now not crashing when also giving off-momentum files; but only calculated from on on-momentum files (#456).
-
Added:
- Tests for full runs
hole_in_one
with on-momentum and off-momentum files.
- Tests for full runs
- Fixed:
- Add DOROS BPMs to
twiss.dat
. - Some Pandas
FutureWarning
s,DeprecationWarning
s andPerformanceWarning
s
- Add DOROS BPMs to
- Fixed:
- Numpy's
ComplexWarning
was not part of main namespace in v2.0, so we import it directly
- Numpy's
- Fixed:
- The package is now fully compatible with
numpy 2.x
onPython >= 3.10
thanks to apytables
compatibility release. - The package still limits to
numpy < 2
onPython 3.9
due to the lack of compatibility frompytables
on this versions.
- The package is now fully compatible with
-
PINNING NUMPY TO < 2.0.0
-
Changed:
- Model creation:
- removed hard-coded
knobs.madx
fromlhc
- removed
corrections.madx
fromlhc
best-knowledge model - zip up log-output files in
response_madx.py
- keep 0th output file in
response_madx.py
for reference of the model setup - Sequence and modifiers use the acc-models symlink in madx-jobs where applicable.
- removed hard-coded
- Model creation:
-
Fixed:
- LHC Knobs: Fixed typo "MQSOR" to "MQSORG" in LHC Beam 2 coupling knobs.
-
CI:
- Dropped python 3.8
- Added:
- Linfile Updater:
keep
-flag to keep names and option to clean manually between limits.
- Linfile Updater:
-
Added:
- Knob Extractor: Lumiscan Knob
-
Fixed:
- BBS converter: fixed closed orbit units
- Optics: Pandas indexing error in DPP
- Added:
- complete overhaul of model creation, uses now
acc-models
for LHC, PS and PSB and prints useful information about available model parameters. Can load from either a user defined path (--path <PATH>
) or from the afs copy of acc-models (--afs
)
- complete overhaul of model creation, uses now
- Fixed:
tbt_converter
now also passes given output format to writer when running without noise.
- Added to harmonic analysis:
suffix
input parameter: adds suffix to output files, which e.g. allows running the same file with different parameters without overwriting it.bunch_ids
input parameter: in case of multibunch-files only analyse these bunches. If not given, all bunches will be analysed, as before.
- Fixed:
- bug in beta from phase (3BPM method) that calculated too high errors for first and last BPMs
- Fixed:
- compatibility with matplotlib 3.8
- skipping important phase advances for HL-LHC (as not defined yet)
- allowing responses with delta_k < 1e-6 for full-response creation
-
Fixed:
- Plot Optics: making normalized dispersion plot a special case.
-
Added:
- Plot Optics: optional input "--labels" to manually set the legend-labels.
-
Fixed:
- OptionalString: 'None' as input is converted to None.
- Missing Kerberos config added to MANIFEST for packaging.
- Plot Optics plots now correct error-column, e.g. for beta-beating.
- Added warnings/errors for too few bpms in N-BPM/3-BPM methods.
- Added navbar to sphinx documentation.
-
Tests:
- Added test for the classes in omc3.plotting.utils.windows
- Added:
omc3.plotting.utils.windows
: Qt-based windows and widgets for matplotlib-figure organization.- Using the new windows in
omc3.plotting.plot_checked_corrections
andomc3.plotting.plot_tfs
-
Added:
omc3.check_corrections
: A new feature to check the validity of corrections.omc3.plotting.plot_checked_corrections
: Function to plot the checked corrections.- Unified optics-columns naming in
omc3.definitions.optics
(but not yet propagated through the code) - Function to calculate RMS in
omc3.utils.stats.rms
.
-
Fixed:
- Some minor bugs with fake datatypes
- Doc of
ArrayType
typehints
- Added:
- RBAC token provider in omc3.utils.rbac
- pylogbook wrapper in omc3.scripts.create_logbook_entry
- Fixed:
- Changed all
pandas
/tfs-pandas
append()
andjoin()
toconcat()
- Moved
InputFiles
into separate module
- Changed all
- Fixed:
- Added missing columns to coupling in BBS-OMC3 converter
-
Added:
- Amplitude Detuning plots: Switch to plot only with/without BBQ correction.
-
Fixed:
- Second Order Amplitude Detuning fit now working
- Correct print/calculation of second order direct terms for forced kicks in plot-labels.
- Added:
- Tune error based on deviation of filtered BBQ data to the moving average (over moving average window)
- Action error calculated from error on the spectral line (which in turn is the same as NOISE)
- Bugfixes:
- correction: fullresponse is converted to Path.
- fake measurement from model: dont randomize errors and values by default.
- Added to
knob_extractor
:- proper state extraction.
- IP2 and IP8 separation/crossing variables.
- Fixed:
- phase filtering for coupling calculation will not forget columns
- Added:
- pandafied
knob_extractor
internally and python output
- pandafied
- Added:
- cleaned logging in
knob_extractor
- cleaned logging in
- Added:
- tbt output datatype for converter.
- Added:
- The
knob_extractor
script to get LHC knob values fromNXCALS
at a given time
- The
-
Bugfix:
- Correction Dataframe initialized as float (before as int)
-
Added:
- Plotting: Transposed legend order
- Plotting: Create markers from any text
- Added:
- updated to turn_by_turn v0.4.0: Includes SPS reader
- Added:
- The resonance lines can now be sought and detected up to arbitrary order during the frequency analysis, with the
resonances
argument / flag ofharpy
. - The RDT components can now be calculated up to arbitrary order in the optics measurements with the
rdt_magnet_order
argument / flag ofoptics
. Note that the relevant resonance lines for this order should have been detected byharpy
beforehand.
- The resonance lines can now be sought and detected up to arbitrary order during the frequency analysis, with the
- Fixed:
- Fixed macros and knobs usage in model_creator for Run 3 optics
- Getting new BBQ data ended in a key-error.
- Better KeyError Message for Exciter-BPM not found.
-
Added:
- 2D amplitude detuning analysis and 3D plotting of the results
- Converter for amp.det. analysis from bbs to omc3
- general typehinting/doc/unification of entrypoint parameters/saving
-
Fixed:
- Switched action-tune planes in ampdet-kick file header-names
- Deprecated way of pandas indexing (
.loc
for nearest points) - Allow different sized kick-files for amp.det. analysis
- Added:
- Linfile cleaning script.
- Added:
- There is now an option,
coupling_pairing
, for the BPM pairing in coupling calculation, to let the user choose the number of BPMs instead of the usual "best candidate" method.
- There is now an option,
- Fixed:
- Only perform index merging on the
NAME
column during coupling calculation. This solves an (at the moment) un-understood issue where some BPMs would have differentS
values in different files.
- Only perform index merging on the
- Fixed:
- An additional knob and macros definition file has been added to reflect the knobs used by OP in the LHC Run 3. This makes sure any
omc3.model_creator
run for the LHC withyear >= 2022
has correct knobs.
- An additional knob and macros definition file has been added to reflect the knobs used by OP in the LHC Run 3. This makes sure any
- Miscellaneous:
- The jpype1 package is not a default dependency anymore, and is instead included as a dependency in the cern and test extras. Its import is mocked where needed in omc3.
- Fixed:
- The coupling calculation now includes additional columns in the output dataframes, which were missing while being needed later on by the correction calculation.
- Fixed:
- Sequences for K-Modulation are now included in PyPi package
- Bug fixed where default errors in K-Modulation would not have been taken into account
- Dummy Release for Zenodo
-
Added:
- global correction framework
- global correction entrypoint
- response matrix creation in madx and analytically
- response read/write functions in hdf5
- madx sequence evaluation
- model appenders
- model differences functions
- script to fake measurement from model
- more usages of constants for strings (e.g. column names)
- introducing pathlib.Path in some places
- output-paths in model job-files are relative
- global correction framework
-
Fixed:
- Matplotlib warnings for
set_window_title
- excluded Windows and MacOS py3.9 from normal testing, due to installation issues of pyTables
- model creation accepts relative and absolute paths
- Matplotlib warnings for
- Added:
- script to merge kmod results and calculate imbalance
- fixture for temporary/non-temporary test output folder
- scripts to documentation
- Added:
- tfs-plotter
- optics-measurements plotter
- Added:
- lin-file natural tune updater
- Added:
- amplitude detuning analysis
- amplitude detuning and bbq plotting
- time tools
- plotting helpers
- Distinction between
BasicTests
andExtended Tests
-
Updated and moved main functionalities from python 2.7
- Madx wrapper
- Frequency Analysis of turn by turn
- Optics measurement analysis scripts
- Accelerator class and Model Creator
- K-mod
- Spectrum Plotting
- Turn-by-Turn Converter
-
setup.py
and packaging functionality -
Automated CI
- Multiple versions of python
- Accuracy tests
- Unit tests
- Release automation