Previously only y-errors were rendered. The IPC data file format now
includes x-errors per point (x, xPosErr, xNegErr, y, yPosErr, yNegErr,
...). Both the live canvas (PMuppCanvas) and the ROOT macro exports
(GUI and script path) propagate x-errors to TGraphAsymmErrors;
x-errors default to 0.0 when the parameter carries none.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Variables can now be computed by an embedded Python3 interpreter in addition
to the Boost.Spirit X3 expression engine. A <python> ... </python> block
receives all collection parameters as per-run lists (bare names, plus
par[]/parErr[] dictionaries as a fallback for names that are not valid Python
identifiers such as 'lambda') and must assign <name> and <name>Err; errors are
user supplied. Works both in the GUI variable dialog and in scripts.
The feature is optional and only enabled when ROOT is built with TPython
(CMake target ROOT::ROOTTPython); otherwise it compiles out. See MUPP_PY.README
for ROOT configure requirements and usage.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add ${HDF5_LIBRARIES} to PMusr link dependencies so HDF5 C++ symbols
(H5::DataType, H5::PredType, etc.) used in PRunDataHandler.cpp resolve.
- Add ${FFTW3_INCLUDE} to musrRootValidation and write_musrRoot_runHeader
include paths; both pull in PMusr.h which transitively includes fftw3.h.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add a Python-based test script that runs musrfit -c on each example
msr-file, extracts the maxLH or chisq value, and checks it against
a reference value with a relative tolerance of 1e-4. Covers all 13
example msr-files (single histogram and asymmetry fits).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generate git-revision.h into CMAKE_BINARY_DIR/src/ (which is in the
include path) instead of the source tree. Remove the header from
add_executable() source lists, and add missing add_dependencies on
git_revision for all Qt5/Qt6 targets.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace execute_process with add_custom_target so the git revision
check runs on every build, not just on cmake configure.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>