Commit Graph

2374 Commits

Author SHA1 Message Date
suter_a 47ff6d5de7 mupp: expose all collections inside a <python> block (coll[]/collErr[]).
A <python> variable block previously saw only the parameters of the single
collection the variable is linked to via 'col', injected as bare names plus
par[]/parErr[]. To compute variables for several collections one therefore
needed a separate block per collection.

Now every loaded collection is additionally injected as coll[]/collErr[]
dictionaries, addressable both by integer index (matching 'col <idx>' /
'select <idx>') and by collection name; index and name keys reference the same
per-parameter dict. A single block placed after all 'var = python' declarations
can thus compute - and combine - variables for any collection, e.g.
coll[0]['Sigma'] or coll['NAME.db']['Sigma'].

The bound-collection bare names / par[] / parErr[] are unchanged, so existing
scripts and GUI variables keep working. The collection list is threaded through
PmuppScript::var_cmd and the GUI add()/check() paths into PVarHandler.

Verified: a one-block script using both an index key and a name key reproduces
the numeric output of the equivalent two-block script bit-for-bit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 15:12:25 +02:00
suter_a c1727a5f19 mupp: pair each python variable with its own <python> block.
getPythonBlock() always returned the first <python> ... </python>
entry of the script, so when several 'var X = python' declarations
each had their own block, every declaration after the first one
re-ran the first block and the read-back of the requested variable
failed. Thread the script index through var_cmd into getPythonBlock,
which now scans from that position onwards. Each declaration is
paired with the next block in script order.
2026-05-29 15:12:05 +02:00
suter_a 625f7e6b64 mupp: add x-axis error bar support to all plot outputs.
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>
2026-05-29 15:11:53 +02:00
suter_a 45b86af572 mupp: optional Python3 interface for variables via ROOT TPython.
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>
2026-05-29 15:09:40 +02:00
suter_a 0ce0f4fcce mupp: RUN is now treated as a variable. 2026-05-20 13:13:38 +02:00
suter_a fe902ff62c proper handling in dump_header of TDirectory in combination with the summary option. 2026-05-01 13:11:51 +02:00
suter_a bde0049f98 fix wrong install path for macOS Qt-based applications. 2026-04-21 10:45:36 +02:00
suter_a ab590a00c4 remove left-overs. 2026-04-21 10:24:26 +02:00
suter_a e60a835f67 more improvements on the cmake build system. 2026-04-21 10:22:15 +02:00
suter_a 9178b5ef0e work on cleaner cmake. 2026-04-21 10:17:33 +02:00
suter_a cc77e2ab53 MusrRoot: XML-schema evaluation files are moved to https://doi.org/10.5281/zenodo.19593555. to have a DOI and not be depend on a shaky URL 2026-04-21 10:09:59 +02:00
krieger_j cfec8cefb7 adds installation of musredit as a unix app 2026-04-21 10:09:25 +02:00
suter_a d1d2c99bab added PyScripts/nexus_muon_validator.py to nexus. 2026-04-21 10:09:14 +02:00
suter_a 3255e9ef6d remove obsolate test/nexus 2026-04-21 10:09:01 +02:00
suter_a 30c17e5431 suppress warning missing deadtime correction if not relevant. 2026-03-03 08:58:21 +01:00
suter_a 8619865dde fix linker errors: add HDF5 C++ lib and FFTW3 include paths
- 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>
2026-03-03 08:58:11 +01:00
suter_a 8cb7da2e2a adopted to new hdf4/5 approach of NeXus. 2026-03-02 13:46:47 +01:00
suter_a c0ad630740 add musrfitConfig.cmake, etc. for musrfit. 2026-03-02 11:07:56 +01:00
suter_a cce7366799 fixed an index by one offset issue. 2026-03-02 11:06:33 +01:00
suter_a 9ec28171c8 make sure that the requested pointer is not a nullptr. 2026-03-02 11:06:24 +01:00
suter_a b1bce70d63 fix Boost_INCLUDE_DIR -> Boost_INCLUDE_DIRS 2026-03-02 11:06:04 +01:00
suter_a 403aa07993 adopted ChangeLog. Fixed a minor issue in PTextEdit. Adopted ctests for the new NeXus handling. 2026-03-02 11:00:44 +01:00
suter_a 17fcaa7c69 adopted the PNeXus lib such that the class naming scheme is self-consistent. 2026-03-02 10:55:43 +01:00
suter_a ee3fc2e42a warning that deadtime correction estimate is not yet implemented. I am not even sure this would be a good feature. 2026-03-02 10:49:45 +01:00
suter_a 3727190efa full implementation of the deadtime correction from file for PRunAsymmetryRRF. 2026-03-02 10:49:34 +01:00
suter_a 16f88b17e4 full implementation of the deadtime correction from file. 2026-03-02 10:47:52 +01:00
suter_a e432a26b4c added a warning if deadtime correction cannot be carried out (missing parameters, etc.) 2026-03-02 10:47:40 +01:00
suter_a 36168dc3a1 add DeadTimeCorrection to PRunAsymmetry - no ADDRUN handling yet. 2026-03-02 10:47:28 +01:00
suter_a 85eba63ed9 PRunSingleHistoRRF: add DeadTimeCorrection, and improve ADDRUN readability 2026-03-02 10:47:15 +01:00
suter_a 7d102a2604 move DeadTimeCorrection to PRunBase. Make ADDRUN part in PrepareData more readable. 2026-03-02 10:46:39 +01:00
suter_a b255dad6a2 filter out '\r' and '\n' from command string (macOS issue). 2026-02-13 14:05:14 +01:00
suter_a db69044747 fix git-revision.h generation: output to build tree and add missing dependencies
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>
2026-02-13 14:05:02 +01:00
suter_a cb171d9800 generate git-revision.h at build time instead of configure time
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>
2026-02-13 14:01:17 +01:00
suter_a 8f5b48f013 proper TDirectory handling for the histos. 2026-02-13 14:00:59 +01:00
suter_a 7e4b136561 fixed missing TDirectory handling of RunSummary in dump_header.cpp 2026-02-13 14:00:48 +01:00
suter_a 0eb90caf9a 2nd spot for cmake version check for policy setting. 2026-02-13 14:00:30 +01:00
suter_a 9a48487220 updated the copyright info. 2026-02-13 13:59:49 +01:00
suter_a b00fb31dc3 set cmake Boost find policy. 2026-02-13 13:56:34 +01:00
suter_a 69f60c6877 further playing with the Prefs dialog. 2026-01-21 12:26:20 +01:00
suter_a 8b7e44ef39 further playing with the Prefs dialog. 2026-01-21 12:26:11 +01:00
suter_a 8843b46460 further playing with the Prefs dialog. 2026-01-21 12:26:02 +01:00
suter_a 9f9e3d4f7f increased size of prefs dialog, since it seems too small for the newest qt6 version, especially on macOS. 2026-01-21 12:25:53 +01:00
suter_a 957d95d352 more detailed NeXus support message. 2026-01-20 08:26:31 +01:00
suter_a 1e60d92814 spirit classic/qi -> x3. Increase musrfit and library version to 1.9.10/1.7.0. 2026-01-16 10:01:33 +01:00
suter_a d5ec51c9bd for tests/spirit: replace 'nil' by 'leer' since 'nil' leads to conflict with macOS. 2026-01-16 10:01:21 +01:00
suter_a 70da2f83ea replace 'nil' by 'leer' since 'nil' leads to conflict with macOS. 2026-01-16 10:01:07 +01:00
suter_a 25205875de add missing header files for install for cmake. 2026-01-16 10:00:56 +01:00
suter_a 19362bd088 add missing header file PFunctionsAst.h 2026-01-16 10:00:47 +01:00
suter_a 4cd4b7878f modernize musrfit function handling using spirit x3 instead of spirit classic now. 2026-01-16 10:00:36 +01:00
suter_a 046ab98144 migrated spirit qi grammar to x3 of mupp variable handling. 2026-01-16 10:00:24 +01:00