From 55b5788506ee701762a20647ae721f00acedea4d Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Thu, 28 Jun 2018 13:17:43 +0200 Subject: [PATCH 01/11] added MODULE to root_generate_dictionary in order to get the proper name scheme. --- src/classes/CMakeLists.txt | 25 +++++++++++-------- src/external/BMWtools/CMakeLists.txt | 5 ++-- src/external/MagProximity/CMakeLists.txt | 10 +++++--- src/external/MusrRoot/CMakeLists.txt | 5 ++-- src/external/Nonlocal/CMakeLists.txt | 10 +++++--- src/external/TLemRunHeader/CMakeLists.txt | 12 +++++---- src/external/libBNMR/CMakeLists.txt | 5 ++-- .../libCalcMeanFieldsLEM/CMakeLists.txt | 5 ++-- .../libFitPofB/classes/CMakeLists.txt | 15 ++++++----- src/external/libGapIntegrals/CMakeLists.txt | 5 ++-- src/external/libLFRelaxation/CMakeLists.txt | 5 ++-- .../libPhotoMeissner/classes/CMakeLists.txt | 10 +++++--- .../libSpinValve/classes/CMakeLists.txt | 10 +++++--- src/external/libZFRelaxation/CMakeLists.txt | 5 ++-- src/musredit_qt5/mupp/plotter/CMakeLists.txt | 2 ++ 15 files changed, 78 insertions(+), 51 deletions(-) diff --git a/src/classes/CMakeLists.txt b/src/classes/CMakeLists.txt index 64a03d90..f64feace 100644 --- a/src/classes/CMakeLists.txt +++ b/src/classes/CMakeLists.txt @@ -7,26 +7,31 @@ root_generate_dictionary( PFourierCanvasDict -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PFourierCanvas.h LINKDEF ${MUSRFIT_INC}/PFourierCanvasLinkDef.h + MODULE PFourierCanvas ) root_generate_dictionary( PMusrCanvasDict -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PMusrCanvas.h LINKDEF ${MUSRFIT_INC}/PMusrCanvasLinkDef.h + MODULE PMusrCanvas ) root_generate_dictionary( PMusrT0Dict -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PMusrT0.h LINKDEF ${MUSRFIT_INC}/PMusrT0LinkDef.h + MODULE PMusrT0 ) root_generate_dictionary( PStartupHandlerDict -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PStartupHandler.h LINKDEF ${MUSRFIT_INC}/PStartupHandlerLinkDef.h + MODULE PStartupHandler ) root_generate_dictionary( PUserFcnBaseDict -I${FFTW3_INCLUDE_DIR} ${MUSRFIT_INC}/PUserFcnBase.h LINKDEF ${MUSRFIT_INC}/PUserFcnBaseLinkDef.h + MODULE PUserFcnBase ) #--- create pkg-config info --------------------------------------------------- @@ -140,16 +145,16 @@ install(TARGETS PMusr DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPFourierCanvasDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPFourierCanvasDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvasDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvasDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0Dict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0Dict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandlerDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandlerDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBaseDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBaseDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPFourierCanvas_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPFourierCanvas.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvas_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvas.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBase_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBase.rootmap DESTINATION lib ) diff --git a/src/external/BMWtools/CMakeLists.txt b/src/external/BMWtools/CMakeLists.txt index a8e9b9cb..3341b698 100644 --- a/src/external/BMWtools/CMakeLists.txt +++ b/src/external/BMWtools/CMakeLists.txt @@ -9,6 +9,7 @@ root_generate_dictionary( -I${MUSRFIT_INC} BMWStartupHandler.h LINKDEF BMWStartupHandlerLinkDef.h + MODULE BMWStartupHandler ) #--- create pkg-config info --------------------------------------------------- @@ -53,8 +54,8 @@ install(TARGETS BMWtools DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandlerDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandlerDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandler_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libBMWStartupHandler.rootmap DESTINATION lib ) diff --git a/src/external/MagProximity/CMakeLists.txt b/src/external/MagProximity/CMakeLists.txt index c2c47b14..79a4ba64 100644 --- a/src/external/MagProximity/CMakeLists.txt +++ b/src/external/MagProximity/CMakeLists.txt @@ -8,12 +8,14 @@ root_generate_dictionary( -I${MUSRFIT_INC} PMagProximityFitter.h LINKDEF PMagProximityFitterLinkDef.h + MODULE PMagProximityFitter ) root_generate_dictionary( PMPStartupHandlerDict -I${MUSRFIT_INC} PMPStartupHandler.h LINKDEF PMPStartupHandlerLinkDef.h + MODULE PMPStartupHandler ) #--- create pkg-config info --------------------------------------------------- @@ -55,10 +57,10 @@ install(TARGETS PMagProximityFitter DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitterDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitterDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandlerDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandlerDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitter_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPMagProximityFitter.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandler_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPMPStartupHandler.rootmap DESTINATION lib ) diff --git a/src/external/MusrRoot/CMakeLists.txt b/src/external/MusrRoot/CMakeLists.txt index 91e1c52a..b2112b17 100644 --- a/src/external/MusrRoot/CMakeLists.txt +++ b/src/external/MusrRoot/CMakeLists.txt @@ -3,6 +3,7 @@ #--- generate necessary dictionaries ------------------------------------------ root_generate_dictionary( TMusrRunHeaderDict TMusrRunHeader.h LINKDEF TMusrRunHeaderLinkDef.h + MODULE TMusrRunHeader ) #--- create pkg-config info --------------------------------------------------- @@ -38,8 +39,8 @@ install(TARGETS TMusrRunHeader DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeaderDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeaderDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeader_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTMusrRunHeader.rootmap DESTINATION lib ) diff --git a/src/external/Nonlocal/CMakeLists.txt b/src/external/Nonlocal/CMakeLists.txt index 815615f4..13127cc3 100644 --- a/src/external/Nonlocal/CMakeLists.txt +++ b/src/external/Nonlocal/CMakeLists.txt @@ -9,9 +9,11 @@ root_generate_dictionary( -I${MUSRFIT_INC} PNL_PippardFitter.h LINKDEF PNL_PippardFitterLinkDef.h + MODULE PNL_PippardFitter ) root_generate_dictionary( PNL_StartupHandlerDict PNL_StartupHandler.h LINKDEF PNL_StartupHandlerLinkDef.h + MODULE PNL_StartupHandler ) #--- create pkg-config info --------------------------------------------------- @@ -53,10 +55,10 @@ install(TARGETS PNL_PippardFitter DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitterDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitterDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandlerDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandlerDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler.rootmap DESTINATION lib ) diff --git a/src/external/TLemRunHeader/CMakeLists.txt b/src/external/TLemRunHeader/CMakeLists.txt index d3bfb436..d361da50 100644 --- a/src/external/TLemRunHeader/CMakeLists.txt +++ b/src/external/TLemRunHeader/CMakeLists.txt @@ -3,9 +3,11 @@ #--- generate necessary dictionaries ------------------------------------------ root_generate_dictionary( TLemRunHeaderDict TLemRunHeader.h LINKDEF TLemRunHeaderLinkDef.h + MODULE TLemRunHeader ) root_generate_dictionary( - TLemStatsDict TLemStats.h LINKDEF TLemStatsLinkDef.h + TLemStatsDict TLemStats.h LINKDEF TLemStatsLinkDef.h + MODULE TLemStats ) #--- create pkg-config info --------------------------------------------------- @@ -44,10 +46,10 @@ install(TARGETS TLemRunHeader DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeaderDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeaderDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libTLemStatsDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTLemStatsDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeader_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTLemRunHeader.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libTLemStats_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTLemStats.rootmap DESTINATION lib ) diff --git a/src/external/libBNMR/CMakeLists.txt b/src/external/libBNMR/CMakeLists.txt index 520ad368..1f10f260 100644 --- a/src/external/libBNMR/CMakeLists.txt +++ b/src/external/libBNMR/CMakeLists.txt @@ -9,6 +9,7 @@ root_generate_dictionary( -I${MUSRFIT_INC} TBNMR.h LINKDEF TBNMRLinkDef.h + MODULE TBNMR ) #--- lib creation ------------------------------------------------------------- @@ -38,8 +39,8 @@ install(TARGETS BNMR DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTBNMRDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTBNMRDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTBNMR_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTBNMR.rootmap DESTINATION lib ) diff --git a/src/external/libCalcMeanFieldsLEM/CMakeLists.txt b/src/external/libCalcMeanFieldsLEM/CMakeLists.txt index 0916986b..c41b573c 100644 --- a/src/external/libCalcMeanFieldsLEM/CMakeLists.txt +++ b/src/external/libCalcMeanFieldsLEM/CMakeLists.txt @@ -13,6 +13,7 @@ root_generate_dictionary( -I${POFB_INC} TCalcMeanFieldsLEM.h LINKDEF TCalcMeanFieldsLEMLinkDef.h + MODULE TCalcMeanFieldsLEM ) #--- create pkg-config info --------------------------------------------------- @@ -58,8 +59,8 @@ install(TARGETS CalcMeanFieldsLEM DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTCalcMeanFieldsLEMDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTCalcMeanFieldsLEMDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTCalcMeanFieldsLEM_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTCalcMeanFieldsLEM.rootmap DESTINATION lib ) diff --git a/src/external/libFitPofB/classes/CMakeLists.txt b/src/external/libFitPofB/classes/CMakeLists.txt index 61443e2a..fab6a2c1 100644 --- a/src/external/libFitPofB/classes/CMakeLists.txt +++ b/src/external/libFitPofB/classes/CMakeLists.txt @@ -14,6 +14,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/../include TLondon1D.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/TLondon1DLinkDef.h + MODULE TLondon1D ) root_generate_dictionary( TVortexDict @@ -24,6 +25,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/../include TVortex.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/TVortexLinkDef.h + MODULE TVortex ) root_generate_dictionary( TSkewedGssDict @@ -34,6 +36,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/../include TSkewedGss.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/TSkewedGssLinkDef.h + MODULE TSkewedGss ) #--- create pkg-config info --------------------------------------------------- @@ -99,12 +102,12 @@ install(TARGETS FitPofB DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLondon1DDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTLondon1DDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libTVortexDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTVortexDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libTSkewedGssDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTSkewedGssDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLondon1D_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTLondon1D.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libTVortex_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTVortex.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libTSkewedGss_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTSkewedGss.rootmap DESTINATION lib ) diff --git a/src/external/libGapIntegrals/CMakeLists.txt b/src/external/libGapIntegrals/CMakeLists.txt index 63fb1b05..9611de12 100644 --- a/src/external/libGapIntegrals/CMakeLists.txt +++ b/src/external/libGapIntegrals/CMakeLists.txt @@ -11,6 +11,7 @@ root_generate_dictionary( -I${BMW_TOOLS_INC} TGapIntegrals.h LINKDEF TGapIntegralsLinkDef.h + MODULE TGapIntegrals ) #--- create pkg-config info --------------------------------------------------- @@ -56,8 +57,8 @@ install(TARGETS GapIntegrals DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTGapIntegralsDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTGapIntegralsDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTGapIntegrals_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTGapIntegrals.rootmap DESTINATION lib ) diff --git a/src/external/libLFRelaxation/CMakeLists.txt b/src/external/libLFRelaxation/CMakeLists.txt index 2d7bf19f..59f8bd5f 100644 --- a/src/external/libLFRelaxation/CMakeLists.txt +++ b/src/external/libLFRelaxation/CMakeLists.txt @@ -11,6 +11,7 @@ root_generate_dictionary( -I${BMW_TOOLS_INC} TLFRelaxation.h LINKDEF TLFRelaxationLinkDef.h + MODULE TLFRelaxation ) #--- create pkg-config info --------------------------------------------------- @@ -65,8 +66,8 @@ install(TARGETS LFRelaxation DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLFRelaxationDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libTLFRelaxationDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libTLFRelaxation_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libTLFRelaxation.rootmap DESTINATION lib ) diff --git a/src/external/libPhotoMeissner/classes/CMakeLists.txt b/src/external/libPhotoMeissner/classes/CMakeLists.txt index 99fecd68..e52f90b0 100644 --- a/src/external/libPhotoMeissner/classes/CMakeLists.txt +++ b/src/external/libPhotoMeissner/classes/CMakeLists.txt @@ -10,6 +10,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/../include PPhotoMeissner.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PPhotoMeissnerLinkDef.h + MODULE PPhotoMeissner ) root_generate_dictionary( PStartupHandler_PMDict @@ -17,6 +18,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/../include PStartupHandler_PM.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_PMLinkDef.h + MODULE PStartupHandler_PM ) #--- create pkg-config info --------------------------------------------------- @@ -60,10 +62,10 @@ install(TARGETS PPhotoMeissner DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissnerDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissnerDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_PMDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_PMDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissner_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPPhotoMeissner.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_PM_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_PM.rootmap DESTINATION lib ) diff --git a/src/external/libSpinValve/classes/CMakeLists.txt b/src/external/libSpinValve/classes/CMakeLists.txt index 94711cd9..09142a42 100644 --- a/src/external/libSpinValve/classes/CMakeLists.txt +++ b/src/external/libSpinValve/classes/CMakeLists.txt @@ -10,12 +10,14 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/../include PSkewedLorentzian.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PSkewedLorentzianLinkDef.h + MODULE PSkewedLorentzian ) root_generate_dictionary( PStartupHandler_SVDict -I${CMAKE_CURRENT_SOURCE_DIR}/../include PStartupHandler_SV.h LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/../include/PStartupHandler_SVLinkDef.h + MODULE PStartupHandler_SV ) #--- create pkg-config info --------------------------------------------------- @@ -57,10 +59,10 @@ install(TARGETS PSpinValve DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzianDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzianDict.rootmap - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SVDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SVDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzian_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPSkewedLorentzian.rootmap + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SV_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_SV.rootmap DESTINATION lib ) diff --git a/src/external/libZFRelaxation/CMakeLists.txt b/src/external/libZFRelaxation/CMakeLists.txt index 8dfbcbcd..8beaa49e 100644 --- a/src/external/libZFRelaxation/CMakeLists.txt +++ b/src/external/libZFRelaxation/CMakeLists.txt @@ -11,6 +11,7 @@ root_generate_dictionary( -I${BMW_TOOLS_INC} ZFRelaxation.h LINKDEF ZFRelaxationLinkDef.h + MODULE ZFRelaxation ) #--- create pkg-config info --------------------------------------------------- @@ -63,8 +64,8 @@ install(TARGETS ZFRelaxation DESTINATION lib) #--- install root pcm's and rootmaps ------------------------------------------ install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libZFRelaxationDict_rdict.pcm - ${CMAKE_CURRENT_BINARY_DIR}/libZFRelaxationDict.rootmap + FILES ${CMAKE_CURRENT_BINARY_DIR}/libZFRelaxation_rdict.pcm + ${CMAKE_CURRENT_BINARY_DIR}/libZFRelaxation.rootmap DESTINATION lib ) diff --git a/src/musredit_qt5/mupp/plotter/CMakeLists.txt b/src/musredit_qt5/mupp/plotter/CMakeLists.txt index a6492053..6f6cf7d7 100644 --- a/src/musredit_qt5/mupp/plotter/CMakeLists.txt +++ b/src/musredit_qt5/mupp/plotter/CMakeLists.txt @@ -32,6 +32,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/.. PMuppCanvas.h LINKDEF PMuppCanvasLinkDef.h + MODULE PMuppCanvas ) root_generate_dictionary( PMuppStartupHandlerDict @@ -39,6 +40,7 @@ root_generate_dictionary( -I${CMAKE_CURRENT_SOURCE_DIR}/.. PMuppStartupHandler.h LINKDEF PMuppStartupHandlerLinkDef.h + MODULE PMuppStartupHandler ) #--- define all the dictonary cxx --------------------------------------------- From df98ba5fd29e5f7509744213c4e53d2d2004a212 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Sun, 1 Jul 2018 21:42:00 +0200 Subject: [PATCH 02/11] make sure that all runs have the same number of parameters. --- src/musredit_qt5/mupp/Pmupp.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/musredit_qt5/mupp/Pmupp.cpp b/src/musredit_qt5/mupp/Pmupp.cpp index 3501835f..fe5e6ad6 100644 --- a/src/musredit_qt5/mupp/Pmupp.cpp +++ b/src/musredit_qt5/mupp/Pmupp.cpp @@ -450,6 +450,23 @@ PmuppCollection PParamDataHandler::ReadDbFile(const QString fln, bool &valid) title += token[i]; title = title.trimmed(); run.SetName(title); + // check that the number of parameters is the same for all runs + if (collection.GetNoOfRuns() > 0) { + if (collection.GetRun(0).GetNoOfParam() != run.GetNoOfParam()) { + cerr << endl; + cerr << "----" << endl; + cerr << "**ERROR** in " << fln.toLatin1().data() << "." << endl; + cerr << " first run (#" << collection.GetRun(0).GetNumber() << ") has "; + cerr << collection.GetRun(0).GetNoOfParam() << " params." << endl; + cerr << " current run (#" << run.GetNumber() << ") has "; + cerr << run.GetNoOfParam() << " params!" << endl; + cerr << "Inspect your db-file!" << endl; + cerr << "----" << endl; + file.close(); + valid = false; + return collection; + } + } collection.AddRun(run); run.Clear(); } else { // parameter From 07ad8205c8bbeafb0296c6f38b747432888a6401 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 2 Jul 2018 15:13:08 +0200 Subject: [PATCH 03/11] adopted to the directory tree. --- src/musredit_qt5/mupp/examples/field-vs-energy.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/musredit_qt5/mupp/examples/field-vs-energy.txt b/src/musredit_qt5/mupp/examples/field-vs-energy.txt index 25db2b07..ab265b2a 100644 --- a/src/musredit_qt5/mupp/examples/field-vs-energy.txt +++ b/src/musredit_qt5/mupp/examples/field-vs-energy.txt @@ -1,6 +1,6 @@ # This is a comment -loadPath $HOME/Apps/mupp/examples +loadPath ./ load YBCO-40nm-T5K-FC150mT-Escan.db load YBCO-40nm-T30K-FC150mT-Escan.db From a3ddd07a9e8918909b761a0d086b90d2db76a826 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 2 Jul 2018 15:13:49 +0200 Subject: [PATCH 04/11] a more coherent error message handling. --- src/musredit_qt5/mupp/Pmupp.cpp | 89 +++++++++++++-------------- src/musredit_qt5/mupp/Pmupp.h | 8 +-- src/musredit_qt5/mupp/PmuppGui.cpp | 22 ++++--- src/musredit_qt5/mupp/PmuppScript.cpp | 3 +- 4 files changed, 65 insertions(+), 57 deletions(-) diff --git a/src/musredit_qt5/mupp/Pmupp.cpp b/src/musredit_qt5/mupp/Pmupp.cpp index fe5e6ad6..22ba68b4 100644 --- a/src/musredit_qt5/mupp/Pmupp.cpp +++ b/src/musredit_qt5/mupp/Pmupp.cpp @@ -180,9 +180,10 @@ void PParamDataHandler::NewCollection(const QString name) * @param collectionName * @param arg * @param workDir + * @param errorMsg * @return */ -bool PParamDataHandler::analyzeFileList(const QStringList &fln, QString &collectionName, QStringList &arg, QString &workDir) +bool PParamDataHandler::analyzeFileList(const QStringList &fln, QString &collectionName, QStringList &arg, QString &workDir, QString &errorMsg) { // 1) check all the msr-files have the same structure: .msr with the same // for all msr-files present. @@ -205,16 +206,16 @@ bool PParamDataHandler::analyzeFileList(const QStringList &fln, QString &collect // get index of position between and pos0 = flnCurrent.indexOf("_"); if (pos0 == -1) { - QMessageBox::critical(0, "ERROR", "msr-file name has a structure which cannot be handled.\n\ -It should be , where is the run number\n\ -and needs to start with a '_'."); + errorMsg = "msr-file name has a structure which cannot be handled.\n\ + It should be , where is the run number\n\ + and needs to start with a '_'."; return false; } pos1 = flnCurrent.lastIndexOf("."); if ((pos1 == -1) || (pos1 < pos0)) { - QMessageBox::critical(0, "ERROR", "msr-file name has a structure which cannot be handled.\n\ -It should be .msr, where is the run number\n\ -and needs to start with a '_'."); + errorMsg = "msr-file name has a structure which cannot be handled.\n\ + It should be .msr, where is the run number\n\ + and needs to start with a '_'."; return false; } @@ -222,7 +223,7 @@ and needs to start with a '_'."); runStr = flnCurrent.left(pos0); runStr.toInt(&ok); // output not needed, only check that it is a number if (!ok) { - QMessageBox::critical(0, "ERROR", QString("Found run number string '%1' which is not a number.").arg(runStr)); + errorMsg = QString("Found run number string '%1' which is not a number.").arg(runStr); return false; } run << runStr; @@ -235,7 +236,7 @@ and needs to start with a '_'."); // make sure all extensions are identical if ((i>0) && (ext != extCurrent)) { - QMessageBox::critical(0, "ERROR", "Currently mixed msr-file extensions cannot be handled."); + errorMsg = "Currently mixed msr-file extensions cannot be handled."; return false; } } @@ -255,9 +256,10 @@ and needs to start with a '_'."); /** * @brief PParamDataHandler::ReadParamFile * @param fln + * @param errorMsg * @return */ -bool PParamDataHandler::ReadParamFile(const QStringList fln) +bool PParamDataHandler::ReadParamFile(const QStringList fln, QString &errorMsg) { bool valid = true; PmuppRun run; @@ -278,7 +280,7 @@ bool PParamDataHandler::ReadParamFile(const QStringList fln) // analyse file name list to get the appropriate parts for msr2data QStringList arg; QString workDir("./"); - if (!analyzeFileList(fln, collName, arg, workDir)) + if (!analyzeFileList(fln, collName, arg, workDir, errorMsg)) return false; // make sure that the system environment variables are properly set @@ -295,7 +297,7 @@ bool PParamDataHandler::ReadParamFile(const QStringList fln) // try ROOTSYS cmd = env.value("ROOTSYS") + QString("/bin/msr2data"); if (!QFile::exists(cmd)) { - QMessageBox::critical(0, "ERROR", "cannot find msr2data need here."); + errorMsg = "cannot find msr2data need here."; return false; } } @@ -306,18 +308,13 @@ bool PParamDataHandler::ReadParamFile(const QStringList fln) fProc->setWorkingDirectory(workDir); fProc->start(cmd, arg); if (!fProc->waitForFinished()) { - // error handling - QString msg(tr("Could not execute the output command: ")+cmd[0]); - QMessageBox::critical( 0, - tr("Fatal error"), - msg, - tr("Quit") ); + errorMsg = QString(tr("Could not execute the output command: ")+cmd[0]); return false; } // since the db-file should now be present, just load it - collection = ReadDbFile(pathName, valid); - if (!valid) { + collection = ReadDbFile(pathName, valid, errorMsg); + if (!valid) { cerr << endl; cerr << "----" << endl; cerr << "**ERROR** read db-file failure (" << pathName.toLatin1().data() << "." << endl; @@ -331,21 +328,18 @@ bool PParamDataHandler::ReadParamFile(const QStringList fln) } else { // db-, dat-file list for (int i=0; i 0) { if (collection.GetRun(0).GetNoOfParam() != run.GetNoOfParam()) { + errorMsg = fln + QString(".\n"); + errorMsg += QString(" first run (#%1) has %2 params.\n").arg(collection.GetRun(0).GetNumber()).arg(collection.GetRun(0).GetNoOfParam()); + errorMsg += QString(" current run (#%1) has %2 params.\n").arg(run.GetNumber()).arg(run.GetNoOfParam()); + errorMsg += QString(" Inspect your db-file!"); cerr << endl; cerr << "----" << endl; - cerr << "**ERROR** in " << fln.toLatin1().data() << "." << endl; - cerr << " first run (#" << collection.GetRun(0).GetNumber() << ") has "; - cerr << collection.GetRun(0).GetNoOfParam() << " params." << endl; - cerr << " current run (#" << run.GetNumber() << ") has "; - cerr << run.GetNoOfParam() << " params!" << endl; - cerr << "Inspect your db-file!" << endl; + cerr << "**ERROR** in " << errorMsg.toLatin1().data() << endl; cerr << "----" << endl; file.close(); valid = false; @@ -551,9 +545,11 @@ PmuppCollection PParamDataHandler::ReadDbFile(const QString fln, bool &valid) /** * @brief PParamDataHandler::ReadColumnParamFile * @param fln + * @param valid + * @param errorMsg * @return */ -PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool &valid) +PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool &valid, QString &errorMsg) { PmuppCollection collection; PmuppRun run; @@ -561,9 +557,10 @@ PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool & QFile file(fln); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + errorMsg = QString("couldn't open ")+fln; cerr << endl; cerr << "----" << endl; - cerr << "**ERROR** couldn't open " << fln.toLatin1().data() << endl; + cerr << "**ERROR** " << errorMsg.toLatin1().data() << endl; cerr << "----" << endl; valid = false; return collection; @@ -611,9 +608,10 @@ PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool & token = line.split(QRegExp("\\s+"), QString::SkipEmptyParts); // paranoia check if (token.size() != headerInfo.size()) { + errorMsg = QString("size mismatch between header and parameter int line: %1 (header=%2 / param=%3)").arg(lineNo).arg(headerInfo.size()).arg(token.size()); cerr << endl; cerr << "----" << endl; - cerr << "**ERROR** size mismatch between header and parameter int line: " << lineNo << " (header=" << headerInfo.size() << " / param=" << token.size() << ")." << endl; + cerr << "**ERROR** " << errorMsg.toLatin1().data() << endl; cerr << "----" << endl; valid = false; file.close(); @@ -625,9 +623,10 @@ PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool & else dval = token[i].toDouble(&ok); if (!ok) { + errorMsg = QString("unrecognized token ('%1') in line %2 (line number: %3)").arg(token[i].toLatin1().data()).arg(line.toLatin1().data()).arg(lineNo); cerr << endl; cerr << "----" << endl; - cerr << "**ERROR** unrecognized token ('" << token[i].toLatin1().data() << "') in line " << line.toLatin1().data() << "(line number: " << lineNo << ")" << endl; + cerr << "**ERROR** " << errorMsg.toLatin1().data() << endl; cerr << "----" << endl; valid = false; file.close(); diff --git a/src/musredit_qt5/mupp/Pmupp.h b/src/musredit_qt5/mupp/Pmupp.h index 524a9012..d2e3f53c 100644 --- a/src/musredit_qt5/mupp/Pmupp.h +++ b/src/musredit_qt5/mupp/Pmupp.h @@ -113,9 +113,9 @@ class PParamDataHandler : public QObject { int GetNoOfCollections() { return fCollection.size(); } void NewCollection(const QString name); - bool ReadParamFile(const QStringList fln); - PmuppCollection ReadDbFile(const QString fln, bool &valid); - PmuppCollection ReadColumnParamFile(const QString fln, bool &valid); + bool ReadParamFile(const QStringList fln, QString &errorMsg); + PmuppCollection ReadDbFile(const QString fln, bool &valid, QString &errorMsg); + PmuppCollection ReadColumnParamFile(const QString fln, bool &valid, QString &errorMsg); PmuppCollection GetCollection(const int idx, bool &valid); PmuppCollection GetCollection(const QString name, bool &valid); @@ -140,7 +140,7 @@ class PParamDataHandler : public QObject { QProcess *fProc; QVector fCollection; - bool analyzeFileList(const QStringList &fln, QString &collectionName, QStringList &arg, QString &workDir); + bool analyzeFileList(const QStringList &fln, QString &collectionName, QStringList &arg, QString &workDir, QString &errorMsg); private slots: void readFromStdOut(); diff --git a/src/musredit_qt5/mupp/PmuppGui.cpp b/src/musredit_qt5/mupp/PmuppGui.cpp index 4e0a2f3c..fa067f25 100644 --- a/src/musredit_qt5/mupp/PmuppGui.cpp +++ b/src/musredit_qt5/mupp/PmuppGui.cpp @@ -223,8 +223,9 @@ PmuppGui::PmuppGui( QStringList fln, QWidget *parent, Qt::WindowFlags f ) QString collName = QString("collName0"); fParamDataHandler->NewCollection(collName); } - if (!fParamDataHandler->ReadParamFile(fln)) { - // parameter file(s) is/are not valid + QString errorMsg(""); + if (!fParamDataHandler->ReadParamFile(fln, errorMsg)) { + QMessageBox::critical(this, "ERROR", errorMsg); } else { dataAtStartup = true; // delay to deal with the data sets until the GUI is ready to do so } @@ -571,7 +572,10 @@ void PmuppGui::fileOpen() return; } - fParamDataHandler->ReadParamFile(list); + QString errorMsg(""); + if (!fParamDataHandler->ReadParamFile(list, errorMsg)) { + QMessageBox::critical(this, "ERROR", errorMsg); + } } //---------------------------------------------------------------------------------------------------- @@ -817,17 +821,21 @@ void PmuppGui::refresh() PmuppCollection coll; bool ok=false; if (pathName.endsWith(".db")) { - coll = fParamDataHandler->ReadDbFile(pathName, ok); + QString errorMsg(""); + coll = fParamDataHandler->ReadDbFile(pathName, ok, errorMsg); if (!ok) { QMessageBox::critical(this, "ERROR - REFRESH", - QString("Couldn't refresh %1\nFile corrupted?!").arg(fParamDataHandler->GetCollection(collIdx)->GetName())); + QString("Couldn't refresh %1\nFile corrupted?!\n").arg(fParamDataHandler->GetCollection(collIdx)->GetName())+ + errorMsg); return; } } else if (pathName.endsWith(".dat")) { - coll = fParamDataHandler->ReadColumnParamFile(pathName, ok); + QString errorMsg(""); + coll = fParamDataHandler->ReadColumnParamFile(pathName, ok, errorMsg); if (!ok) { QMessageBox::critical(this, "ERROR - REFRESH", - QString("Couldn't refresh %1\nFile corrupted?!").arg(fParamDataHandler->GetCollection(collIdx)->GetName())); + QString("Couldn't refresh %1\nFile corrupted?!\n").arg(fParamDataHandler->GetCollection(collIdx)->GetName())+ + errorMsg); return; } } else { diff --git a/src/musredit_qt5/mupp/PmuppScript.cpp b/src/musredit_qt5/mupp/PmuppScript.cpp index a70453b7..61a32746 100644 --- a/src/musredit_qt5/mupp/PmuppScript.cpp +++ b/src/musredit_qt5/mupp/PmuppScript.cpp @@ -204,7 +204,8 @@ int PmuppScript::loadCollection(const QString str) QStringList flnList; flnList << fln; - fParamDataHandler->ReadParamFile(flnList); + QString errorMsg(""); + fParamDataHandler->ReadParamFile(flnList, errorMsg); return 0; } From 294eaa8fb170b6fec0f08c4aa1a65df237fe2570 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 2 Jul 2018 18:55:02 +0200 Subject: [PATCH 05/11] make sure that multiple instances of mupp can run simultaneously. --- src/musredit_qt5/mupp/PmuppGui.cpp | 47 ++++++++++++++++--- src/musredit_qt5/mupp/PmuppGui.h | 2 + src/musredit_qt5/mupp/plotter/PMuppCanvas.cpp | 9 ++-- src/musredit_qt5/mupp/plotter/PMuppCanvas.h | 4 +- src/musredit_qt5/mupp/plotter/mupp_plot.cpp | 11 ++++- 5 files changed, 62 insertions(+), 11 deletions(-) diff --git a/src/musredit_qt5/mupp/PmuppGui.cpp b/src/musredit_qt5/mupp/PmuppGui.cpp index fa067f25..d627c91e 100644 --- a/src/musredit_qt5/mupp/PmuppGui.cpp +++ b/src/musredit_qt5/mupp/PmuppGui.cpp @@ -205,6 +205,7 @@ PmuppGui::PmuppGui( QStringList fln, QWidget *parent, Qt::WindowFlags f ) { QDateTime dt = QDateTime::currentDateTime(); fDatime = dt.toTime_t(); + fMuppInstance = -1; fMuppPlot = 0; @@ -414,8 +415,12 @@ void PmuppGui::aboutToQuit() // clean up temporary plot files QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); - QString pathName = QString("%1/.musrfit/mupp/_mupp_%2.dat").arg(env.value("HOME")).arg(fDatime); - pathName = QString("%1/.musrfit/mupp/_mupp_ftok.dat").arg(env.value("HOME")); + if (fMuppInstance != -1) { + QString pathName = QString("%1/.musrfit/mupp/_mupp_%2.dat").arg(env.value("HOME")).arg(fDatime); + QFile::remove(pathName); + pathName = QString("%1/.musrfit/mupp/_mupp_ftok_%2.dat").arg(env.value("HOME")).arg(fMuppInstance); + QFile::remove(pathName); + } // needed for clean up and to save the cmd history writeCmdHistory(); @@ -584,7 +589,7 @@ void PmuppGui::fileOpen() */ void PmuppGui::fileExit() { - qApp->quit(); + aboutToQuit(); } //---------------------------------------------------------------------------------------------------- @@ -1616,13 +1621,16 @@ void PmuppGui::plot() file.close(); + // get first free mupp instance + fMuppInstance = getFirstAvailableMuppInstance(); + // issue a system message to inform to ROOT parameter plotter (rpp) that new data are available key_t key; struct mbuf msg; int flags, msqid; // generate the ICP message queue key - QString tmpPathName = QString("%1/.musrfit/mupp/_mupp_ftok.dat").arg(env.value("HOME")); + QString tmpPathName = QString("%1/.musrfit/mupp/_mupp_ftok_%2.dat").arg(env.value("HOME")).arg(fMuppInstance); file.setFileName(tmpPathName); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { QMessageBox::critical(this, "ERROR", "Couldn't write necessary temporary file!"); @@ -1632,7 +1640,7 @@ void PmuppGui::plot() fout << QCoreApplication::applicationFilePath().toLatin1().data() << endl; file.close(); - key = ftok(QCoreApplication::applicationFilePath().toLatin1().data(), 1); + key = ftok(QCoreApplication::applicationFilePath().toLatin1().data(), fMuppInstance); if (key == -1) { QMessageBox::critical(this, "ERROR", "Couldn't obtain necessary key to install the IPC message queue."); return; @@ -1677,11 +1685,14 @@ void PmuppGui::startMuppPlot() QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); QString cmd = QString("%1/bin/mupp_plot").arg(MUPP_PREFIX); #if defined(Q_OS_DARWIN) || defined(Q_OS_MAC) - cmd = QString("/Applications/mupp.app/Contents/MacOS/mupp_plot"); // as35 not yet ready + cmd = QString("/Applications/mupp.app/Contents/MacOS/mupp_plot"); #endif QString workDir = QString("./"); QStringList arg; + // feed the mupp instance + arg << QString("%1").arg(fMuppInstance); + fMuppPlot = new QProcess(this); if (fMuppPlot == nullptr) { QMessageBox::critical(0, "**ERROR**", "Couldn't invoke QProcess for mupp_plot!"); @@ -1996,3 +2007,27 @@ void PmuppGui::selectCollection(QString cmd) } } } + +//---------------------------------------------------------------------------------------------------- +/** + * @brief PmuppGui::getFirstAvailableMuppInstance + * @return + */ +uint PmuppGui::getFirstAvailableMuppInstance() +{ + // if fMuppInstance already set, i.e. != -1, do nothing + if (fMuppInstance != -1) + return fMuppInstance; + + QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); + QString fln(""); + uint i=0; + for (i=0; i<256; i++) { + fln = QString("%1/.musrfit/mupp/_mupp_ftok_%2.dat").arg(env.value("HOME")).arg(i); + if (!QFile::exists(fln)) + break; + } + + return i; +} + diff --git a/src/musredit_qt5/mupp/PmuppGui.h b/src/musredit_qt5/mupp/PmuppGui.h index 366fed22..4056b33d 100644 --- a/src/musredit_qt5/mupp/PmuppGui.h +++ b/src/musredit_qt5/mupp/PmuppGui.h @@ -129,6 +129,7 @@ private: bool fDarkToolBarIcon; uint fDatime; + uint fMuppInstance; PParamDataHandler *fParamDataHandler; QVector fXY; @@ -181,6 +182,7 @@ private: void getMinMax(QVector &data, double &min, double &max); QString substituteDefaultLabels(QString label); void selectCollection(QString cmd); + uint getFirstAvailableMuppInstance(); private slots: void refresh(); diff --git a/src/musredit_qt5/mupp/plotter/PMuppCanvas.cpp b/src/musredit_qt5/mupp/plotter/PMuppCanvas.cpp index 5c20843c..4d483bba 100644 --- a/src/musredit_qt5/mupp/plotter/PMuppCanvas.cpp +++ b/src/musredit_qt5/mupp/plotter/PMuppCanvas.cpp @@ -88,7 +88,9 @@ PMuppCanvas::PMuppCanvas() */ PMuppCanvas::PMuppCanvas(const Char_t *title, Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh, const PIntVector markerSytleList, - const PDoubleVector markerSizeList, const PIntVector colorList) : + const PDoubleVector markerSizeList, const PIntVector colorList, + const int mupp_instance) : + fMuppInstance(mupp_instance), fMarkerStyleList(markerSytleList), fMarkerSizeList(markerSizeList), fColorList(colorList) @@ -303,7 +305,8 @@ void PMuppCanvas::CheckIPCMsgQueue() cerr << "**ERROR** couldn't get value of the environment variable HOME." << endl << endl; return; } - strncat(str, "/.musrfit/mupp/_mupp_ftok.dat", sizeof(str)-1); + memset(str, '\0', sizeof(str)); + snprintf(str, sizeof(str), "%s/.musrfit/mupp/_mupp_ftok_%d.dat", getenv("HOME"), fMuppInstance); ifstream fin(str, ifstream::in); if (!fin.is_open()) { cerr << endl; @@ -315,7 +318,7 @@ void PMuppCanvas::CheckIPCMsgQueue() fFtokName = str; } - key = ftok(fFtokName.Data(), 1); + key = ftok(fFtokName.Data(), fMuppInstance); flags = IPC_CREAT; msqid = msgget(key, flags | S_IRUSR | S_IWUSR); if (msqid == -1) { diff --git a/src/musredit_qt5/mupp/plotter/PMuppCanvas.h b/src/musredit_qt5/mupp/plotter/PMuppCanvas.h index 62678489..16d15214 100644 --- a/src/musredit_qt5/mupp/plotter/PMuppCanvas.h +++ b/src/musredit_qt5/mupp/plotter/PMuppCanvas.h @@ -74,7 +74,8 @@ public: PMuppCanvas(const Char_t* title, Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh, const PIntVector markerSytleList, const PDoubleVector markerSizeList, - const PIntVector colorList); + const PIntVector colorList, + const int mupp_instance); virtual ~PMuppCanvas(); virtual Bool_t IsValid() { return fValid; } @@ -89,6 +90,7 @@ public: private: Bool_t fValid; + Int_t fMuppInstance; TString fFtokName; TTimer *fCheckMsgQueue; ///< timer needed to check if a message in the IPC message queue is pending diff --git a/src/musredit_qt5/mupp/plotter/mupp_plot.cpp b/src/musredit_qt5/mupp/plotter/mupp_plot.cpp index efc7d817..6affb077 100644 --- a/src/musredit_qt5/mupp/plotter/mupp_plot.cpp +++ b/src/musredit_qt5/mupp/plotter/mupp_plot.cpp @@ -46,6 +46,14 @@ using namespace std; */ int main(int argc, char *argv[]) { + if (argc != 2) { + return -1; + } + int mupp_instance = (int)strtol(argv[1], NULL, 10); + if ((mupp_instance < 0) || (mupp_instance > 255)) { + return -2; + } + // read startup file char startup_path_name[128]; TSAXParser *saxParser = new TSAXParser(); @@ -93,7 +101,8 @@ int main(int argc, char *argv[]) PMuppCanvas *muppCanvas = new PMuppCanvas("mupp", 10, 10, 600, 800, startupHandler->GetMarkerStyleList(), startupHandler->GetMarkerSizeList(), - startupHandler->GetColorList()); + startupHandler->GetColorList(), + mupp_instance); if (muppCanvas != 0) { if (muppCanvas->IsValid()) { From 568792dc005c495d13f19037ceb68d45ba0a0548 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 3 Jul 2018 09:34:48 +0200 Subject: [PATCH 06/11] added recent files to mupp. --- src/musredit_qt5/mupp/PmuppAdmin.cpp | 114 +++++++++++++++++++++- src/musredit_qt5/mupp/PmuppAdmin.h | 11 ++- src/musredit_qt5/mupp/PmuppGui.cpp | 49 ++++++++++ src/musredit_qt5/mupp/PmuppGui.h | 6 ++ src/musredit_qt5/mupp/mupp.h | 2 + src/musredit_qt5/mupp/mupp_startup.xml.in | 4 +- 6 files changed, 182 insertions(+), 4 deletions(-) diff --git a/src/musredit_qt5/mupp/PmuppAdmin.cpp b/src/musredit_qt5/mupp/PmuppAdmin.cpp index 0e9e9493..0ca4644c 100644 --- a/src/musredit_qt5/mupp/PmuppAdmin.cpp +++ b/src/musredit_qt5/mupp/PmuppAdmin.cpp @@ -108,7 +108,9 @@ bool PmuppAdminXMLParser::startElement( const QString&, const QString&, const QString& qName, const QXmlAttributes& ) { - if (qName == "marker") { + if (qName == "path_file_name") { + fKeyWord = eRecentFile; + } else if (qName == "marker") { fKeyWord = eMarker; } else if (qName == "color") { fKeyWord = eColor; @@ -148,6 +150,9 @@ bool PmuppAdminXMLParser::characters(const QString& str) QStringList tok; switch (fKeyWord) { + case eRecentFile: + fAdmin->addRecentFile(QString(str.toLatin1()).trimmed()); + break; case eMarker: tok = str.split(",", QString::SkipEmptyParts); @@ -330,7 +335,42 @@ PmuppAdmin::PmuppAdmin() : QObject() */ PmuppAdmin::~PmuppAdmin() { - // nothing to be done for now + saveRecentFiles(); +} + +//-------------------------------------------------------------------------- +/** + *

Add recent path-file name to the internal ring-buffer. + * + * \param str recent path-file name to be added + */ +void PmuppAdmin::addRecentFile(const QString str) +{ + // check if file name is not already present + for (int i=0; i MAX_RECENT_FILES) + fRecentFile.resize(MAX_RECENT_FILES); +} + +//-------------------------------------------------------------------------- +/** + * @brief PmuppAdmin::getRecentFile + * @param idx + * @return + */ +QString PmuppAdmin::getRecentFile(int idx) +{ + QString str(""); + + if ((idx >= 0) && (idx < fRecentFile.size())) + str = fRecentFile[idx]; + + return str; } //-------------------------------------------------------------------------- @@ -439,6 +479,76 @@ void PmuppAdmin::setColor(int r, int g, int b, QString name) fColor.push_back(color); } +//-------------------------------------------------------------------------- +/** + *

Merges the recent file ring buffer into mupp_startup.xml and saves it. + * If a local copy is present it will be saved there, otherwise the master file + * will be used. + */ +void PmuppAdmin::saveRecentFiles() +{ + // check if mupp_startup.xml is present in the current directory, and if yes, use this file to + // save the recent file names otherwise use the "master" mupp_startup.xml + + QString str(""); + QString fln = QString("./mupp_startup.xml"); + if (!QFile::exists(fln)) { + QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); + fln = QString("%1/.musrfit/mupp/mupp_startup.xml").arg(env.value("HOME")); + } + + if (QFile::exists(fln)) { // administration file present + QVector data; + QFile file(fln); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + cerr << endl << ">> PmuppAdmin::saveRecentFile: **ERROR** Cannot open " << fln.toLatin1().data() << " for reading." << endl; + return; + } + QTextStream fin(&file); + while (!fin.atEnd()) { + data.push_back(fin.readLine()); + } + file.close(); + + // remove from data + for (QVector::iterator it = data.begin(); it != data.end(); ++it) { + if (it->contains("")) { + it = data.erase(it); + --it; + } + } + + // add recent files + int i; + for (i=0; i")) + break; + } + + if (i == data.size()) { + cerr << endl << ">> PmuppAdmin::saveRecentFile: **ERROR** " << fln.toLatin1().data() << " seems to be corrupt." << endl; + return; + } + i++; + for (int j=0; j"; + data.insert(i++, str); + } + + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + cerr << endl << ">> PmuppAdmin::saveRecentFile: **ERROR** Cannot open " << fln.toLatin1().data() << " for reading." << endl; + return; + } + fin.setDevice(&file); + for (int i=0; i #include +#include "mupp.h" + class PmuppAdmin; //--------------------------------------------------------------------------- @@ -96,7 +98,7 @@ class PmuppAdminXMLParser : public QXmlDefaultHandler virtual ~PmuppAdminXMLParser() {} private: - enum EAdminKeyWords {eEmpty, eMarker, eColor}; + enum EAdminKeyWords {eEmpty, eRecentFile, eMarker, eColor}; bool startDocument(); bool startElement( const QString&, const QString&, const QString& , @@ -127,6 +129,10 @@ class PmuppAdmin : public QObject PmuppAdmin(); virtual ~PmuppAdmin(); + void addRecentFile(const QString str); + int getNumRecentFiles() { return fRecentFile.size(); } + QString getRecentFile(int idx); + int getNoOfMarkers() { return fMarker.size(); } QVector getMarkers() { return fMarker; } PmuppMarker getMarker(int idx); @@ -142,9 +148,12 @@ class PmuppAdmin : public QObject private: friend class PmuppAdminXMLParser; + QVector fRecentFile; ///< keep vector of recent path-file names + QVector fMarker; QVector fColor; + void saveRecentFiles(); ///< save recent file list void createMuppStartupFile(); ///< create default mupp_startup.xml }; diff --git a/src/musredit_qt5/mupp/PmuppGui.cpp b/src/musredit_qt5/mupp/PmuppGui.cpp index d627c91e..b2b9b11a 100644 --- a/src/musredit_qt5/mupp/PmuppGui.cpp +++ b/src/musredit_qt5/mupp/PmuppGui.cpp @@ -470,6 +470,15 @@ void PmuppGui::setupFileActions() } tb->addAction(a); + fRecentFilesMenu = menu->addMenu( tr("Recent Files") ); + for (int i=0; isetVisible(false); + connect( fRecentFilesAction[i], SIGNAL(triggered()), this, SLOT(fileOpenRecent())); + fRecentFilesMenu->addAction(fRecentFilesAction[i]); + } + fillRecentFiles(); + a = new QAction( tr( "E&xit" ), this ); a->setShortcut( tr("Ctrl+Q") ); a->setStatusTip( tr("Exit Program") ); @@ -580,6 +589,34 @@ void PmuppGui::fileOpen() QString errorMsg(""); if (!fParamDataHandler->ReadParamFile(list, errorMsg)) { QMessageBox::critical(this, "ERROR", errorMsg); + return; + } + + // populate the recent files + if (msrPresent || dbPresent) { + for (int i=0; iaddRecentFile(list[i]); // keep it in admin + fillRecentFiles(); // update menu + } + } +} + +//---------------------------------------------------------------------------------------------------- +/** + * @brief PmuppGui::fileOpenRecent + */ +void PmuppGui::fileOpenRecent() +{ + QAction *action = qobject_cast(sender()); + + if (action) { + QStringList fln; + fln << action->text(); + QString errorMsg(""); + if (!fParamDataHandler->ReadParamFile(fln, errorMsg)) { + QMessageBox::critical(this, "ERROR", errorMsg); + return; + } } } @@ -727,6 +764,18 @@ void PmuppGui::getTheme() } } +//---------------------------------------------------------------------------------------------------- +/** + *

fill the recent file list in the menu. + */ +void PmuppGui::fillRecentFiles() +{ + for (int i=0; igetNumRecentFiles(); i++) { + fRecentFilesAction[i]->setText(fAdmin->getRecentFile(i)); + fRecentFilesAction[i]->setVisible(true); + } +} + //---------------------------------------------------------------------------------------------------- /** * @brief PmuppGui::readCmdHistory diff --git a/src/musredit_qt5/mupp/PmuppGui.h b/src/musredit_qt5/mupp/PmuppGui.h index 4056b33d..22c2dea1 100644 --- a/src/musredit_qt5/mupp/PmuppGui.h +++ b/src/musredit_qt5/mupp/PmuppGui.h @@ -109,6 +109,7 @@ public: public slots: void aboutToQuit(); void fileOpen(); + void fileOpenRecent(); void fileExit(); void toolDumpCollections(); @@ -139,6 +140,9 @@ private: QWidget *fCentralWidget; + QMenu *fRecentFilesMenu; ///< recent file menu + QAction *fRecentFilesAction[MAX_RECENT_FILES]; ///< array of the recent file actions + QBoxLayout *fBoxLayout_Main; // top->bottom (0) QBoxLayout *fBoxLayout_Top; // left->right (1) QGridLayout *fGridLayout_Left; // 2 columns, 3 rows @@ -174,6 +178,8 @@ private: void getTheme(); + void fillRecentFiles(); + void readCmdHistory(); void writeCmdHistory(); diff --git a/src/musredit_qt5/mupp/mupp.h b/src/musredit_qt5/mupp/mupp.h index a363a04e..379d9727 100644 --- a/src/musredit_qt5/mupp/mupp.h +++ b/src/musredit_qt5/mupp/mupp.h @@ -35,6 +35,8 @@ #include #include +#define MAX_RECENT_FILES 5 + #define PMUPP_MAX_MTEXT 512 struct mbuf { diff --git a/src/musredit_qt5/mupp/mupp_startup.xml.in b/src/musredit_qt5/mupp/mupp_startup.xml.in index e02c25cb..365e94d1 100644 --- a/src/musredit_qt5/mupp/mupp_startup.xml.in +++ b/src/musredit_qt5/mupp/mupp_startup.xml.in @@ -1,8 +1,10 @@ - + Defines default settings for the mupp helper program for musrfit + + From e4d4f82e8c9c152535846f46dfe2a2ba964833af Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 3 Jul 2018 10:49:01 +0200 Subject: [PATCH 07/11] updated MUSR version. --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index e52c82c8..933aa13e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_REVISION([m4_esyscmd_s([git describe --always])]) AC_PREREQ(2.63) -AC_INIT([musrfit],[1.3.0],[andreas.suter@psi.ch]) +AC_INIT([musrfit],[1.4.0],[andreas.suter@psi.ch]) AC_CONFIG_AUX_DIR(admin) AC_CANONICAL_HOST #AC_MSG_RESULT([${host} ${host_cpu} ${host_vendor} ${host_os}]) @@ -35,7 +35,7 @@ dnl ----------------------------------------------- #release versioning MUSR_MAJOR_VERSION=1 -MUSR_MINOR_VERSION=3 +MUSR_MINOR_VERSION=4 MUSR_MICRO_VERSION=0 #release versioning From 256794e02ded518be1495ae467184727263de340 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 3 Jul 2018 18:50:09 +0200 Subject: [PATCH 08/11] switch the docu system from foswiki to sphinx. --- doc/html/.buildinfo | 4 + .../Makefile.TMyLibrary | 0 .../MusrRoot-RunInfo.png} | Bin .../MusrRootValidationScheme.png} | Bin doc/html/_images/msr2data-GUI.svg | 862 ++++++ doc/html/_images/msr2data.svg | 256 ++ doc/html/_images/mupp-gui-0.svg | 1394 +++++++++ doc/html/_images/mupp-plot-0.svg | 648 +++++ doc/html/_images/mupp.svg | 199 ++ doc/html/_images/musrFT.svg | 108 + doc/html/_images/musrStep-GUI.svg | 2552 +++++++++++++++++ doc/html/_images/musrStep-Modify-Selected.svg | 2223 ++++++++++++++ doc/html/_images/musrStep.svg | 147 + doc/html/_images/musrWiz-Create.svg | 662 +++++ doc/html/_images/musrWiz-FitInfo.svg | 698 +++++ doc/html/_images/musrWiz-FitParam.svg | 649 +++++ .../_images/musrWiz-Functions-and-Theory.svg | 703 +++++ doc/html/_images/musrWiz-Functions.svg | 561 ++++ doc/html/_images/musrWiz-Intro.svg | 751 +++++ doc/html/_images/musrWiz-Maps.svg | 569 ++++ doc/html/_images/musrWiz-Theory.svg | 171 ++ doc/html/_images/musrWiz.svg | 160 ++ doc/html/_images/musrchisq.svg | 127 + doc/html/_images/musrdump.svg | 176 ++ doc/html/_images/musredit-musrWiz.svg | 680 +++++ doc/html/_images/musrfit.svg | 186 ++ doc/html/_images/musrprefs.svg | 171 ++ doc/html/_images/musrswap.svg | 201 ++ doc/html/_images/musrt0-icon.svg | 84 + doc/html/_images/musrt0.png | Bin 0 -> 12240 bytes doc/html/_images/musrview.svg | 136 + .../_images/theory-tree-with-user-fcn.svg | 661 +++++ .../_images/tutorial-musredit-msr2data.png | Bin 0 -> 48339 bytes doc/html/_images/tutorial-musrt0-1.png | Bin 0 -> 17854 bytes doc/html/_images/tutorial-musrt0-2.png | Bin 0 -> 16884 bytes doc/html/_images/tutorial-musrview-1.png | Bin 0 -> 40242 bytes doc/html/_images/tutorial-musrview-FT.png | Bin 0 -> 37778 bytes doc/html/_sources/acknowledgement.txt | 16 + doc/html/_sources/any2many.txt | 8 + doc/html/_sources/bugtracking.txt | 9 + doc/html/_sources/cite.txt | 18 + doc/html/_sources/index.txt | 31 + doc/html/_sources/msr2data.txt | 374 +++ doc/html/_sources/mupp.txt | 166 ++ doc/html/_sources/musr-root.txt | 681 +++++ doc/html/_sources/musredit.txt | 515 ++++ doc/html/_sources/setup-dks.txt | 315 ++ doc/html/_sources/setup-standard.txt | 1578 ++++++++++ doc/html/_sources/tutorial.txt | 417 +++ doc/html/_sources/user-libs.txt | 409 +++ doc/html/_sources/user-manual.txt | 2105 ++++++++++++++ doc/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes doc/html/_static/basic.css | 537 ++++ .../comment-bright.png} | Bin 3177 -> 3500 bytes doc/html/_static/comment-close.png | Bin 0 -> 3578 bytes .../toggleclose.png => _static/comment.png} | Bin 3077 -> 3445 bytes doc/html/_static/doctools.js | 238 ++ doc/html/_static/down-pressed.png | Bin 0 -> 368 bytes doc/html/_static/down.png | Bin 0 -> 363 bytes doc/html/_static/file.png | Bin 0 -> 392 bytes doc/html/_static/jquery.js | 2 + doc/html/_static/minus.png | Bin 0 -> 199 bytes doc/html/_static/nature.css | 245 ++ doc/html/_static/plus.png | Bin 0 -> 199 bytes doc/html/_static/pygments.css | 69 + doc/html/_static/searchtools.js | 622 ++++ doc/html/_static/underscore.js | 31 + doc/html/_static/up-pressed.png | Bin 0 -> 372 bytes doc/html/_static/up.png | Bin 0 -> 363 bytes doc/html/_static/websupport.js | 808 ++++++ doc/html/acknowledgement.html | 120 + doc/html/any2many.html | 114 + doc/html/bugtracking.html | 105 + doc/html/cite.html | 126 + doc/html/genindex.html | 908 ++++++ doc/html/index.html | 191 ++ doc/html/msr2data.html | 446 +++ doc/html/mupp.html | 264 ++ doc/html/musr-root.html | 935 ++++++ doc/html/musredit.html | 562 ++++ doc/html/objects.inv | Bin 0 -> 1856 bytes doc/html/search.html | 101 + doc/html/searchindex.js | 1 + doc/html/setup-dks.html | 366 +++ doc/html/setup-standard.html | 1493 ++++++++++ doc/html/tutorial.html | 455 +++ doc/html/user-libs.html | 442 +++ doc/html/user-manual.html | 2169 ++++++++++++++ doc/html/user/MUSR/Any2Many.html | 0 doc/html/user/MUSR/BmwLibs.html | 153 - doc/html/user/MUSR/CiteMusrFit.html | 157 - doc/html/user/MUSR/LibFitPofB.html | 432 --- doc/html/user/MUSR/LibZFRelaxation.html | 237 -- doc/html/user/MUSR/Msr2Data.html | 439 --- doc/html/user/MUSR/MusrFit.html | 1774 ------------ .../user/MUSR/MusrFitAcknowledgements.html | 152 - doc/html/user/MUSR/MusrFitSetup.html | 1218 -------- doc/html/user/MUSR/MusrFitSetupDKS.html | 390 --- doc/html/user/MUSR/MusrGui.html | 535 ---- doc/html/user/MUSR/MusrRoot.html | 1129 -------- doc/html/user/MUSR/QuickStart.html | 289 -- doc/html/user/MUSR/TutorialSingleHisto.html | 405 --- doc/html/user/MUSR/WebHome.html | 166 -- doc/html/user/index.html | 9 - ...lugin_039b3b38df7c6f284089c14f1efdf643.png | Bin 1302 -> 0 bytes ...lugin_1c744b7e1104ae8c4a6bf4f8391df10b.png | Bin 1083 -> 0 bytes ...lugin_2339fd9b358ebe241da05c665668d48b.png | Bin 352 -> 0 bytes ...lugin_28f3ed750a4819b4256c2f9be649f594.png | Bin 312 -> 0 bytes ...lugin_3146cb17887e3a20cc2078f103605af5.png | Bin 4068 -> 0 bytes ...lugin_373e9bf1fc97e2c6aacf93bcc090402c.png | Bin 660 -> 0 bytes ...lugin_3cee3cc69dbe918398ec39a72a465014.png | Bin 431 -> 0 bytes ...lugin_432d7664e0756ded77e7423dd256c122.png | Bin 1525 -> 0 bytes ...lugin_469d5d1b83125e4915e2f073d8150b12.png | Bin 2303 -> 0 bytes ...lugin_532f98969690650ac4d127919a0eda38.png | Bin 676 -> 0 bytes ...lugin_6997ecca9587ccd09cc532d4476ae3a8.png | Bin 409 -> 0 bytes ...lugin_70e57aa1afa7d337fa46f427b34feb54.png | Bin 2654 -> 0 bytes ...lugin_7d1f8851f7efae8cd5d65842fb528f66.png | Bin 343 -> 0 bytes ...lugin_86f4cdca957f08c4d0ad3107b42d5502.png | Bin 611 -> 0 bytes ...lugin_88f576f1799d16c1df9f3205ab2946f2.png | Bin 371 -> 0 bytes ...lugin_8fa3ac8f18b7bc49eb89163d6528684c.png | Bin 487 -> 0 bytes ...lugin_9bb7e08c8e276a92650d89d6918b3769.png | Bin 1896 -> 0 bytes ...lugin_9cc0fd47eedada7247b14775bd308deb.png | Bin 696 -> 0 bytes ...lugin_a5feddf35c572c4579cbef865caf8863.png | Bin 1935 -> 0 bytes ...lugin_ae6486e95514c0c6f88837cbc62a522c.png | Bin 389 -> 0 bytes ...lugin_b6719fad8e30208538b34bc94040b7a5.png | Bin 2884 -> 0 bytes ...lugin_c25933e91d56089992506f463d71de8f.png | Bin 2422 -> 0 bytes ...lugin_c465118a8d86d5f25bba37cc1dcb38a0.png | Bin 300 -> 0 bytes ...lugin_d5a20ca7e3a33f6badc441163d1efe34.png | Bin 2110 -> 0 bytes ...lugin_dfd02951094e1cb98f48e3f6d4562f38.png | Bin 1874 -> 0 bytes ...lugin_e0b0e98f9a3974249b42b6910523c8a4.png | Bin 3564 -> 0 bytes ...lugin_e47f33589d28eaa3f9baccb7a80fdbaa.png | Bin 833 -> 0 bytes ...lugin_e6688a12ee4e821abc31b4c1dd511539.png | Bin 379 -> 0 bytes ...lugin_e8414d477977d226317c020980b7d34f.png | Bin 352 -> 0 bytes ...lugin_0a70ac778f3ffbf2c93d46b23559d371.png | Bin 5044 -> 0 bytes ...lugin_2b4a75902dcb0b8de5a662656d3b9066.png | Bin 2445 -> 0 bytes ...lugin_4611c56f1556464dd8a6eaabbe070c05.png | Bin 4566 -> 0 bytes ...lugin_5100b245762fc5c6dee8db3b05032a18.png | Bin 5512 -> 0 bytes ...lugin_52c5f826fb399ae721887c5fb4e31de0.png | Bin 5707 -> 0 bytes ...lugin_975f948b57199037b2b8bfb5e986b6a9.png | Bin 3871 -> 0 bytes ...lugin_fca91646b118061038b53ada5563c17c.png | Bin 4959 -> 0 bytes ...add8e3c7933ca421d5_msr2data-input-tabs.png | Bin 39180 -> 0 bytes ...8fd9d5889da6e407f1_msr2data-input-tabs.png | Bin 39238 -> 0 bytes .../pub/MUSR/Msr2Data/msr2data-input-tabs.png | Bin 37861 -> 0 bytes doc/html/user/pub/MUSR/MusrFit/Makefile.html | 60 - .../MUSR/MusrFit/Theory-Tree-with-UserFcn.png | Bin 68537 -> 0 bytes ...lugin_014e8cd7847b5402573b3292b2569731.png | Bin 614 -> 0 bytes ...lugin_020e973cf5b1293c76cb3ecef5a269f8.png | Bin 844 -> 0 bytes ...lugin_022741828ce174efdb6387e198d4d174.png | Bin 331 -> 0 bytes ...lugin_03095d51eca2bcb1dda113e995238fc0.png | Bin 1067 -> 0 bytes ...lugin_08b9deccddc142bcb30845cad4579dd1.png | Bin 2229 -> 0 bytes ...lugin_125ae4b9a7d16163023ce9cb3043aa0a.png | Bin 610 -> 0 bytes ...lugin_1582d158c5651581ca9e800ee698ce9f.png | Bin 3418 -> 0 bytes ...lugin_16b8c518c1e529e6c963929287ef3a56.png | Bin 569 -> 0 bytes ...lugin_1f1b2becd9ba1bee3b5d7f897bd8db7e.png | Bin 2355 -> 0 bytes ...lugin_1f6a4872a5556d809b896252d177f297.png | Bin 1873 -> 0 bytes ...lugin_20651e8230c7eb66c452bb1f01dc4633.png | Bin 631 -> 0 bytes ...lugin_23ec8fc398b4e415b86bbd2b65f9a63c.png | Bin 3237 -> 0 bytes ...lugin_24c06da56000c5aba89b43d3d082d566.png | Bin 771 -> 0 bytes ...lugin_2508962dd22d85bdaebb0d6a483c4b3f.png | Bin 633 -> 0 bytes ...lugin_26a5ae8799badcc3bcbe1823265a9053.png | Bin 853 -> 0 bytes ...lugin_2be9dcd7bf20bd9b6ae1aae11ded7c43.png | Bin 316 -> 0 bytes ...lugin_30b87ca180341a9f8f9a15c1082f7f29.png | Bin 926 -> 0 bytes ...lugin_319772b46bc6861fbe24a28e59530ade.png | Bin 736 -> 0 bytes ...lugin_3285744b1914390b321f67f390129f79.png | Bin 642 -> 0 bytes ...lugin_3e7298348ee1858b6fe4147c47afb5e3.png | Bin 329 -> 0 bytes ...lugin_3ee4cdd2dc2829c9d29c0f213de51785.png | Bin 920 -> 0 bytes ...lugin_409b6ae604705cd9a31d089bcfba146b.png | Bin 760 -> 0 bytes ...lugin_466fcb53c3da4f84fb2d12e03eef9439.png | Bin 4822 -> 0 bytes ...lugin_49046b617890ffeaca8bc16ae66d0dc5.png | Bin 932 -> 0 bytes ...lugin_50ba40cfb1308d024ff074655f531705.png | Bin 786 -> 0 bytes ...lugin_51757d805f7111ffe6e0b430b6d137c7.png | Bin 2065 -> 0 bytes ...lugin_52d3660a04cd068055f8e72b5ae47097.png | Bin 1920 -> 0 bytes ...lugin_53e41adf70ef506cc7668f8593a1b501.png | Bin 2384 -> 0 bytes ...lugin_545dca52882440763fc3ac973a36852a.png | Bin 725 -> 0 bytes ...lugin_5563541e58443a8d18e5bd40d2746e9a.png | Bin 1162 -> 0 bytes ...lugin_568ee751220d0e7d171a7ebb6da328b9.png | Bin 385 -> 0 bytes ...lugin_57316547e3b34dd9d537b722e4a0e176.png | Bin 2132 -> 0 bytes ...lugin_5c718f2fbcec7dd36986d69a28eda3db.png | Bin 864 -> 0 bytes ...lugin_5e07a020de661906573e8fed8eff32bf.png | Bin 865 -> 0 bytes ...lugin_61136f20673ad20f955c43e43b8cec9d.png | Bin 593 -> 0 bytes ...lugin_6355c4cb1ccffc332963726dd3077985.png | Bin 1595 -> 0 bytes ...lugin_63b1658426cdac24a0730149c3b5ea80.png | Bin 1820 -> 0 bytes ...lugin_6466a97e4b7c510909bffce51d31c4b9.png | Bin 1787 -> 0 bytes ...lugin_65bea57ac8fb766c4f93ca77947937f5.png | Bin 339 -> 0 bytes ...lugin_663c0beda820045042826686eaeefb6a.png | Bin 490 -> 0 bytes ...lugin_6a34fe0c88c79d8a90defad81f36da6d.png | Bin 918 -> 0 bytes ...lugin_6b6bbc4add4da0bde8220c54594658f3.png | Bin 862 -> 0 bytes ...lugin_7188605a647615e4fb92cc89274b22a0.png | Bin 909 -> 0 bytes ...lugin_7cd3c4b24d4a0c837964ae6b635f9ee0.png | Bin 1513 -> 0 bytes ...lugin_7f4cd42199fbf712ad5a86f9d94bd698.png | Bin 11591 -> 0 bytes ...lugin_8024ece95f6c092834e35ca64920583a.png | Bin 681 -> 0 bytes ...lugin_819a4fe998dacad865a00b643564873e.png | Bin 889 -> 0 bytes ...lugin_81abadaf16877e78e8bb9317a16cd704.png | Bin 1167 -> 0 bytes ...lugin_82adbab00b6a057f04037b44746e33eb.png | Bin 902 -> 0 bytes ...lugin_82fec90aa9e6eeaba9267ad46f426909.png | Bin 3170 -> 0 bytes ...lugin_8749458be5ba9f4edf09b6ecde03313d.png | Bin 2092 -> 0 bytes ...lugin_89458ff127e694cf28c0cdc314de62d1.png | Bin 452 -> 0 bytes ...lugin_8aad0e0c2c1f20995c483933a896ca0d.png | Bin 845 -> 0 bytes ...lugin_8b46c96933bc8a754fde5aa613d0e806.png | Bin 1337 -> 0 bytes ...lugin_8eb55dc360ede9ff12fa65dc47046bc0.png | Bin 501 -> 0 bytes ...lugin_8f88bba11aa1a2535ef7af4374ab4796.png | Bin 355 -> 0 bytes ...lugin_91086477d80ae4fd407c852073b3a5b8.png | Bin 2474 -> 0 bytes ...lugin_95da508ef32b516260a14999eaf14f46.png | Bin 3020 -> 0 bytes ...lugin_984f3a1c5d0c04f9471fa518f6f4ab22.png | Bin 470 -> 0 bytes ...lugin_9c7fbcfa6252ecf134381d9921d16bbc.png | Bin 1105 -> 0 bytes ...lugin_a08362729d5fcf782e28a536cc3a9e85.png | Bin 3100 -> 0 bytes ...lugin_a57c0747dc272c95ffb683f35359ecf9.png | Bin 679 -> 0 bytes ...lugin_a6e7fae88607100e780df97caf1683cf.png | Bin 2108 -> 0 bytes ...lugin_aad467dd15ac57481f24ada5fbe5d85f.png | Bin 642 -> 0 bytes ...lugin_ab5be67e3c585fe71d839ada9222b051.png | Bin 2194 -> 0 bytes ...lugin_ad7013bb754d671a35485233edf30254.png | Bin 659 -> 0 bytes ...lugin_af36b27f661f5b8a569f5672d18f8844.png | Bin 4150 -> 0 bytes ...lugin_b0c4a8cbbcf4189b64418b381939a979.png | Bin 905 -> 0 bytes ...lugin_b10bf8314f158b72e1e3462ba2d23fcc.png | Bin 434 -> 0 bytes ...lugin_b2a023c64c8d8b460f929d404730ec8a.png | Bin 642 -> 0 bytes ...lugin_b59000274e877651d11323c23f21c665.png | Bin 2661 -> 0 bytes ...lugin_b7d61ac387fd12b956816be1c6c9a577.png | Bin 1162 -> 0 bytes ...lugin_b8a915ef0eb8aa8e117519d01dfb10c1.png | Bin 2822 -> 0 bytes ...lugin_bd5c765027d46aa1433dda03f540c17e.png | Bin 875 -> 0 bytes ...lugin_be8817308ad9fe2fa99fe00abdaba828.png | Bin 359 -> 0 bytes ...lugin_bf91de1d72fffe8d25504531f52a3f2f.png | Bin 652 -> 0 bytes ...lugin_c465118a8d86d5f25bba37cc1dcb38a0.png | Bin 300 -> 0 bytes ...lugin_c4bdea6bbc03bcca6d713519e7bab071.png | Bin 962 -> 0 bytes ...lugin_c5c6dea10611dae1d470a5615869073a.png | Bin 5621 -> 0 bytes ...lugin_c7fe4fcfd08f7d4ca8638228bb83b4f9.png | Bin 4531 -> 0 bytes ...lugin_cb688f85a062f09bfaff5cf9144860a9.png | Bin 5949 -> 0 bytes ...lugin_cf09f406a2bf16c5f0c20c11d502f3b6.png | Bin 1645 -> 0 bytes ...lugin_cff60a46de8608e97a33bbae7c4e566d.png | Bin 1964 -> 0 bytes ...lugin_d284ec460bdb1abb64e7f9156d87d659.png | Bin 1530 -> 0 bytes ...lugin_d2ada4d93e287ac42a3681e58c96b105.png | Bin 492 -> 0 bytes ...lugin_d5edc50e5c0ce856d632a5a682e0347f.png | Bin 3473 -> 0 bytes ...lugin_d65298a2553c29f00e58481f3465086a.png | Bin 483 -> 0 bytes ...lugin_db3bf440f0c0846df16574e72743d947.png | Bin 410 -> 0 bytes ...lugin_df4770dd7b14577f14410b4f7ab59721.png | Bin 6267 -> 0 bytes ...lugin_e1a48f3da2196769b40a2a6183f83891.png | Bin 523 -> 0 bytes ...lugin_e214a7f954b15a31e60dd40d50c4ad27.png | Bin 579 -> 0 bytes ...lugin_e35c4217aa50607f25e6eadf9f27f874.png | Bin 7432 -> 0 bytes ...lugin_e46e9694bce68e1d38783e4cc8328e31.png | Bin 868 -> 0 bytes ...lugin_e52a515ef5edcb18f7f96aedab4af26e.png | Bin 461 -> 0 bytes ...lugin_e56be15b7e230ec52a9f6632e552ca4b.png | Bin 2118 -> 0 bytes ...lugin_e5709fc3ddb272adeaa7258d3d25ab22.png | Bin 386 -> 0 bytes ...lugin_e8298362de8db0a5a1d74d409427e7d2.png | Bin 1782 -> 0 bytes ...lugin_e9a0c0aa5d84cb4ea67265a3b06b9af5.png | Bin 6468 -> 0 bytes ...lugin_ebef6cda2881306e993839c1b4bcaa4c.png | Bin 925 -> 0 bytes ...lugin_edb200aa0d625d2d5cebb519d8d1f838.png | Bin 1310 -> 0 bytes ...lugin_eec594f64bc6a88c4e6ff8ae6fae8816.png | Bin 1266 -> 0 bytes ...lugin_efe7e111043faa761548a2e4bfa741ca.png | Bin 396 -> 0 bytes ...lugin_f19fedf2f7c0c0d4c869d0c7c0070aeb.png | Bin 1708 -> 0 bytes ...lugin_f266f29ff7212b8d77bf67567eac1fd3.png | Bin 582 -> 0 bytes ...lugin_f2ef2223eea8b06da51ecb20c450fa4a.png | Bin 2209 -> 0 bytes ...lugin_f87b1352f663a35bf263bc7e9a214ca3.png | Bin 869 -> 0 bytes ...lugin_f91ff8255a7b8a99c5eefcb2c29f9262.png | Bin 3927 -> 0 bytes ...lugin_facd1d42ae8b62aa1043316d525d3af4.png | Bin 596 -> 0 bytes ...lugin_fb83ec4be8b40d398fd520ee8a09f36d.png | Bin 4734 -> 0 bytes ...lugin_fcadee367bc447abe1119778b6fa1a14.png | Bin 730 -> 0 bytes ...0b1bd03f016c26e55e7a3979538e223_musrt0.png | Bin 3484 -> 0 bytes ...40ada0300f686_Theory-Tree-with-UserFcn.png | Bin 65571 -> 0 bytes ...46a8f75bc15fe_Theory-Tree-with-UserFcn.png | Bin 65536 -> 0 bytes ...66e7f65af64996b805ac54a0eba1f8c_musrt0.png | Bin 3518 -> 0 bytes doc/html/user/pub/MUSR/MusrFit/musrt0.png | Bin 7375 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/LaTeX_logo.png | Bin 864 -> 0 bytes ...5b31cac70e88b8477a14_musrgui-editor-v0.png | Bin 10145 -> 0 bytes ...890d5466ca71a2eda191_musrgui-editor-v0.png | Bin 10108 -> 0 bytes .../user/pub/MUSR/MusrGui/msr2data-plain.png | Bin 1034 -> 0 bytes .../user/pub/MUSR/MusrGui/musrFT-plain.png | Bin 497 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrFT.png | Bin 245 -> 0 bytes .../user/pub/MUSR/MusrGui/musrStep-32x32.png | Bin 1138 -> 0 bytes .../user/pub/MUSR/MusrGui/musrStep_0_0.png | Bin 85578 -> 0 bytes .../user/pub/MUSR/MusrGui/musrStep_1_0.png | Bin 88674 -> 0 bytes .../user/pub/MUSR/MusrGui/musrWiz-32x32.png | Bin 710 -> 0 bytes .../pub/MUSR/MusrGui/musrWiz-Create-1_0.png | Bin 34325 -> 0 bytes .../pub/MUSR/MusrGui/musrWiz-FitInfo-1_0.png | Bin 36414 -> 0 bytes .../MusrGui/musrWiz-FitParameters-1_0.png | Bin 52649 -> 0 bytes .../MUSR/MusrGui/musrWiz-Functions-1_0.png | Bin 31251 -> 0 bytes .../MUSR/MusrGui/musrWiz-Functions-2_0.png | Bin 60880 -> 0 bytes .../MUSR/MusrGui/musrWiz-Introduction_0.png | Bin 53696 -> 0 bytes .../pub/MUSR/MusrGui/musrWiz-Maps-1_0.png | Bin 35753 -> 0 bytes .../pub/MUSR/MusrGui/musrWiz-Theory-1_0.png | Bin 44180 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrasym.png | Bin 296 -> 0 bytes .../user/pub/MUSR/MusrGui/musrcalcchisq.png | Bin 337 -> 0 bytes .../user/pub/MUSR/MusrGui/musrchisq-plain.png | Bin 473 -> 0 bytes .../user/pub/MUSR/MusrGui/musrdump-plain.png | Bin 730 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrdump.png | Bin 263 -> 0 bytes .../user/pub/MUSR/MusrGui/musredit-main_0.png | Bin 48740 -> 0 bytes .../user/pub/MUSR/MusrGui/musrfit-plain.png | Bin 871 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrfit.html | 2 - doc/html/user/pub/MUSR/MusrGui/musrfit.png | Bin 307 -> 0 bytes .../pub/MUSR/MusrGui/musrgui-editor-v0.png | Bin 38407 -> 0 bytes .../user/pub/MUSR/MusrGui/musrmsr2data.html | 2 - .../user/pub/MUSR/MusrGui/musrmsr2data.png | Bin 301 -> 0 bytes .../user/pub/MUSR/MusrGui/musrprefs-plain.png | Bin 1054 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrprefs.png | Bin 303 -> 0 bytes .../user/pub/MUSR/MusrGui/musrsinglehisto.png | Bin 331 -> 0 bytes .../user/pub/MUSR/MusrGui/musrswap-plain.png | Bin 933 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrswap.png | Bin 347 -> 0 bytes .../user/pub/MUSR/MusrGui/musrt0-plain.png | Bin 553 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrt0.html | 2 - doc/html/user/pub/MUSR/MusrGui/musrt0.png | Bin 291 -> 0 bytes .../user/pub/MUSR/MusrGui/musrview-plain.png | Bin 574 -> 0 bytes doc/html/user/pub/MUSR/MusrGui/musrview.png | Bin 301 -> 0 bytes .../MusrRoot/MusrRootValidationScheme.png | Bin 98442 -> 0 bytes ...5a3ddb97bfa42_MusrRootValidationScheme.png | Bin 77757 -> 0 bytes ...lugin_616b0638293d1e0ff42a44f8ea7895ff.png | Bin 1543 -> 0 bytes ...f9b31d4414f37be0d3d171836fe63_musrt0-2.png | Bin 59150 -> 0 bytes ...b07604d494aa45c41710849314460_musrt0-2.png | Bin 59428 -> 0 bytes .../pub/MUSR/TutorialSingleHisto/msr2data.png | Bin 35050 -> 0 bytes .../pub/MUSR/TutorialSingleHisto/musrt0-1.png | Bin 19797 -> 0 bytes .../pub/MUSR/TutorialSingleHisto/musrt0-2.png | Bin 20329 -> 0 bytes .../MUSR/TutorialSingleHisto/musrview-1.png | Bin 46548 -> 0 bytes .../MUSR/TutorialSingleHisto/musrview-2.png | Bin 37869 -> 0 bytes .../MUSR/TutorialSingleHisto/musrview-3.png | Bin 43213 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI/eek.gif | Bin 1264 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI/no.gif | Bin 468 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI/skull.gif | Bin 1006 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI/wink.gif | Bin 135 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI/yes.gif | Bin 262 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI_/eek.gif | Bin 1264 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI_/no.gif | Bin 468 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI_/skull.gif | Bin 1006 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI_/skull.png | Bin 602 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI_/wink.gif | Bin 135 -> 0 bytes .../user/pub/Main/SmiliesPluginPSI_/yes.gif | Bin 262 -> 0 bytes .../user/pub/Main/WebPreferences/favicon.ico | 0 .../pub/Main/WebPreferences/psi_logo_150.gif | Bin 2253 -> 0 bytes .../System/DocumentGraphics/arrowright.png | Bin 349 -> 0 bytes .../pub/System/DocumentGraphics/changes.png | Bin 317 -> 0 bytes .../user/pub/System/DocumentGraphics/dms.gif | Bin 1019 -> 0 bytes .../DocumentGraphics/external-hover.gif | Bin 117 -> 0 bytes .../DocumentGraphics/external-visited.gif | Bin 117 -> 0 bytes .../pub/System/DocumentGraphics/external.gif | Bin 63 -> 0 bytes .../pub/System/DocumentGraphics/foswiki.png | Bin 691 -> 0 bytes .../user/pub/System/DocumentGraphics/help.png | Bin 786 -> 0 bytes .../pub/System/DocumentGraphics/index.png | Bin 344 -> 0 bytes .../user/pub/System/DocumentGraphics/mail.gif | Bin 1006 -> 0 bytes .../user/pub/System/DocumentGraphics/new.png | Bin 601 -> 0 bytes .../pub/System/DocumentGraphics/newtopic.png | Bin 739 -> 0 bytes .../pub/System/DocumentGraphics/notify.png | Bin 739 -> 0 bytes .../user/pub/System/DocumentGraphics/pdf.png | Bin 591 -> 0 bytes .../user/pub/System/DocumentGraphics/png.png | Bin 656 -> 0 bytes .../user/pub/System/DocumentGraphics/psi.gif | Bin 896 -> 0 bytes .../user/pub/System/DocumentGraphics/psi.png | Bin 416 -> 0 bytes .../System/DocumentGraphics/searchtopic.png | Bin 879 -> 0 bytes .../user/pub/System/DocumentGraphics/tip.png | Bin 782 -> 0 bytes .../user/pub/System/DocumentGraphics/todo.png | Bin 630 -> 0 bytes .../pub/System/DocumentGraphics/updated.png | Bin 891 -> 0 bytes .../pub/System/DocumentGraphics/warning.png | Bin 701 -> 0 bytes .../user/pub/System/HeadlinesPlugin/style.css | 79 - .../user/pub/System/PatternSkin/header5.gif | Bin 20639 -> 0 bytes .../user/pub/System/PatternSkin/print.css | 1 - .../PatternSkinTheme2009/TWiki_header.gif | Bin 16562 -> 0 bytes .../PatternSkinTheme2009/background_alert.gif | Bin 1195 -> 0 bytes .../bg_button_gradient.gif | Bin 1490 -> 0 bytes .../bg_buttoncancel_gradient.gif | Bin 1106 -> 0 bytes .../bg_submit_gradient.gif | Bin 1533 -> 0 bytes .../PatternSkinTheme2009/bullet-lock.gif | Bin 281 -> 0 bytes .../bullet-personal_sidebar.gif | Bin 51 -> 0 bytes .../PatternSkinTheme2009/bullet-toc.gif | Bin 54 -> 0 bytes .../PatternSkinTheme2009/button_arrow.gif | Bin 1297 -> 0 bytes .../button_font_selector.gif | Bin 831 -> 0 bytes .../System/PatternSkinTheme2009/colors.css | 1 - .../PatternSkinTheme2009/column_left.css | 1 - .../System/PatternSkinTheme2009/layout.css | 68 - .../pub/System/PatternSkinTheme2009/popup.gif | Bin 63 -> 0 bytes .../pub/System/PatternSkinTheme2009/style.css | 1 - .../PatternSkinTheme2009/variant_twiki.css | 1 - .../user/pub/System/PsiSkin/lock_open.png | Bin 592 -> 0 bytes .../user/pub/System/PsiSkin/psicolors.css | 95 - doc/html/user/pub/System/PsiSkin/psistyle.css | 240 -- .../user/pub/System/SkinTemplates/base.css | 1 - .../musredit/musredit_startup.xml.in | 24 +- 370 files changed, 33743 insertions(+), 8051 deletions(-) create mode 100644 doc/html/.buildinfo rename doc/html/{user/pub/MUSR/MusrFit => _downloads}/Makefile.TMyLibrary (100%) rename doc/html/{user/pub/MUSR/MusrRoot/RunInfo.png => _images/MusrRoot-RunInfo.png} (100%) rename doc/html/{user/pub/MUSR/MusrRoot/igp_f8f224022828dc9d95784de27d20b709_MusrRootValidationScheme.png => _images/MusrRootValidationScheme.png} (100%) create mode 100644 doc/html/_images/msr2data-GUI.svg create mode 100644 doc/html/_images/msr2data.svg create mode 100644 doc/html/_images/mupp-gui-0.svg create mode 100644 doc/html/_images/mupp-plot-0.svg create mode 100644 doc/html/_images/mupp.svg create mode 100644 doc/html/_images/musrFT.svg create mode 100644 doc/html/_images/musrStep-GUI.svg create mode 100644 doc/html/_images/musrStep-Modify-Selected.svg create mode 100644 doc/html/_images/musrStep.svg create mode 100644 doc/html/_images/musrWiz-Create.svg create mode 100644 doc/html/_images/musrWiz-FitInfo.svg create mode 100644 doc/html/_images/musrWiz-FitParam.svg create mode 100644 doc/html/_images/musrWiz-Functions-and-Theory.svg create mode 100644 doc/html/_images/musrWiz-Functions.svg create mode 100644 doc/html/_images/musrWiz-Intro.svg create mode 100644 doc/html/_images/musrWiz-Maps.svg create mode 100644 doc/html/_images/musrWiz-Theory.svg create mode 100644 doc/html/_images/musrWiz.svg create mode 100644 doc/html/_images/musrchisq.svg create mode 100644 doc/html/_images/musrdump.svg create mode 100644 doc/html/_images/musredit-musrWiz.svg create mode 100644 doc/html/_images/musrfit.svg create mode 100644 doc/html/_images/musrprefs.svg create mode 100644 doc/html/_images/musrswap.svg create mode 100644 doc/html/_images/musrt0-icon.svg create mode 100644 doc/html/_images/musrt0.png create mode 100644 doc/html/_images/musrview.svg create mode 100644 doc/html/_images/theory-tree-with-user-fcn.svg create mode 100644 doc/html/_images/tutorial-musredit-msr2data.png create mode 100644 doc/html/_images/tutorial-musrt0-1.png create mode 100644 doc/html/_images/tutorial-musrt0-2.png create mode 100644 doc/html/_images/tutorial-musrview-1.png create mode 100644 doc/html/_images/tutorial-musrview-FT.png create mode 100644 doc/html/_sources/acknowledgement.txt create mode 100644 doc/html/_sources/any2many.txt create mode 100644 doc/html/_sources/bugtracking.txt create mode 100644 doc/html/_sources/cite.txt create mode 100644 doc/html/_sources/index.txt create mode 100644 doc/html/_sources/msr2data.txt create mode 100644 doc/html/_sources/mupp.txt create mode 100644 doc/html/_sources/musr-root.txt create mode 100644 doc/html/_sources/musredit.txt create mode 100644 doc/html/_sources/setup-dks.txt create mode 100644 doc/html/_sources/setup-standard.txt create mode 100644 doc/html/_sources/tutorial.txt create mode 100644 doc/html/_sources/user-libs.txt create mode 100644 doc/html/_sources/user-manual.txt create mode 100644 doc/html/_static/ajax-loader.gif create mode 100644 doc/html/_static/basic.css rename doc/html/{user/pub/System/DocumentGraphics/toggleopen.png => _static/comment-bright.png} (74%) create mode 100644 doc/html/_static/comment-close.png rename doc/html/{user/pub/System/DocumentGraphics/toggleclose.png => _static/comment.png} (76%) create mode 100644 doc/html/_static/doctools.js create mode 100644 doc/html/_static/down-pressed.png create mode 100644 doc/html/_static/down.png create mode 100644 doc/html/_static/file.png create mode 100644 doc/html/_static/jquery.js create mode 100644 doc/html/_static/minus.png create mode 100644 doc/html/_static/nature.css create mode 100644 doc/html/_static/plus.png create mode 100644 doc/html/_static/pygments.css create mode 100644 doc/html/_static/searchtools.js create mode 100644 doc/html/_static/underscore.js create mode 100644 doc/html/_static/up-pressed.png create mode 100644 doc/html/_static/up.png create mode 100644 doc/html/_static/websupport.js create mode 100644 doc/html/acknowledgement.html create mode 100644 doc/html/any2many.html create mode 100644 doc/html/bugtracking.html create mode 100644 doc/html/cite.html create mode 100644 doc/html/genindex.html create mode 100644 doc/html/index.html create mode 100644 doc/html/msr2data.html create mode 100644 doc/html/mupp.html create mode 100644 doc/html/musr-root.html create mode 100644 doc/html/musredit.html create mode 100644 doc/html/objects.inv create mode 100644 doc/html/search.html create mode 100644 doc/html/searchindex.js create mode 100644 doc/html/setup-dks.html create mode 100644 doc/html/setup-standard.html create mode 100644 doc/html/tutorial.html create mode 100644 doc/html/user-libs.html create mode 100644 doc/html/user-manual.html delete mode 100644 doc/html/user/MUSR/Any2Many.html delete mode 100644 doc/html/user/MUSR/BmwLibs.html delete mode 100644 doc/html/user/MUSR/CiteMusrFit.html delete mode 100644 doc/html/user/MUSR/LibFitPofB.html delete mode 100644 doc/html/user/MUSR/LibZFRelaxation.html delete mode 100644 doc/html/user/MUSR/Msr2Data.html delete mode 100644 doc/html/user/MUSR/MusrFit.html delete mode 100644 doc/html/user/MUSR/MusrFitAcknowledgements.html delete mode 100644 doc/html/user/MUSR/MusrFitSetup.html delete mode 100644 doc/html/user/MUSR/MusrFitSetupDKS.html delete mode 100644 doc/html/user/MUSR/MusrGui.html delete mode 100644 doc/html/user/MUSR/MusrRoot.html delete mode 100644 doc/html/user/MUSR/QuickStart.html delete mode 100644 doc/html/user/MUSR/TutorialSingleHisto.html delete mode 100644 doc/html/user/MUSR/WebHome.html delete mode 100644 doc/html/user/index.html delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_039b3b38df7c6f284089c14f1efdf643.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_1c744b7e1104ae8c4a6bf4f8391df10b.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_2339fd9b358ebe241da05c665668d48b.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_28f3ed750a4819b4256c2f9be649f594.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_3146cb17887e3a20cc2078f103605af5.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_373e9bf1fc97e2c6aacf93bcc090402c.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_3cee3cc69dbe918398ec39a72a465014.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_432d7664e0756ded77e7423dd256c122.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_469d5d1b83125e4915e2f073d8150b12.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_532f98969690650ac4d127919a0eda38.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_6997ecca9587ccd09cc532d4476ae3a8.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_70e57aa1afa7d337fa46f427b34feb54.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_7d1f8851f7efae8cd5d65842fb528f66.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_86f4cdca957f08c4d0ad3107b42d5502.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_88f576f1799d16c1df9f3205ab2946f2.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_8fa3ac8f18b7bc49eb89163d6528684c.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_9bb7e08c8e276a92650d89d6918b3769.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_9cc0fd47eedada7247b14775bd308deb.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_a5feddf35c572c4579cbef865caf8863.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_ae6486e95514c0c6f88837cbc62a522c.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_b6719fad8e30208538b34bc94040b7a5.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_c25933e91d56089992506f463d71de8f.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_c465118a8d86d5f25bba37cc1dcb38a0.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_d5a20ca7e3a33f6badc441163d1efe34.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_dfd02951094e1cb98f48e3f6d4562f38.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_e0b0e98f9a3974249b42b6910523c8a4.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_e47f33589d28eaa3f9baccb7a80fdbaa.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_e6688a12ee4e821abc31b4c1dd511539.png delete mode 100644 doc/html/user/pub/MUSR/LibFitPofB/_MathModePlugin_e8414d477977d226317c020980b7d34f.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_0a70ac778f3ffbf2c93d46b23559d371.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_2b4a75902dcb0b8de5a662656d3b9066.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_4611c56f1556464dd8a6eaabbe070c05.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_5100b245762fc5c6dee8db3b05032a18.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_52c5f826fb399ae721887c5fb4e31de0.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_975f948b57199037b2b8bfb5e986b6a9.png delete mode 100644 doc/html/user/pub/MUSR/LibZFRelaxation/_MathModePlugin_fca91646b118061038b53ada5563c17c.png delete mode 100644 doc/html/user/pub/MUSR/Msr2Data/igp_1c17a5bfb1fd01add8e3c7933ca421d5_msr2data-input-tabs.png delete mode 100644 doc/html/user/pub/MUSR/Msr2Data/igp_589e1dc22ab7bf8fd9d5889da6e407f1_msr2data-input-tabs.png delete mode 100644 doc/html/user/pub/MUSR/Msr2Data/msr2data-input-tabs.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/Makefile.html delete mode 100644 doc/html/user/pub/MUSR/MusrFit/Theory-Tree-with-UserFcn.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_014e8cd7847b5402573b3292b2569731.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_020e973cf5b1293c76cb3ecef5a269f8.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_022741828ce174efdb6387e198d4d174.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_03095d51eca2bcb1dda113e995238fc0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_08b9deccddc142bcb30845cad4579dd1.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_125ae4b9a7d16163023ce9cb3043aa0a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_1582d158c5651581ca9e800ee698ce9f.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_16b8c518c1e529e6c963929287ef3a56.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_1f1b2becd9ba1bee3b5d7f897bd8db7e.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_1f6a4872a5556d809b896252d177f297.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_20651e8230c7eb66c452bb1f01dc4633.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_23ec8fc398b4e415b86bbd2b65f9a63c.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_24c06da56000c5aba89b43d3d082d566.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_2508962dd22d85bdaebb0d6a483c4b3f.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_26a5ae8799badcc3bcbe1823265a9053.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_2be9dcd7bf20bd9b6ae1aae11ded7c43.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_30b87ca180341a9f8f9a15c1082f7f29.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_319772b46bc6861fbe24a28e59530ade.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_3285744b1914390b321f67f390129f79.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_3e7298348ee1858b6fe4147c47afb5e3.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_3ee4cdd2dc2829c9d29c0f213de51785.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_409b6ae604705cd9a31d089bcfba146b.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_466fcb53c3da4f84fb2d12e03eef9439.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_49046b617890ffeaca8bc16ae66d0dc5.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_50ba40cfb1308d024ff074655f531705.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_51757d805f7111ffe6e0b430b6d137c7.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_52d3660a04cd068055f8e72b5ae47097.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_53e41adf70ef506cc7668f8593a1b501.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_545dca52882440763fc3ac973a36852a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_5563541e58443a8d18e5bd40d2746e9a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_568ee751220d0e7d171a7ebb6da328b9.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_57316547e3b34dd9d537b722e4a0e176.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_5c718f2fbcec7dd36986d69a28eda3db.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_5e07a020de661906573e8fed8eff32bf.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_61136f20673ad20f955c43e43b8cec9d.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_6355c4cb1ccffc332963726dd3077985.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_63b1658426cdac24a0730149c3b5ea80.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_6466a97e4b7c510909bffce51d31c4b9.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_65bea57ac8fb766c4f93ca77947937f5.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_663c0beda820045042826686eaeefb6a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_6a34fe0c88c79d8a90defad81f36da6d.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_6b6bbc4add4da0bde8220c54594658f3.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_7188605a647615e4fb92cc89274b22a0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_7cd3c4b24d4a0c837964ae6b635f9ee0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_7f4cd42199fbf712ad5a86f9d94bd698.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_8024ece95f6c092834e35ca64920583a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_819a4fe998dacad865a00b643564873e.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_81abadaf16877e78e8bb9317a16cd704.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_82adbab00b6a057f04037b44746e33eb.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_82fec90aa9e6eeaba9267ad46f426909.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_8749458be5ba9f4edf09b6ecde03313d.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_89458ff127e694cf28c0cdc314de62d1.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_8aad0e0c2c1f20995c483933a896ca0d.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_8b46c96933bc8a754fde5aa613d0e806.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_8eb55dc360ede9ff12fa65dc47046bc0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_8f88bba11aa1a2535ef7af4374ab4796.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_91086477d80ae4fd407c852073b3a5b8.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_95da508ef32b516260a14999eaf14f46.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_984f3a1c5d0c04f9471fa518f6f4ab22.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_9c7fbcfa6252ecf134381d9921d16bbc.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_a08362729d5fcf782e28a536cc3a9e85.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_a57c0747dc272c95ffb683f35359ecf9.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_a6e7fae88607100e780df97caf1683cf.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_aad467dd15ac57481f24ada5fbe5d85f.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_ab5be67e3c585fe71d839ada9222b051.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_ad7013bb754d671a35485233edf30254.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_af36b27f661f5b8a569f5672d18f8844.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_b0c4a8cbbcf4189b64418b381939a979.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_b10bf8314f158b72e1e3462ba2d23fcc.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_b2a023c64c8d8b460f929d404730ec8a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_b59000274e877651d11323c23f21c665.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_b7d61ac387fd12b956816be1c6c9a577.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_b8a915ef0eb8aa8e117519d01dfb10c1.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_bd5c765027d46aa1433dda03f540c17e.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_be8817308ad9fe2fa99fe00abdaba828.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_bf91de1d72fffe8d25504531f52a3f2f.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_c465118a8d86d5f25bba37cc1dcb38a0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_c4bdea6bbc03bcca6d713519e7bab071.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_c5c6dea10611dae1d470a5615869073a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_c7fe4fcfd08f7d4ca8638228bb83b4f9.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_cb688f85a062f09bfaff5cf9144860a9.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_cf09f406a2bf16c5f0c20c11d502f3b6.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_cff60a46de8608e97a33bbae7c4e566d.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_d284ec460bdb1abb64e7f9156d87d659.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_d2ada4d93e287ac42a3681e58c96b105.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_d5edc50e5c0ce856d632a5a682e0347f.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_d65298a2553c29f00e58481f3465086a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_db3bf440f0c0846df16574e72743d947.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_df4770dd7b14577f14410b4f7ab59721.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e1a48f3da2196769b40a2a6183f83891.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e214a7f954b15a31e60dd40d50c4ad27.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e35c4217aa50607f25e6eadf9f27f874.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e46e9694bce68e1d38783e4cc8328e31.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e52a515ef5edcb18f7f96aedab4af26e.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e56be15b7e230ec52a9f6632e552ca4b.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e5709fc3ddb272adeaa7258d3d25ab22.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e8298362de8db0a5a1d74d409427e7d2.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_e9a0c0aa5d84cb4ea67265a3b06b9af5.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_ebef6cda2881306e993839c1b4bcaa4c.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_edb200aa0d625d2d5cebb519d8d1f838.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_eec594f64bc6a88c4e6ff8ae6fae8816.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_efe7e111043faa761548a2e4bfa741ca.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_f19fedf2f7c0c0d4c869d0c7c0070aeb.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_f266f29ff7212b8d77bf67567eac1fd3.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_f2ef2223eea8b06da51ecb20c450fa4a.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_f87b1352f663a35bf263bc7e9a214ca3.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_f91ff8255a7b8a99c5eefcb2c29f9262.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_facd1d42ae8b62aa1043316d525d3af4.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_fb83ec4be8b40d398fd520ee8a09f36d.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/_MathModePlugin_fcadee367bc447abe1119778b6fa1a14.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/igp_30b1bd03f016c26e55e7a3979538e223_musrt0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/igp_96bafe0a153bdf59fbc40ada0300f686_Theory-Tree-with-UserFcn.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/igp_9eac78831993c6c274146a8f75bc15fe_Theory-Tree-with-UserFcn.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/igp_a66e7f65af64996b805ac54a0eba1f8c_musrt0.png delete mode 100644 doc/html/user/pub/MUSR/MusrFit/musrt0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/LaTeX_logo.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/igp_4e5811420d6b5b31cac70e88b8477a14_musrgui-editor-v0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/igp_6000206c604d890d5466ca71a2eda191_musrgui-editor-v0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/msr2data-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrFT-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrFT.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrStep-32x32.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrStep_0_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrStep_1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-32x32.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-Create-1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-FitInfo-1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-FitParameters-1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-Functions-1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-Functions-2_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-Introduction_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-Maps-1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrWiz-Theory-1_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrasym.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrcalcchisq.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrchisq-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrdump-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrdump.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musredit-main_0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrfit-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrfit.html delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrfit.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrgui-editor-v0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrmsr2data.html delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrmsr2data.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrprefs-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrprefs.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrsinglehisto.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrswap-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrswap.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrt0-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrt0.html delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrt0.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrview-plain.png delete mode 100644 doc/html/user/pub/MUSR/MusrGui/musrview.png delete mode 100644 doc/html/user/pub/MUSR/MusrRoot/MusrRootValidationScheme.png delete mode 100644 doc/html/user/pub/MUSR/MusrRoot/igp_83c77f15ea1749504415a3ddb97bfa42_MusrRootValidationScheme.png delete mode 100644 doc/html/user/pub/MUSR/QuickStart/_MathModePlugin_616b0638293d1e0ff42a44f8ea7895ff.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/igp_9c0f9b31d4414f37be0d3d171836fe63_musrt0-2.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/igp_dabb07604d494aa45c41710849314460_musrt0-2.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/msr2data.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/musrt0-1.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/musrt0-2.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/musrview-1.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/musrview-2.png delete mode 100644 doc/html/user/pub/MUSR/TutorialSingleHisto/musrview-3.png delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI/eek.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI/no.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI/skull.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI/wink.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI/yes.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI_/eek.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI_/no.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI_/skull.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI_/skull.png delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI_/wink.gif delete mode 100644 doc/html/user/pub/Main/SmiliesPluginPSI_/yes.gif delete mode 100644 doc/html/user/pub/Main/WebPreferences/favicon.ico delete mode 100644 doc/html/user/pub/Main/WebPreferences/psi_logo_150.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/arrowright.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/changes.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/dms.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/external-hover.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/external-visited.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/external.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/foswiki.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/help.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/index.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/mail.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/new.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/newtopic.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/notify.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/pdf.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/png.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/psi.gif delete mode 100644 doc/html/user/pub/System/DocumentGraphics/psi.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/searchtopic.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/tip.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/todo.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/updated.png delete mode 100644 doc/html/user/pub/System/DocumentGraphics/warning.png delete mode 100644 doc/html/user/pub/System/HeadlinesPlugin/style.css delete mode 100644 doc/html/user/pub/System/PatternSkin/header5.gif delete mode 100644 doc/html/user/pub/System/PatternSkin/print.css delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/TWiki_header.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/background_alert.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/bg_button_gradient.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/bg_buttoncancel_gradient.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/bg_submit_gradient.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/bullet-lock.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/bullet-personal_sidebar.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/bullet-toc.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/button_arrow.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/button_font_selector.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/colors.css delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/column_left.css delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/layout.css delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/popup.gif delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/style.css delete mode 100644 doc/html/user/pub/System/PatternSkinTheme2009/variant_twiki.css delete mode 100644 doc/html/user/pub/System/PsiSkin/lock_open.png delete mode 100644 doc/html/user/pub/System/PsiSkin/psicolors.css delete mode 100644 doc/html/user/pub/System/PsiSkin/psistyle.css delete mode 100644 doc/html/user/pub/System/SkinTemplates/base.css diff --git a/doc/html/.buildinfo b/doc/html/.buildinfo new file mode 100644 index 00000000..a4002c7c --- /dev/null +++ b/doc/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 5c197f7d1a99bc4d9f1831306e12cc04 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/html/user/pub/MUSR/MusrFit/Makefile.TMyLibrary b/doc/html/_downloads/Makefile.TMyLibrary similarity index 100% rename from doc/html/user/pub/MUSR/MusrFit/Makefile.TMyLibrary rename to doc/html/_downloads/Makefile.TMyLibrary diff --git a/doc/html/user/pub/MUSR/MusrRoot/RunInfo.png b/doc/html/_images/MusrRoot-RunInfo.png similarity index 100% rename from doc/html/user/pub/MUSR/MusrRoot/RunInfo.png rename to doc/html/_images/MusrRoot-RunInfo.png diff --git a/doc/html/user/pub/MUSR/MusrRoot/igp_f8f224022828dc9d95784de27d20b709_MusrRootValidationScheme.png b/doc/html/_images/MusrRootValidationScheme.png similarity index 100% rename from doc/html/user/pub/MUSR/MusrRoot/igp_f8f224022828dc9d95784de27d20b709_MusrRootValidationScheme.png rename to doc/html/_images/MusrRootValidationScheme.png diff --git a/doc/html/_images/msr2data-GUI.svg b/doc/html/_images/msr2data-GUI.svg new file mode 100644 index 00000000..65e35de1 --- /dev/null +++ b/doc/html/_images/msr2data-GUI.svg @@ -0,0 +1,862 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + diff --git a/doc/html/_images/msr2data.svg b/doc/html/_images/msr2data.svg new file mode 100644 index 00000000..6efadaf6 --- /dev/null +++ b/doc/html/_images/msr2data.svg @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/mupp-gui-0.svg b/doc/html/_images/mupp-gui-0.svg new file mode 100644 index 00000000..2e046894 --- /dev/null +++ b/doc/html/_images/mupp-gui-0.svg @@ -0,0 +1,1394 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 9 + + + + 7 + + + + 9 + + + + 10 + + + + 11 + + + + 12 + + + + 13 + + + diff --git a/doc/html/_images/mupp-plot-0.svg b/doc/html/_images/mupp-plot-0.svg new file mode 100644 index 00000000..1304ec4e --- /dev/null +++ b/doc/html/_images/mupp-plot-0.svg @@ -0,0 +1,648 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/doc/html/_images/mupp.svg b/doc/html/_images/mupp.svg new file mode 100644 index 00000000..eb0b1186 --- /dev/null +++ b/doc/html/_images/mupp.svg @@ -0,0 +1,199 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + P + + + diff --git a/doc/html/_images/musrFT.svg b/doc/html/_images/musrFT.svg new file mode 100644 index 00000000..e9289a3a --- /dev/null +++ b/doc/html/_images/musrFT.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/musrStep-GUI.svg b/doc/html/_images/musrStep-GUI.svg new file mode 100644 index 00000000..c5475689 --- /dev/null +++ b/doc/html/_images/musrStep-GUI.svg @@ -0,0 +1,2552 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 6 + + + + 5 + + + + 7 + + + + 8 + + + + diff --git a/doc/html/_images/musrStep-Modify-Selected.svg b/doc/html/_images/musrStep-Modify-Selected.svg new file mode 100644 index 00000000..cc69fdb8 --- /dev/null +++ b/doc/html/_images/musrStep-Modify-Selected.svg @@ -0,0 +1,2223 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + 1 + + + + + + 2 + + + + + + 3 + + + + + + 4 + + + + + + 5 + + + + diff --git a/doc/html/_images/musrStep.svg b/doc/html/_images/musrStep.svg new file mode 100644 index 00000000..176bb47e --- /dev/null +++ b/doc/html/_images/musrStep.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/musrWiz-Create.svg b/doc/html/_images/musrWiz-Create.svg new file mode 100644 index 00000000..d62a8ee8 --- /dev/null +++ b/doc/html/_images/musrWiz-Create.svg @@ -0,0 +1,662 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + + 2 + + 2 + + + 3 + + + diff --git a/doc/html/_images/musrWiz-FitInfo.svg b/doc/html/_images/musrWiz-FitInfo.svg new file mode 100644 index 00000000..64eee9d2 --- /dev/null +++ b/doc/html/_images/musrWiz-FitInfo.svg @@ -0,0 +1,698 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + 1 + + + + + + 2 + + + + + + 3 + + + + diff --git a/doc/html/_images/musrWiz-FitParam.svg b/doc/html/_images/musrWiz-FitParam.svg new file mode 100644 index 00000000..1a302a4c --- /dev/null +++ b/doc/html/_images/musrWiz-FitParam.svg @@ -0,0 +1,649 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + diff --git a/doc/html/_images/musrWiz-Functions-and-Theory.svg b/doc/html/_images/musrWiz-Functions-and-Theory.svg new file mode 100644 index 00000000..ef01e2f9 --- /dev/null +++ b/doc/html/_images/musrWiz-Functions-and-Theory.svg @@ -0,0 +1,703 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/musrWiz-Functions.svg b/doc/html/_images/musrWiz-Functions.svg new file mode 100644 index 00000000..bdb58d3b --- /dev/null +++ b/doc/html/_images/musrWiz-Functions.svg @@ -0,0 +1,561 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + + 2 + + + diff --git a/doc/html/_images/musrWiz-Intro.svg b/doc/html/_images/musrWiz-Intro.svg new file mode 100644 index 00000000..d504b7e6 --- /dev/null +++ b/doc/html/_images/musrWiz-Intro.svg @@ -0,0 +1,751 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + 2 + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 7 + + + + 8 + + + diff --git a/doc/html/_images/musrWiz-Maps.svg b/doc/html/_images/musrWiz-Maps.svg new file mode 100644 index 00000000..b5a8d6c0 --- /dev/null +++ b/doc/html/_images/musrWiz-Maps.svg @@ -0,0 +1,569 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + diff --git a/doc/html/_images/musrWiz-Theory.svg b/doc/html/_images/musrWiz-Theory.svg new file mode 100644 index 00000000..1dc1ec67 --- /dev/null +++ b/doc/html/_images/musrWiz-Theory.svg @@ -0,0 +1,171 @@ + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + diff --git a/doc/html/_images/musrWiz.svg b/doc/html/_images/musrWiz.svg new file mode 100644 index 00000000..1b3cafe5 --- /dev/null +++ b/doc/html/_images/musrWiz.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/doc/html/_images/musrchisq.svg b/doc/html/_images/musrchisq.svg new file mode 100644 index 00000000..93f6576c --- /dev/null +++ b/doc/html/_images/musrchisq.svg @@ -0,0 +1,127 @@ + + + + + + + image/svg+xml + + + + + + + χ2 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/musrdump.svg b/doc/html/_images/musrdump.svg new file mode 100644 index 00000000..f81adb2f --- /dev/null +++ b/doc/html/_images/musrdump.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + DUMP + + + + + + + + + + + + + diff --git a/doc/html/_images/musredit-musrWiz.svg b/doc/html/_images/musredit-musrWiz.svg new file mode 100644 index 00000000..848be6a9 --- /dev/null +++ b/doc/html/_images/musredit-musrWiz.svg @@ -0,0 +1,680 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/doc/html/_images/musrfit.svg b/doc/html/_images/musrfit.svg new file mode 100644 index 00000000..48931d3f --- /dev/null +++ b/doc/html/_images/musrfit.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/musrprefs.svg b/doc/html/_images/musrprefs.svg new file mode 100644 index 00000000..7230817b --- /dev/null +++ b/doc/html/_images/musrprefs.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + PREFS + + + + + + + + + + + + diff --git a/doc/html/_images/musrswap.svg b/doc/html/_images/musrswap.svg new file mode 100644 index 00000000..31cd08e3 --- /dev/null +++ b/doc/html/_images/musrswap.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + MLOG + MSR + + + + + + + + + + diff --git a/doc/html/_images/musrt0-icon.svg b/doc/html/_images/musrt0-icon.svg new file mode 100644 index 00000000..28da0830 --- /dev/null +++ b/doc/html/_images/musrt0-icon.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + T0 + + diff --git a/doc/html/_images/musrt0.png b/doc/html/_images/musrt0.png new file mode 100644 index 0000000000000000000000000000000000000000..da7509b0e7a266b3451e85a7efdb339fb0df3363 GIT binary patch literal 12240 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 literal 0 HcmV?d00001 diff --git a/doc/html/_images/musrview.svg b/doc/html/_images/musrview.svg new file mode 100644 index 00000000..36edb07f --- /dev/null +++ b/doc/html/_images/musrview.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/_images/theory-tree-with-user-fcn.svg b/doc/html/_images/theory-tree-with-user-fcn.svg new file mode 100644 index 00000000..6447e917 --- /dev/null +++ b/doc/html/_images/theory-tree-with-user-fcn.svg @@ -0,0 +1,661 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Run Block 1Theory Tree + Run Block 2Theory Tree + Run Block NTheory Tree + + + + + + + + + + + + + * + * + * + uF2 + uF1 + + + + + + + + + + + + + + * + * + * + uF2 + uF1 + + + + + + + + + + + + + + * + * + * + uF2 + uF1 + + ... + + + + + g_uF1 + g_uF2 + + + + + + + + + diff --git a/doc/html/_images/tutorial-musredit-msr2data.png b/doc/html/_images/tutorial-musredit-msr2data.png new file mode 100644 index 0000000000000000000000000000000000000000..6d16d389d68a39a3b5d2a4337f9483e911cc215f GIT binary patch literal 48339 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 m0fQ96h3TsP>#XPgN9UrAs_rs5o5kQT(dK literal 0 HcmV?d00001 diff --git a/doc/html/_images/tutorial-musrt0-2.png b/doc/html/_images/tutorial-musrt0-2.png new file mode 100644 index 0000000000000000000000000000000000000000..90ba949635c47a01b5248f980a3869e0bb434c3e GIT binary patch literal 16884 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 U$Ha0F{9nkO+gi#+ijQCZ9~B|m!vFvP literal 0 HcmV?d00001 diff --git a/doc/html/_images/tutorial-musrview-1.png b/doc/html/_images/tutorial-musrview-1.png new file mode 100644 index 0000000000000000000000000000000000000000..83ebc9772b41ff7397722d6026c15cdf5698e4cb GIT binary patch literal 40242 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

I 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 UOdi2j1;_VvH1vPNsM)^wAHI)>_5c6? literal 0 HcmV?d00001 diff --git a/doc/html/_images/tutorial-musrview-FT.png b/doc/html/_images/tutorial-musrview-FT.png new file mode 100644 index 0000000000000000000000000000000000000000..105b7416f0a9815b72e8ac4746a710fe78a8cf90 GIT binary patch literal 37778 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 +.. index:: acknowledgment + +.. _acknowledgment: + +Acknowledgements +================ + + +**Bastian M. Wojek** + I am very much indebted to BMW for his rigorous testing of ``musrfit``, his many useful suggestions, contributions, and for the + largest part of the user manual of ``musrfit`` which makes it accessible to a broader audience! Many thanks Bastian! + +**Uldis Locans** + I am very much indebted to Uldis work on :ref:`DKS ` enabling the GPU support for ``musrfit``. His kind, calm, and + extremely competent way to deal with his projects as well as to deal with the chaos of physicists way to think is admirable. Many thanks Uldis! \ No newline at end of file diff --git a/doc/html/_sources/any2many.txt b/doc/html/_sources/any2many.txt new file mode 100644 index 00000000..6b5fd201 --- /dev/null +++ b/doc/html/_sources/any2many.txt @@ -0,0 +1,8 @@ +.. include:: +.. index:: any2many + +any2many - a Universal |mgr|\SR-file-format converter +===================================================== + +``any2many`` allows to convert most |mgr|\SR-file-formats from one to the other. +For a detailed description see :ref:`here `. \ No newline at end of file diff --git a/doc/html/_sources/bugtracking.txt b/doc/html/_sources/bugtracking.txt new file mode 100644 index 00000000..55a5ff54 --- /dev/null +++ b/doc/html/_sources/bugtracking.txt @@ -0,0 +1,9 @@ +.. index:: bugtracking +.. _bugtracking: + +Bugtracking +=========== + +For reporting bugs or requesting new features and improvements please use +the `bitbucket-repo `_ (preferred) +or send an e-mail to A. Suter at PSI. diff --git a/doc/html/_sources/cite.txt b/doc/html/_sources/cite.txt new file mode 100644 index 00000000..5a71e6f1 --- /dev/null +++ b/doc/html/_sources/cite.txt @@ -0,0 +1,18 @@ +.. include:: +.. index:: cite +.. _cite: + +How to Cite ``musrfit``? +======================== + +Since quite some effort is going into the development and maintenance of the ``musrfit`` package, you should at least acknowledge it in your publication if you have used it to analyze your data. Even better of course is to cite it properly by the reference given beneath + + * A.\ Suter, B.M. Wojek, "Musrfit: A Free Platform-Independent Framework for |mgr|\SR Data Analysis", Physics Procedia **30**, 69 (2012). ``_ + +The GPU high speed ``musrfit`` version is utilizing ``DKS``. In case you are using this version, please also add the following citations + + * A.\ Adelmann, U. Locans, A. Suter, "The Dynamic Kernel Scheduler—Part 1", Computer Physics Communications **207**, 83 (2016). ``_ + * U.\ Locans, *et al.*, "Real-time computation of parameter fitting and image reconstruction using graphical processing units", Computer Physics Communications **215**, 71 (2017). ``_ + * U.\ Locans and A.\ Suter, "Musrfit – Real Time Parameter Fitting Using GPUs", JPS Conf. Proc. *21*, 011051 (2018). ``_ + + diff --git a/doc/html/_sources/index.txt b/doc/html/_sources/index.txt new file mode 100644 index 00000000..8ac278b4 --- /dev/null +++ b/doc/html/_sources/index.txt @@ -0,0 +1,31 @@ +.. musrfit docu documentation master file, created by + sphinx-quickstart on Sun Jun 17 11:00:32 2018. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to musrfit documentation! +================================= + +.. toctree:: + :maxdepth: 2 + + cite + tutorial + user-manual + user-libs + setup-standard + setup-dks + musredit + mupp + msr2data + any2many + musr-root + acknowledgement + bugtracking + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/doc/html/_sources/msr2data.txt b/doc/html/_sources/msr2data.txt new file mode 100644 index 00000000..8e77bbca --- /dev/null +++ b/doc/html/_sources/msr2data.txt @@ -0,0 +1,374 @@ +.. include:: +.. index:: msr2data + +.. _msr2data: + +msr2data - A Program for Automatically Processing Multiple ``musrfit`` msr Files +================================================================================ + +``msr2data`` (originally written by B. M. Wojek) is a program implemented in ``C++``. Its purpose is +to process multiple msr files (input files for ``musrfit``) with the same parameters and summarize the fitting +results either in a *TRIUMF DB* [#f1]_ or a *column ASCII* file. This allows essentially to + +#. Collect the fit parameters. +#. Generate *new* input msr files based on old ones. + +.. [#f1] For an abridged description of this format see `here `_. The DB files + produced by ``msr2data`` can be viewed for instance with :ref:`mupp ` or |mgr|\View `see here `_, however, + they are not completely backward-compatible to the original ``db language`` since the parameter names can be longer than five or + six characters! In order to establish this backward compatibility (if needed) the user has to ensure the correct length of the + parameter names in the msr files! + +.. _msr2data-basic-usage: + +Basic Types of Usage +-------------------- + +Apart from numerous :ref:`optional parameters ` that might be set, in principle there are four different ways of calling ``msr2data``. +These differ in how the list of runs which should be processed is supplied: + +**msr2data [optional parameters]** + A single run number. +**msr2data [optional parameters]** + An interval of run numbers is specified through the first and the last run number. The condition ```` < ```` is not necessary. +**msr2data \[ \] [optional parameters]** + Where ```` is one or a combination of the following: + + #. ``, , , ... `` : run numbers, *e.g.* 123 124, + #. ``-`` : a range, *e.g.* 123-125 -> 123 124 125, + #. ``::`` : a sequence, *e.g.* 123:127:2 -> 123 125 127. ```` has to be a positive integer. + #. A ```` can also combine (1)-(3), *e.g.* 123 128-130 133, etc. + +**msr2data [optional parameters]** + An ASCII file containing a list of run numbers and optional external parameters is passed to ``msr2data``. For the structure of the ASCII file + see :ref:`below `. + +All four basic types of calling ``msr2data`` contain the *mandatory* file-name ```` passed right after the list of runs. The meaning of +this ```` should become clear after giving examples for all four cases: + +.. code-block:: bash + + $ msr2data 8472 _tf_h13 + +generates the DB file ``out.db`` (can be changed by using the -o option) from ``8472_tf_h13.msr``. + +.. code-block:: bash + + $ msr2data 8472 8474 _tf_h13 + +generates the DB file ``out.db`` (can be changed by using the -o option) from ``8472_tf_h13.msr``, ``8473_tf_h13.msr``, and ``8474_tf_h13.msr``. + +.. code-block:: bash + + $ msr2data [8472 8470] _tf_h13 + +generates the DB file ``out.db`` (can be changed by using the -o option) from ``8472_tf_h13.msr`` and ``8470_tf_h13.msr``. + +.. code-block:: bash + + $ msr2data [8470:8474:2] _tf_h13 + +generates the DB file ``out.db`` (can be changed by using the -o option) from ``8470_tf_h13.msr``, ``8472_tf_h13.msr``, and ``8474_tf_h13.msr``. + +.. _run-list-file_structure: + +Run List File Structure ++++++++++++++++++++++++ + +.. code-block:: bash + + $ msr2data run.list _tf_h13 + +generates the DB file ``out.db`` (can be changed by using the -o option) from all runs listed in the ASCII file ``run.list`` in the working directory. +In this file it is also possible to include *external* parameters which should be put in the resulting DB file. The structure of the ``run.list`` is the following: + +:: + + RUN VAR1 VAR2 VAR3 ... + 8460 200 27.1 46.2 ... + 8472 205 27.1 46.3 ... + 8453 210 27.2 45.9 ... + · · · · + · · · · + · · · · + +*The first not commented and not empty line determines the parameter names and labels and has to be present!* + +It is allowed to add comments (with a preceding '#') or empty lines to the run-list file. + +The following should be mentioned together with the above examples: + +* The output files in the examples above are only newly created if they did *not* exist before invoking ``msr2data``. + If the files were already present the msr file data would be appended! +* If the files have been newly created, also the DB file header is written. If the files were present before, only + the data blocks are appended. The output of the header can either be forced or completely suppressed with the ``header`` + and ``noheader`` options as shall be seen later. +* If the ``musrfit`` output files do not have an ```` as specified above like ``8472.msr`` one has to call ``msr2data`` like in the following example: + + .. code-block:: bash + + $ msr2data 8472 8460 "" + +.. _msr2data-opt-param: + +Optional Parameters +------------------- + +As mentioned already above there are some optional parameters which change the behavior of ``msr2data`` and can be passed in any order. Here is a complete list: + +**data** + The output file format is changed to a simple column ASCII file (default output file name: out.dat). +**new** + An existing output file is deleted before new information is written to it. +**header** + Force the output of the file header even if the output file was present before. +**noheader** + The output of the file header is suppressed—also if the output file is newly created. + If either both or none of the header options are given, ``msr2data`` writes the file header only to new files + and it solely appends the data blocks to an existing output file assuming that the header is present already. +**nosummary** + There will be no attempt to read additional information like the temperature or the applied magnetic field from + the data files even if these information were present there. +**paramList ** + option used to select the parameters which shall be exported. ```` is a list of parameter numbers to be exported. + Allowed lists are: ``-``, *e.g.* ``1-16`` will export parameters 1 to 16. Space separated numbers, *e.g.:* ``1 3 5``. + A combination of both is possible, *e.g.* ``1-16 19 31 62``, and so on. +**-o, -o ** + The processed data will be written to the file ```` instead of the default ``out.db`` or ``out.dat``. + If ```` is equal to none (case-insensitive) the parameter data are not appended to any output file. +**fit** + Additionally to the final data collection ``msr2data`` will invoke ``musrfit`` to fit the specified runs. + All msr files are assumed to be present, none is newly generated! +**fit-