From 0bdcaf34976b2d15925fc2daf56d11b9b6e7ee33 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Wed, 16 Dec 2020 20:14:28 +0100 Subject: [PATCH 01/10] DKS improvements on macOS Big Sur. --- CMakeLists.txt | 12 ++++++++++-- src/classes/CMakeLists.txt | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52b1c3f3..687b9f82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,10 +132,18 @@ if (dks) if (NOT CUDA_FOUND AND NOT OpenCL_FOUND) message(WARNING ">> Neither CUDA nor OpenCL found which are required for DKS, hence disable DKS support <<") else (NOT CUDA_FOUND AND NOT OpenCL_FOUND) - find_package(DKS) - endif (NOT CUDA_FOUND AND NOT OpenCL_FOUND) + find_package(DKS "1.1.4" + HINTS "/usr/local/lib/" + ) + endif (NOT CUDA_FOUND AND NOT OpenCL_FOUND) endif (dks) +if (DKS_FOUND) + message(STATUS "DKS version : ${DKS_VERSION}") + message(STATUS "DKS include dir : ${DKS_INCLUDE_DIR}") + message(STATUS "DKS library : ${DKS_LIBRARY}") +endif (DKS_FOUND) + #--- check for Qt ------------------------------------------------------------- if (qt_based_tools) # check for any Qt, i.e. AUTO diff --git a/src/classes/CMakeLists.txt b/src/classes/CMakeLists.txt index fcd64751..4575a2bd 100644 --- a/src/classes/CMakeLists.txt +++ b/src/classes/CMakeLists.txt @@ -163,7 +163,9 @@ if (OpenMP_FOUND) endif (OpenMP_CXX_LIBRARIES) endif (OpenMP_FOUND) if (DKS_FOUND) - set(DependOnLibs ${DependOnLibs} ${DKS_LIBS}) + set(DependOnLibs ${DependOnLibs} "-framework OpenCL") + set(DependOnLibs ${DependOnLibs} "-L ${DKS_LIBRARY_DIR}") + set(DependOnLibs ${DependOnLibs} ${DKS_LIBRARY}) endif (DKS_FOUND) target_link_libraries(PUserFcnBase ${ROOT_LIBRARIES}) From 2d877326ae34de52a2c79dad0864a9b7a62f82f4 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Fri, 18 Dec 2020 21:35:45 +0100 Subject: [PATCH 02/10] add missing compiler switches for DKS_OPENCL and DKS_CUDA needed for macOS. --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 687b9f82..bf260c1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,6 +117,7 @@ if (dks) message (STATUS "CUDA include: ${CUDA_INCLUDE_DIRS}") message (STATUS "CUDA libs: ${CUDA_TOOLKIT_ROOT_DIR}/lib64") message (STATUS "CUDA version: ${CUDA_VERSION}") + add_definitions(-DDKS_CUDA) endif (CUDA_FOUND) if (NOT CUDA_FOUND) @@ -126,6 +127,7 @@ if (dks) message(STATUS "OpenCL version : ${OpenCL_VERSION_STRING}") message(STATUS "OpenCL include dir: ${OpenCL_INCLUDE_DIR}") message(STATUS "OpenCL library dir: ${OpenCL_LIBRARY}") + add_definitions(-DDKS_OPENCL) endif (OpenCL_FOUND) endif (NOT CUDA_FOUND) From e5404d137033072373ec0d81c8cb684f43298dac Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Thu, 10 Sep 2020 15:23:27 +0200 Subject: [PATCH 03/10] remove redundant check from musredit/fileSaveAs --- src/musredit_qt5/musredit/PTextEdit.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/musredit_qt5/musredit/PTextEdit.cpp b/src/musredit_qt5/musredit/PTextEdit.cpp index 73c9f6a3..0e8196fe 100644 --- a/src/musredit_qt5/musredit/PTextEdit.cpp +++ b/src/musredit_qt5/musredit/PTextEdit.cpp @@ -1376,7 +1376,6 @@ void PTextEdit::fileSaveAs() fFilenames.remove( currentEditor() ); fFilenames.insert( currentEditor(), fn ); fileSave(); - fTabWidget->setTabText(fTabWidget->indexOf( currentEditor() ), QFileInfo(fn).fileName()); } fileSystemWatcherActivation(); // delayed activation of fFileSystemWatcherActive From 56917d3fecf8e2cf24faf1eedcd27992c5fea35b Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 22 Dec 2020 17:31:42 +0100 Subject: [PATCH 04/10] The musredit help system is using now the system default web-browser. This simplifies things, especially the qtwebengine package is not needed anymore. --- src/musredit_qt5/musredit/CMakeLists.txt | 20 +- .../musredit/PGetAsymmetryRunBlockDialog.cpp | 18 +- .../musredit/PGetFourierBlockDialog.cpp | 18 +- .../musredit/PGetFunctionsBlockDialog.cpp | 18 +- .../musredit/PGetMusrFTOptionsDialog.cpp | 19 +- .../musredit/PGetNonMusrRunBlockDialog.cpp | 17 +- .../musredit/PGetParameterBlockDialog.cpp | 17 +- .../musredit/PGetPlotBlockDialog.cpp | 17 +- .../PGetSingleHistoRunBlockDialog.cpp | 17 +- .../musredit/PGetTheoryBlockDialog.cpp | 17 +- .../musredit/PGetTitleBlockDialog.cpp | 17 +- src/musredit_qt5/musredit/PHelp.cpp | 202 ------------------ src/musredit_qt5/musredit/PHelp.h | 81 ------- src/musredit_qt5/musredit/PMsr2DataDialog.cpp | 18 +- src/musredit_qt5/musredit/PTextEdit.cpp | 14 +- 15 files changed, 124 insertions(+), 386 deletions(-) delete mode 100644 src/musredit_qt5/musredit/PHelp.cpp delete mode 100644 src/musredit_qt5/musredit/PHelp.h diff --git a/src/musredit_qt5/musredit/CMakeLists.txt b/src/musredit_qt5/musredit/CMakeLists.txt index cfa6c3c4..bcb0b2b2 100644 --- a/src/musredit_qt5/musredit/CMakeLists.txt +++ b/src/musredit_qt5/musredit/CMakeLists.txt @@ -1,28 +1,12 @@ #--- musredit for Qt > 5.0 ---------------------------------------------------- #--- check if Qt5WebEngine or Qt5WebKit is present ---------------------------- -find_package(Qt5WebEngine QUIET) -find_package(Qt5WebKit QUIET) +#find_package(Qt5WebEngine QUIET) +#find_package(Qt5WebKit QUIET) set(qt_libs Qt5::Core Qt5::Widgets Qt5::Network Qt5::Xml Qt5::Svg Qt5::PrintSupport) -set(Qt5NoWeb 0) -if (Qt5WebEngine_FOUND) - message("-- Qt5WebEngine is present.") - find_package(Qt5WebEngineWidgets QUIET CONFIG REQUIRED) - set(qt_libs ${qt_libs} Qt5::WebEngine Qt5::WebEngineWidgets) - # unset a potentially found Qt5Webkit - unset(Qt5WebKit_FOUND) -elseif (Qt5WebKit_FOUND) - message("-- Qt5WebKit is present.") - find_package(Qt5WebKitWidgets QUIET CONFIG REQUIRED) - set(qt_libs ${qt_libs} Qt5::WebKit Qt5::WebKitWidgets) -else (Qt5WebEngine_FOUND) - message("-- Neither Qt5WebEngine nor Qt5WebKit found.") - set(Qt5NoWeb 1) -endif (Qt5WebEngine_FOUND) set(musredit_src - PHelp.cpp PTextEdit.cpp PSubTextEdit.cpp PAdmin.cpp diff --git a/src/musredit_qt5/musredit/PGetAsymmetryRunBlockDialog.cpp b/src/musredit_qt5/musredit/PGetAsymmetryRunBlockDialog.cpp index 14d74570..7d6f2658 100644 --- a/src/musredit_qt5/musredit/PGetAsymmetryRunBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetAsymmetryRunBlockDialog.cpp @@ -31,8 +31,8 @@ #include #include #include - -#include "PHelp.h" +#include +#include #include "PGetAsymmetryRunBlockDialog.h" @@ -284,12 +284,14 @@ void PGetAsymmetryRunBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetFourierBlockDialog.cpp b/src/musredit_qt5/musredit/PGetFourierBlockDialog.cpp index 3e7650fd..2f76e66b 100644 --- a/src/musredit_qt5/musredit/PGetFourierBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetFourierBlockDialog.cpp @@ -33,8 +33,8 @@ #include #include #include - -#include "PHelp.h" +#include +#include #include "PGetFourierBlockDialog.h" @@ -132,12 +132,14 @@ void PGetFourierBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetFunctionsBlockDialog.cpp b/src/musredit_qt5/musredit/PGetFunctionsBlockDialog.cpp index ff144eb4..423942e4 100644 --- a/src/musredit_qt5/musredit/PGetFunctionsBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetFunctionsBlockDialog.cpp @@ -32,11 +32,11 @@ #include #include #include +#include +#include #include -#include "PHelp.h" - #include "PGetFunctionsBlockDialog.h" //---------------------------------------------------------------------------------------------------- @@ -108,12 +108,14 @@ void PGetFunctionsBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp b/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp index f92114bb..3acf1306 100644 --- a/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp +++ b/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp @@ -31,8 +31,9 @@ #include #include #include - -#include "PHelp.h" +#include +#include +#include #include "PGetMusrFTOptionsDialog.h" @@ -586,11 +587,13 @@ void PGetMusrFTOptionsDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { -#ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); -#else - PHelp *help = new PHelp(fHelpUrl); - help->show(); -#endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetNonMusrRunBlockDialog.cpp b/src/musredit_qt5/musredit/PGetNonMusrRunBlockDialog.cpp index 8c042fd9..4e91478c 100644 --- a/src/musredit_qt5/musredit/PGetNonMusrRunBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetNonMusrRunBlockDialog.cpp @@ -31,8 +31,9 @@ #include #include #include +#include +#include -#include "PHelp.h" #include "PGetNonMusrRunBlockDialog.h" //---------------------------------------------------------------------------------------------------- @@ -156,12 +157,14 @@ void PGetNonMusrRunBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetParameterBlockDialog.cpp b/src/musredit_qt5/musredit/PGetParameterBlockDialog.cpp index 2cc64e4b..5e986ebb 100644 --- a/src/musredit_qt5/musredit/PGetParameterBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetParameterBlockDialog.cpp @@ -34,8 +34,9 @@ #include #include #include +#include +#include -#include "PHelp.h" #include "PGetParameterBlockDialog.h" //---------------------------------------------------------------------------------------------------- @@ -219,12 +220,14 @@ void PGetParameterBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetPlotBlockDialog.cpp b/src/musredit_qt5/musredit/PGetPlotBlockDialog.cpp index ce10a31d..128f3a64 100644 --- a/src/musredit_qt5/musredit/PGetPlotBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetPlotBlockDialog.cpp @@ -33,8 +33,9 @@ #include #include #include +#include +#include -#include "PHelp.h" #include "PGetPlotBlockDialog.h" //---------------------------------------------------------------------------------------------------- @@ -160,12 +161,14 @@ void PGetPlotBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetSingleHistoRunBlockDialog.cpp b/src/musredit_qt5/musredit/PGetSingleHistoRunBlockDialog.cpp index a28fe371..54a65a98 100644 --- a/src/musredit_qt5/musredit/PGetSingleHistoRunBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetSingleHistoRunBlockDialog.cpp @@ -32,8 +32,9 @@ #include #include #include +#include +#include -#include "PHelp.h" #include "PGetSingleHistoRunBlockDialog.h" //---------------------------------------------------------------------------------------------------- @@ -282,12 +283,14 @@ void PGetSingleHistoRunBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetTheoryBlockDialog.cpp b/src/musredit_qt5/musredit/PGetTheoryBlockDialog.cpp index 8c4d05e6..d6bf5f3b 100644 --- a/src/musredit_qt5/musredit/PGetTheoryBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetTheoryBlockDialog.cpp @@ -32,10 +32,11 @@ #include #include #include +#include +#include #include -#include "PHelp.h" #include "PGetTheoryBlockDialog.h" //---------------------------------------------------------------------------------------------------- @@ -126,12 +127,14 @@ void PGetTheoryBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PGetTitleBlockDialog.cpp b/src/musredit_qt5/musredit/PGetTitleBlockDialog.cpp index 87956385..22ae3675 100644 --- a/src/musredit_qt5/musredit/PGetTitleBlockDialog.cpp +++ b/src/musredit_qt5/musredit/PGetTitleBlockDialog.cpp @@ -28,8 +28,9 @@ ***************************************************************************/ #include +#include +#include -#include "PHelp.h" #include "PGetTitleBlockDialog.h" //--------------------------------------------------------------------------- @@ -54,12 +55,14 @@ void PGetTitleBlockDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PHelp.cpp b/src/musredit_qt5/musredit/PHelp.cpp deleted file mode 100644 index 3cfe2057..00000000 --- a/src/musredit_qt5/musredit/PHelp.cpp +++ /dev/null @@ -1,202 +0,0 @@ -/**************************************************************************** - - PHelp.cpp - - Author: Andreas Suter - e-mail: andreas.suter@psi.ch - -*****************************************************************************/ - -/*************************************************************************** - * Copyright (C) 2010-2019 by Andreas Suter * - * andreas.suter@psi.ch * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include -#ifdef HAVE_QT_WEB_ENGINE -#include -#endif -#ifdef HAVE_QT_WEB_KIT -#include -#endif -#ifdef HAVE_QT_NO_WEB -#include -#endif -#include - -#include - -#include "PHelp.h" - -//--------------------------------------------------------------------------- -/** - *

Constructor. - * - * \param url help url - */ -PHelp::PHelp(const QString &url, const bool isDarkTheme) : - fDarkTheme(isDarkTheme) -{ - fProgress = 0; - - QString iconName(""); - if (fDarkTheme) - iconName = QString(":/icons/musrfit-help-dark.svg"); - else - iconName = QString(":/icons/musrfit-help-plain.svg"); - setWindowIcon( QIcon( QPixmap(iconName) ) ); - - QNetworkProxyFactory::setUseSystemConfiguration(true); - -#ifdef HAVE_QT_WEB_ENGINE - fView = new QWebEngineView(this); -#endif -#ifdef HAVE_QT_WEB_KIT - fView = new QWebView(this); -#endif -#ifdef HAVE_QT_NO_WEB - fView = new QPlainTextEdit(this); -#endif -#ifndef HAVE_QT_NO_WEB - fView->load(QUrl(url)); - connect(fView, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); - connect(fView, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); - connect(fView, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); - connect(fView, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); -#else - fView->setPlainText("Within the current setup there is NO Help available."); - fView->appendPlainText("The necessary Qt web libs where not found when setting up musredit."); - fView->setReadOnly(true); -#endif - - fLocationEdit = new QLineEdit(this); - fLocationEdit->setSizePolicy(QSizePolicy::Expanding, fLocationEdit->sizePolicy().verticalPolicy()); - connect(fLocationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); - - QToolBar *toolBar = addToolBar(tr("Navigation")); -#ifdef HAVE_QT_WEB_ENGINE - toolBar->addAction(fView->pageAction(QWebEnginePage::Back)); - toolBar->addAction(fView->pageAction(QWebEnginePage::Forward)); - toolBar->addAction(fView->pageAction(QWebEnginePage::Reload)); - toolBar->addAction(fView->pageAction(QWebEnginePage::Stop)); -#endif -#ifdef HAVE_QT_WEB_KIT - toolBar->addAction(fView->pageAction(QWebPage::Back)); - toolBar->addAction(fView->pageAction(QWebPage::Forward)); - toolBar->addAction(fView->pageAction(QWebPage::Reload)); - toolBar->addAction(fView->pageAction(QWebPage::Stop)); -#endif - toolBar->addWidget(fLocationEdit); - - QMenu *exitMenu = menuBar()->addMenu(tr("&File")); - exitMenu->addAction("&Exit", this, SLOT(done()), QKeySequence(tr("Ctrl+Q"))); - - setCentralWidget(fView); - setUnifiedTitleAndToolBarOnMac(true); - setMinimumSize(800, 700); -} - -//--------------------------------------------------------------------------- -/** - *

Destructor - */ -PHelp::~PHelp() -{ - if (fView) { - delete fView; - fView = 0; - } - - if (fLocationEdit) { - delete fLocationEdit; - fLocationEdit = 0; - } -} - -//--------------------------------------------------------------------------- -/** - *

Called on exit (SLOT). Closes the web-browser help GUI. - */ -void PHelp::done() -{ - close(); -} - -//--------------------------------------------------------------------------- -/** - *

Called after an url is loaded (SLOT). Adjusts the url address. - */ -void PHelp::adjustLocation() -{ -#ifndef HAVE_QT_NO_WEB - fLocationEdit->setText(fView->url().toString()); -#endif -} - -//--------------------------------------------------------------------------- -/** - *

Called when the url address in the line edit changed (SLOT). Will execute - * the load of the new url. - */ -void PHelp::changeLocation() -{ - QUrl url = QUrl(fLocationEdit->text()); -#ifndef HAVE_QT_NO_WEB - fView->load(url); - fView->setFocus(); -#endif -} - -//--------------------------------------------------------------------------- -/** - *

Called when the title changed (SLOT). Will change the window title according - * to the state of the web-browser. - */ -void PHelp::adjustTitle() -{ -#ifndef HAVE_QT_NO_WEB - if (fProgress <= 0 || fProgress >= 100) - setWindowTitle(fView->title()); - else - setWindowTitle(QString("%1 (%2%)").arg(fView->title()).arg(fProgress)); -#endif -} - -//--------------------------------------------------------------------------- -/** - *

Adjusts the progess value while loading an url. Also calls adjustTitle(). - */ -void PHelp::setProgress(int p) -{ - fProgress = p; - adjustTitle(); -} - -//--------------------------------------------------------------------------- -/** - *

Ajusts the title when an url has been loaded. - */ -void PHelp::finishLoading(bool) -{ - fProgress = 100; - adjustTitle(); -} - -//--------------------------------------------------------------------------- -// end -//--------------------------------------------------------------------------- diff --git a/src/musredit_qt5/musredit/PHelp.h b/src/musredit_qt5/musredit/PHelp.h deleted file mode 100644 index 19a276cc..00000000 --- a/src/musredit_qt5/musredit/PHelp.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** - - PHelp.h - - Author: Andreas Suter - e-mail: andreas.suter@psi.ch - -*****************************************************************************/ - -/*************************************************************************** - * Copyright (C) 2010-2019 by Andreas Suter * - * andreas.suter@psi.ch * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#ifndef _PHELP_H_ -#define _PHELP_H_ - -#include - -#ifdef HAVE_QT_WEB_ENGINE -class QWebEngineView; -#endif -#ifdef HAVE_QT_WEB_KIT -class QWebView; -#endif -QT_BEGIN_NAMESPACE -class QLineEdit; -QT_END_NAMESPACE - -//------------------------------------------------------------------------- -/** - *

Class providing the help interface for the user. It opens the wiki docu - * pages such that a user has the chance to read. - */ -class PHelp : public QMainWindow -{ - Q_OBJECT - - public: - PHelp(const QString &url, const bool isDarkTheme=false); - virtual ~PHelp(); - - protected slots: - void done(); - void adjustLocation(); - void changeLocation(); - void adjustTitle(); - void setProgress(int p); - void finishLoading(bool); - - private: - bool fDarkTheme; -#ifdef HAVE_QT_WEB_ENGINE - QWebEngineView *fView; ///< web viewer -#endif -#ifdef HAVE_QT_WEB_KIT - QWebView *fView; ///< web viewer -#endif -#ifdef HAVE_QT_NO_WEB - QPlainTextEdit *fView; ///< dialog stating that there is NO web viewer -#endif - QLineEdit *fLocationEdit; ///< url address line edit - int fProgress; ///< progress value (0-100) while loading an url -}; - -#endif // _PHELP_H_ diff --git a/src/musredit_qt5/musredit/PMsr2DataDialog.cpp b/src/musredit_qt5/musredit/PMsr2DataDialog.cpp index 94a4f89c..45785f6a 100644 --- a/src/musredit_qt5/musredit/PMsr2DataDialog.cpp +++ b/src/musredit_qt5/musredit/PMsr2DataDialog.cpp @@ -32,8 +32,8 @@ #include #include #include - -#include "PHelp.h" +#include +#include #include "PMsr2DataDialog.h" @@ -224,12 +224,14 @@ void PMsr2DataDialog::helpContent() if (fHelpUrl.isEmpty()) { QMessageBox::information(this, "**INFO**", "Will eventually show a help window"); } else { - #ifdef _WIN32GCC - QMessageBox::information(this, "**INFO**", "If a newer Qt version was available, a help window would be shown!"); - #else - PHelp *help = new PHelp(fHelpUrl); - help->show(); - #endif // _WIN32GCC + bool ok = QDesktopServices::openUrl(QUrl(fHelpUrl, QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fHelpUrl); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } } diff --git a/src/musredit_qt5/musredit/PTextEdit.cpp b/src/musredit_qt5/musredit/PTextEdit.cpp index 0e8196fe..62f0e526 100644 --- a/src/musredit_qt5/musredit/PTextEdit.cpp +++ b/src/musredit_qt5/musredit/PTextEdit.cpp @@ -58,11 +58,13 @@ #include #include #include +#include +#include +#include #include #include "PTextEdit.h" -#include "PHelp.h" #include "PSubTextEdit.h" #include "PAdmin.h" #include "PFindDialog.h" @@ -2967,8 +2969,14 @@ void PTextEdit::mupp() */ void PTextEdit::helpContents() { - PHelp *help = new PHelp(fAdmin->getHelpUrl("main"), fDarkMenuIcon); - help->show(); + bool ok = QDesktopServices::openUrl(QUrl(fAdmin->getHelpUrl("main"), QUrl::TolerantMode)); + if (!ok) { + QString msg = QString("

Sorry: Couldn't open default web-browser for the help.
Please try: musrfit docu in your web-browser.").arg(fAdmin->getHelpUrl("main")); + QMessageBox::critical( nullptr, + tr("Fatal Error"), + msg, + tr("Quit") ); + } } //---------------------------------------------------------------------------------------------------- From a9a61f55188c57982fc9aae78706fa1aeea8918d Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 22 Dec 2020 22:36:07 +0100 Subject: [PATCH 05/10] adjust to Qt 5.14.x; remove compiler warnings. --- src/musredit_qt5/mupp/PVarDialog.cpp | 8 + src/musredit_qt5/mupp/Pmupp.cpp | 19 +- src/musredit_qt5/mupp/PmuppAdmin.cpp | 19 +- src/musredit_qt5/mupp/PmuppGui.cpp | 225 ++++++++++- src/musredit_qt5/mupp/PmuppGui.h | 2 +- src/musredit_qt5/mupp/PmuppScript.cpp | 173 +++++++++ src/musredit_qt5/mupp/mupp.cpp | 48 +++ src/musredit_qt5/musrStep/PMusrStep.cpp | 4 + src/musredit_qt5/musrWiz/PAdmin.cpp | 4 + src/musredit_qt5/musrWiz/PMusrWiz.cpp | 355 +++++++++++++++++- src/musredit_qt5/musredit/PAdmin.cpp | 18 +- .../musredit/PChangeDefaultPathsDialog.cpp | 15 +- .../musredit/PDumpOutputHandler.cpp | 13 + src/musredit_qt5/musredit/PFindDialog.cpp | 4 +- src/musredit_qt5/musredit/PFindDialog.h | 2 +- .../musredit/PFitOutputHandler.cpp | 19 +- .../musredit/PGetMusrFTOptionsDialog.cpp | 8 + src/musredit_qt5/musredit/PMusrEditAbout.cpp | 2 +- src/musredit_qt5/musredit/PMusrEditAbout.h | 2 +- .../musredit/PReplaceConfirmationDialog.cpp | 2 +- .../musredit/PReplaceConfirmationDialog.h | 2 +- src/musredit_qt5/musredit/PReplaceDialog.cpp | 4 +- src/musredit_qt5/musredit/PReplaceDialog.h | 2 +- src/musredit_qt5/musredit/PTextEdit.cpp | 24 +- src/musredit_qt5/musredit/PTextEdit.h | 2 +- 25 files changed, 948 insertions(+), 28 deletions(-) diff --git a/src/musredit_qt5/mupp/PVarDialog.cpp b/src/musredit_qt5/mupp/PVarDialog.cpp index 9785a329..6c97351c 100644 --- a/src/musredit_qt5/mupp/PVarDialog.cpp +++ b/src/musredit_qt5/mupp/PVarDialog.cpp @@ -49,7 +49,11 @@ PShowVarNameDialog::PShowVarNameDialog(PCollInfo &info) // if fCollName is a path name, extract the fln QString collNameStr(info.fCollName); if (collNameStr.contains("/")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = collNameStr.split('/', QString::SkipEmptyParts); +#else + QStringList tok = collNameStr.split('/', Qt::SkipEmptyParts); +#endif collNameStr = tok[tok.count()-1]; } QLabel *collName = new QLabel(collNameStr); @@ -281,7 +285,11 @@ bool PVarDialog::basic_check() } // tokenize variable input +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList strList = varStr.split(QRegularExpression("\\s+"), QString::SkipEmptyParts); +#else + QStringList strList = varStr.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts); +#endif // check if there are ANY var definitions ok = false; diff --git a/src/musredit_qt5/mupp/Pmupp.cpp b/src/musredit_qt5/mupp/Pmupp.cpp index b5c75a51..1bffae27 100644 --- a/src/musredit_qt5/mupp/Pmupp.cpp +++ b/src/musredit_qt5/mupp/Pmupp.cpp @@ -432,7 +432,11 @@ PmuppCollection PParamDataHandler::ReadDbFile(const QString fln, bool &valid, QS if (param_found && !line.isEmpty()) { // check if parameter or run number and title token.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) token = line.split(",", QString::SkipEmptyParts); +#else + token = line.split(",", Qt::SkipEmptyParts); +#endif if (token.size()==0) { errorMsg = fln + QString(". No parameter tokens."); std::cerr << std::endl; @@ -584,7 +588,11 @@ PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool & // read header information line = in.readLine(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) token = line.split(QRegExp("\\s+"), QString::SkipEmptyParts); +#else + token = line.split(QRegExp("\\s+"), Qt::SkipEmptyParts); +#endif QVector headerInfo; QVector headerCode; // 0=value, 1=pos/neg err, 2=pos err, 3=neg err, 4=run number @@ -612,7 +620,11 @@ PmuppCollection PParamDataHandler::ReadColumnParamFile(const QString fln, bool & continue; lineNo++; token.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) token = line.split(QRegExp("\\s+"), QString::SkipEmptyParts); +#else + token = line.split(QRegExp("\\s+"), Qt::SkipEmptyParts); +#endif // 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()); @@ -1037,6 +1049,11 @@ void PParamDataHandler::readFromStdErr() void PParamDataHandler::processDone(int exitCode, QProcess::ExitStatus exitStatus) { qInfo() << "in processDone()"; - if ((exitStatus == QProcess::CrashExit) && (exitCode != 0)) + if ((exitStatus == QProcess::CrashExit) && (exitCode != 0)) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) qInfo() << "**ERROR** processDone: exitCode = " << exitCode << endl; +#else + qInfo() << "**ERROR** processDone: exitCode = " << exitCode << Qt::endl; +#endif + } } diff --git a/src/musredit_qt5/mupp/PmuppAdmin.cpp b/src/musredit_qt5/mupp/PmuppAdmin.cpp index 67f1f8fe..f9a44a4f 100644 --- a/src/musredit_qt5/mupp/PmuppAdmin.cpp +++ b/src/musredit_qt5/mupp/PmuppAdmin.cpp @@ -208,7 +208,11 @@ bool PmuppAdminXMLParser::characters() fAdmin->setTheme(false); break; case eMarker: +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(",", QString::SkipEmptyParts); +#else + tok = str.split(",", Qt::SkipEmptyParts); +#endif if ((tok.count() != 1) && (tok.count() != 2)) { return false; @@ -227,7 +231,11 @@ bool PmuppAdminXMLParser::characters() fAdmin->setMarker(ival, dval); break; case eColor: +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(",", QString::SkipEmptyParts); +#else + tok = str.split(",", Qt::SkipEmptyParts); +#endif if ((tok.count() != 3) && (tok.count() != 4)) { return false; @@ -533,8 +541,13 @@ void PmuppAdmin::saveRecentFiles() return; } fin.setDevice(&file); - for (int i=0; i PmuppGui::getValues(QString collName, QString paramName, bool &o for (int i=0; i::fromStdVector(fVarHandler[i].getValues()); +#else + QVector qvec(fVarHandler[i].getValues().begin(), fVarHandler[i].getValues().end()); + values = qvec; +#endif } } } @@ -1495,7 +1510,12 @@ QVector PmuppGui::getPosErr(QString collName, QString paramName, bool &o for (int i=0; i::fromStdVector(fVarHandler[i].getErrors()); +#else + QVector qvec(fVarHandler[i].getErrors().begin(), fVarHandler[i].getErrors().end()); + values = qvec; +#endif } } } @@ -1529,7 +1549,12 @@ QVector PmuppGui::getNegErr(QString collName, QString paramName, bool &o for (int i=0; i::fromStdVector(fVarHandler[i].getErrors()); +#else + QVector qvec(fVarHandler[i].getErrors().begin(), fVarHandler[i].getErrors().end()); + values = qvec; +#endif } } } @@ -1823,6 +1848,7 @@ void PmuppGui::createMacro() QTextStream fout(&file); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "// " << fMacroName.toLatin1().data() << endl; fout << "// " << QDateTime::currentDateTime().toString("yy/MM/dd - HH:mm:ss") << endl; fout << "// " << endl; @@ -1840,6 +1866,25 @@ void PmuppGui::createMacro() fout << " Double_t yy[512];" << endl; fout << " Double_t yyPosErr[512];" << endl; fout << " Double_t yyNegErr[512];" << endl; +#else + fout << "// " << fMacroName.toLatin1().data() << Qt::endl; + fout << "// " << QDateTime::currentDateTime().toString("yy/MM/dd - HH:mm:ss") << Qt::endl; + fout << "// " << Qt::endl; + fout << "{" << Qt::endl; + fout << " gROOT->Reset();" << Qt::endl; + fout << Qt::endl; + fout << " gStyle->SetOptTitle(0);" << Qt::endl; + fout << " gStyle->SetOptDate(0);" << Qt::endl; + fout << " gStyle->SetPadColor(TColor::GetColor(255,255,255)); // pad bkg to white" << Qt::endl; + fout << " gStyle->SetCanvasColor(TColor::GetColor(255,255,255)); // canvas bkg to white" << Qt::endl; + fout << Qt::endl; + fout << " Int_t nn=0, i=0;" << Qt::endl; + fout << " Double_t null[512];" << Qt::endl; + fout << " Double_t xx[512];" << Qt::endl; + fout << " Double_t yy[512];" << Qt::endl; + fout << " Double_t yyPosErr[512];" << Qt::endl; + fout << " Double_t yyNegErr[512];" << Qt::endl; +#endif // create all the necessary TGraph's int collTag = -1, pos; QString collName(""); @@ -1894,40 +1939,98 @@ void PmuppGui::createMacro() yLabel = substituteDefaultLabels(yLabel); getMinMax(yy, yMin, yMax); // create TGraph objects +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << endl; snprintf(gLabel, sizeof(gLabel), "g_%d_%d", i, j); fout << " nn = " << xx.size() << ";" << endl; fout << endl; fout << " // null value vector" << endl; +#else + fout << Qt::endl; + snprintf(gLabel, sizeof(gLabel), "g_%d_%d", i, j); + fout << " nn = " << xx.size() << ";" << Qt::endl; + fout << Qt::endl; + fout << " // null value vector" << Qt::endl; +#endif for (int k=0; kSetMarkerStyle(" << markerObj.getMarker() << ");" << endl; fout << " " << gLabel << "->SetMarkerSize(" << markerObj.getMarkerSize() << ");" << endl; +#else + fout << " " << gLabel << "->SetMarkerStyle(" << markerObj.getMarker() << ");" << Qt::endl; + fout << " " << gLabel << "->SetMarkerSize(" << markerObj.getMarkerSize() << ");" << Qt::endl; +#endif } else { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerStyle(20); // bullet" << endl; fout << " " << gLabel << "->SetMarkerSize(1.5);" << endl; +#else + fout << " " << gLabel << "->SetMarkerStyle(20); // bullet" << Qt::endl; + fout << " " << gLabel << "->SetMarkerSize(1.5);" << Qt::endl; +#endif } if (idx < color.size()) { color[idx].getRGB(r, g, b); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << endl; fout << " " << gLabel << "->SetLineColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << endl; +#else + fout << " " << gLabel << "->SetMarkerColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << Qt::endl; + fout << " " << gLabel << "->SetLineColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << Qt::endl; +#endif } else { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerColor(kBlue);" << endl; fout << " " << gLabel << "->SetLineColor(kBlue);" << endl; +#else + fout << " " << gLabel << "->SetMarkerColor(kBlue);" << Qt::endl; + fout << " " << gLabel << "->SetLineColor(kBlue);" << Qt::endl; +#endif } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetFillColor(kWhite);" << endl; fout << " " << gLabel << "->GetXaxis()->SetTitle(\"" << xLabel.toLatin1().data() << "\");" << endl; fout << " " << gLabel << "->GetXaxis()->SetTitleSize(0.05);" << endl; @@ -1969,28 +2093,69 @@ void PmuppGui::createMacro() fout << " " << gLabel << "->GetYaxis()->SetRangeUser(" << 0.95*yMin << ", " << 1.05*yMax << ");" << endl; fout << " " << gLabel << "->GetXaxis()->SetDecimals(kTRUE);" << endl; fout << " " << gLabel << "->Draw(\"AP\");" << endl; +#else + fout << " " << gLabel << "->SetFillColor(kWhite);" << Qt::endl; + fout << " " << gLabel << "->GetXaxis()->SetTitle(\"" << xLabel.toLatin1().data() << "\");" << Qt::endl; + fout << " " << gLabel << "->GetXaxis()->SetTitleSize(0.05);" << Qt::endl; + fout << " " << gLabel << "->GetXaxis()->SetRangeUser(" << 0.95*xMin << ", " << 1.05*xMax << ");" << Qt::endl; + fout << " " << gLabel << "->GetYaxis()->SetTitle(\"" << yLabel.toLatin1().data() << "\");" << Qt::endl; + fout << " " << gLabel << "->GetYaxis()->SetTitleSize(0.05);" << Qt::endl; + fout << " " << gLabel << "->GetYaxis()->SetTitleOffset(1.30);" << Qt::endl; + fout << " " << gLabel << "->GetYaxis()->SetRangeUser(" << 0.95*yMin << ", " << 1.05*yMax << ");" << Qt::endl; + fout << " " << gLabel << "->GetXaxis()->SetDecimals(kTRUE);" << Qt::endl; + fout << " " << gLabel << "->Draw(\"AP\");" << Qt::endl; +#endif } else { // consecutive graphs if (idx < marker.size()) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerStyle(" << markerObj.getMarker() << ");" << endl; fout << " " << gLabel << "->SetMarkerSize(" << markerObj.getMarkerSize() << ");" << endl; +#else + fout << " " << gLabel << "->SetMarkerStyle(" << markerObj.getMarker() << ");" << Qt::endl; + fout << " " << gLabel << "->SetMarkerSize(" << markerObj.getMarkerSize() << ");" << Qt::endl; +#endif } else { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerStyle(" << 21+j << ");" << endl; fout << " " << gLabel << "->SetMarkerSize(1.5);" << endl; +#else + fout << " " << gLabel << "->SetMarkerStyle(" << 21+j << ");" << Qt::endl; + fout << " " << gLabel << "->SetMarkerSize(1.5);" << Qt::endl; +#endif } if (idx < color.size()) { color[idx].getRGB(r, g, b); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << endl; fout << " " << gLabel << "->SetLineColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << endl; +#else + fout << " " << gLabel << "->SetMarkerColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << Qt::endl; + fout << " " << gLabel << "->SetLineColor(TColor::GetColor(" << r << "," << g << "," << b << "));" << Qt::endl; +#endif } else { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetMarkerColor(kBlue);" << endl; fout << " " << gLabel << "->SetLineColor(kBlue);" << endl; +#else + fout << " " << gLabel << "->SetMarkerColor(kBlue);" << Qt::endl; + fout << " " << gLabel << "->SetLineColor(kBlue);" << Qt::endl; +#endif } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " " << gLabel << "->SetFillColor(kWhite);" << endl; fout << " " << gLabel << "->Draw(\"Psame\");" << endl; +#else + fout << " " << gLabel << "->SetFillColor(kWhite);" << Qt::endl; + fout << " " << gLabel << "->Draw(\"Psame\");" << Qt::endl; +#endif } } } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "}" << endl; +#else + fout << "}" << Qt::endl; +#endif // clear macro name fMacroName = QString(""); @@ -2028,17 +2193,29 @@ void PmuppGui::plot() } QTextStream fout(&file); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "% path file name: " << pathName << endl; fout << "% creation time : " << QDateTime::currentDateTime().toString("yyyy.MM.dd - hh:mm:ss") << endl; fout << "%" << endl; +#else + fout << "% path file name: " << pathName << Qt::endl; + fout << "% creation time : " << QDateTime::currentDateTime().toString("yyyy.MM.dd - hh:mm:ss") << Qt::endl; + fout << "%" << Qt::endl; +#endif for (int i=0; iitem(collTag)->text(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "% ---------" << endl; fout << "% collName = " << collName << endl; fout << "% start ---" << endl; +#else + fout << "% ---------" << Qt::endl; + fout << "% collName = " << collName << Qt::endl; + fout << "% start ---" << Qt::endl; +#endif // x-label xLabel = fXY[i].getXlabel(); @@ -2113,7 +2290,11 @@ void PmuppGui::plot() yyyNegErr.push_back(yyNegErr); yLabel = substituteDefaultLabels(yLabel); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "yLabel: " << yLabel << endl; +#else + fout << "yLabel: " << yLabel << Qt::endl; +#endif // normalize if wished if (fNormalize) { @@ -2140,10 +2321,18 @@ void PmuppGui::plot() } idx = yyy.size()-1; fout << yyy[idx][j] << ", " << yyyPosErr[idx][j] << ", " << yyyNegErr[idx][j]; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << endl; +#else + fout << Qt::endl; +#endif } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "% end -----" << endl; +#else + fout << "% end -----" << Qt::endl; +#endif // clear collection related vectors yyy.clear(); @@ -2169,7 +2358,11 @@ void PmuppGui::plot() return; } fout.setDevice(&file); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << QCoreApplication::applicationFilePath().toLatin1().data() << endl; +#else + fout << QCoreApplication::applicationFilePath().toLatin1().data() << Qt::endl; +#endif file.close(); key = ftok(QCoreApplication::applicationFilePath().toLatin1().data(), fMuppInstance); @@ -2274,7 +2467,11 @@ void PmuppGui::handleCmds() } else if (!cmd.compare("plot", Qt::CaseInsensitive)) { plot(); } else if (cmd.startsWith("macro")) { // cmd: macro +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { QMessageBox::critical(this, "ERROR", QString("wrong macro cmd: %1.\nPlease check the help.").arg(cmd)); return; @@ -2284,7 +2481,11 @@ void PmuppGui::handleCmds() } else if (cmd.startsWith("path")) { // cmd: path QMessageBox::information(0, "INFO", "set's eventually the path for the macros to be saved."); // will set the path to where to save the macro +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { QMessageBox::critical(this, "ERROR", QString("wrong path cmd: %1.\nPlease check the help.").arg(cmd)); return; @@ -2310,13 +2511,21 @@ void PmuppGui::handleCmds() } else if (cmd.startsWith("select") || cmd.startsWith("sc")) { selectCollection(cmd); } else if (cmd.startsWith("x")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() > 1) addX(tok[1]); else QMessageBox::critical(0, "ERROR", QString("Found command 'x' without variable.")); } else if (cmd.startsWith("y")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() > 1) addY(tok[1]); else @@ -2324,19 +2533,31 @@ void PmuppGui::handleCmds() } else if (cmd.startsWith("ditto")) { addDitto(); } else if (cmd.startsWith("rmx")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() > 1) removeX(tok[1]); else QMessageBox::critical(0, "ERROR", QString("Found command 'rmx' without variable.")); } else if (cmd.startsWith("rmy")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() > 1) removeY(tok[1]); else QMessageBox::critical(0, "ERROR", QString("Found command 'rmy' without variable.")); } else if (cmd.startsWith("norm")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(" ", QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(" ", Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { QMessageBox::critical(this, "**ERROR**", "found wrong norm cmd, will ignore it."); return; diff --git a/src/musredit_qt5/mupp/PmuppGui.h b/src/musredit_qt5/mupp/PmuppGui.h index b93e50a2..b778d417 100644 --- a/src/musredit_qt5/mupp/PmuppGui.h +++ b/src/musredit_qt5/mupp/PmuppGui.h @@ -132,7 +132,7 @@ class PmuppGui : public QMainWindow Q_OBJECT public: - PmuppGui(QStringList fln, QWidget *parent = 0, Qt::WindowFlags f = 0); + PmuppGui(QStringList fln); virtual ~PmuppGui(); public slots: diff --git a/src/musredit_qt5/mupp/PmuppScript.cpp b/src/musredit_qt5/mupp/PmuppScript.cpp index 5862f822..8e33de16 100644 --- a/src/musredit_qt5/mupp/PmuppScript.cpp +++ b/src/musredit_qt5/mupp/PmuppScript.cpp @@ -146,7 +146,11 @@ void PmuppScript::setLoadPath(const QString cmd) str = str.remove("loadPath "); // tokenize path string +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split("/", QString::SkipEmptyParts); +#else + tok = str.split("/", Qt::SkipEmptyParts); +#endif // check if there is a bash variable which needs to be resolved QProcessEnvironment procEnv = QProcessEnvironment::systemEnvironment(); @@ -180,7 +184,11 @@ void PmuppScript::setSavePath(const QString cmd) str = str.remove("savePath "); // tokenize path string +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split("/", QString::SkipEmptyParts); +#else + tok = str.split("/", Qt::SkipEmptyParts); +#endif // check if there is a bash variable which needs to be resolved QProcessEnvironment procEnv = QProcessEnvironment::systemEnvironment(); @@ -230,7 +238,11 @@ int PmuppScript::loadCollection(const QString str) int PmuppScript::select(const QString str) { QString cmd = str; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(' ', QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl << "**ERROR** wrong 'select' command syntax." << std::endl << std::endl; return -1; @@ -287,7 +299,11 @@ int PmuppScript::selectAll() int PmuppScript::addX(const QString str) { QString cmd = str, label; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(' ', QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl << "**ERROR** in addX: number of tokens missmatch." << std::endl << std::endl; @@ -377,7 +393,11 @@ int PmuppScript::addY(const QString str) { QString cmd = str; QVector label; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(' ', QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() < 2) { std::cerr << std::endl << "**ERROR** in addY: number of tokens < 2." << std::endl << std::endl; @@ -484,7 +504,11 @@ int PmuppScript::addY(const QString str) int PmuppScript::plot(const QString str) { QString cmd = str; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(' ', QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl << "**ERROR** in plot: number of tokens != 2." << std::endl << std::endl; return -1; @@ -542,7 +566,11 @@ int PmuppScript::macro(const QString str, const QString plotFln) QVector color = fAdmin->getColors(); QString cmd = str; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = cmd.split(' ', QString::SkipEmptyParts); +#else + QStringList tok = cmd.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl << "**ERROR** macro command with wrong number of arguments (" << tok.size() << ")." << std::endl << std::endl; return -1; @@ -559,6 +587,7 @@ int PmuppScript::macro(const QString str, const QString plotFln) QTextStream fout(&file); // write header +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "// --------------------------" << endl; fout << "// " << fln.toLatin1().constData() << endl; fout << "// " << QDateTime::currentDateTime().toString("yy/MM/dd - HH:mm:ss") << endl; @@ -578,6 +607,27 @@ int PmuppScript::macro(const QString str, const QString plotFln) fout << " Double_t yyPosErr[512];" << endl; fout << " Double_t yyNegErr[512];" << endl; fout << endl; +#else + fout << "// --------------------------" << Qt::endl; + fout << "// " << fln.toLatin1().constData() << Qt::endl; + fout << "// " << QDateTime::currentDateTime().toString("yy/MM/dd - HH:mm:ss") << Qt::endl; + fout << "// --------------------------" << Qt::endl; + fout << "{" << Qt::endl; + fout << " gROOT->Reset();" << Qt::endl; + fout << Qt::endl; + fout << " gStyle->SetOptTitle(0);" << Qt::endl; + fout << " gStyle->SetOptDate(0);" << Qt::endl; + fout << " gStyle->SetPadColor(TColor::GetColor(255,255,255)); // pad bkg to white" << Qt::endl; + fout << " gStyle->SetCanvasColor(TColor::GetColor(255,255,255)); // canvas bkg to white" << Qt::endl; + fout << Qt::endl; + fout << " Int_t nn=0, i=0;" << Qt::endl; + fout << " Double_t null[512];" << Qt::endl; + fout << " Double_t xx[512];" << Qt::endl; + fout << " Double_t yy[512];" << Qt::endl; + fout << " Double_t yyPosErr[512];" << Qt::endl; + fout << " Double_t yyNegErr[512];" << Qt::endl; + fout << Qt::endl; +#endif // write data QVector xx, yy, yyPosErr, yyNegErr; @@ -597,7 +647,12 @@ int PmuppScript::macro(const QString str, const QString plotFln) std::cerr << " This should never happens." << std::endl; return -3; } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) xx = QVector::fromStdVector(fVarHandler[idx].getValues()); +#else + QVector qvec(fVarHandler[idx].getValues().begin(), fVarHandler[idx].getValues().end()); + xx = qvec; +#endif } // get x-axis min/max minMax(xx, x_min, x_max); @@ -623,9 +678,17 @@ int PmuppScript::macro(const QString str, const QString plotFln) std::cerr << " This should never happens." << std::endl; return -3; } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) yy = QVector::fromStdVector(fVarHandler[idx].getValues()); yyPosErr = QVector::fromStdVector(fVarHandler[idx].getErrors()); yyNegErr = QVector::fromStdVector(fVarHandler[idx].getErrors()); +#else + QVector qvecV(fVarHandler[idx].getValues().begin(), fVarHandler[idx].getValues().end()); + yy = qvecV; + QVector qvecE(fVarHandler[idx].getErrors().begin(), fVarHandler[idx].getErrors().end()); + yyPosErr = qvecE; + yyNegErr = qvecE; +#endif } // get y-axis min/max minMax(yy, y_min, y_max); @@ -638,6 +701,7 @@ int PmuppScript::macro(const QString str, const QString plotFln) if (y_max > y_max_new) y_max_new = y_max; } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << " // " << ++count << ". data set" << endl; fout << " nn = " << xx.size() << ";" << endl; fout << " // null-values" << endl; @@ -675,6 +739,45 @@ int PmuppScript::macro(const QString str, const QString plotFln) fout << endl; fout << " TGraphAsymmErrors *g_" << i << "_" << j << " = new TGraphAsymmErrors(nn, xx, yy, null, null, yyNegErr, yyPosErr);" << endl; fout << endl; +#else + fout << " // " << ++count << ". data set" << Qt::endl; + fout << " nn = " << xx.size() << ";" << Qt::endl; + fout << " // null-values" << Qt::endl; + for (int k=0; kSaveAs(\"" << plotFln.toLatin1().constData() << "\");" << endl; } fout << "}" << endl; +#else + fout << " //**********" << Qt::endl; + fout << " // plotting " << Qt::endl; + fout << " //**********" << Qt::endl; + fout << " TCanvas *c1 = new TCanvas(\"c1\", \"" << macroName.toLatin1().constData() << "\", 10, 10, 600, 700);" << Qt::endl; + fout << Qt::endl; + + count = 0; + int rr, gg, bb; + for (int i=0; iSetMarkerStyle(" << marker[count].getMarker() << ");" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetMarkerSize(" << marker[count].getMarkerSize() << ");" << Qt::endl; + color[count].getRGB(rr, gg, bb); + fout << " g_" << i << "_" << j << "->SetMarkerColor(TColor::GetColor(" << rr << "," << gg << "," << bb << "));" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetLineColor(TColor::GetColor(" << rr << "," << gg << "," << bb << "));" << Qt::endl; + } else { + fout << " g_" << i << "_" << j << "->SetMarkerStyle(20);" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetMarkerSize(1.3);" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetMarkerColor(TColor::GetColor(0,0,0));" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetLineColor(TColor::GetColor(0,0,0));" << Qt::endl; + } + fout << " g_" << i << "_" << j << "->SetFillColor(kWhite);" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetXaxis()->SetTitle(\"" << getNicerLabel(fPlotInfo[0].xLabel).toLatin1().data() << "\");" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetXaxis()->SetTitleSize(0.05);" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetXaxis()->SetDecimals(kTRUE);" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetXaxis()->SetLimits(" << x_min << "," << x_max << ");" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetYaxis()->SetTitle(\"" << getNicerLabel(fPlotInfo[0].yLabel[0]).toLatin1().data() << "\");" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetYaxis()->SetTitleSize(0.05);" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetYaxis()->SetTitleOffset(1.30);" << Qt::endl; + fout << " g_" << i << "_" << j << "->GetYaxis()->SetRangeUser(" << y_min << "," << y_max << ");" << Qt::endl; + fout << " g_" << i << "_" << j << "->Draw(\"AP\");" << Qt::endl; + } else { + if (count < marker.size()) { + fout << " g_" << i << "_" << j << "->SetMarkerStyle(" << marker[count].getMarker() << ");" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetMarkerSize(" << marker[count].getMarkerSize() << ");" << Qt::endl; + color[count].getRGB(rr, gg, bb); + fout << " g_" << i << "_" << j << "->SetMarkerColor(TColor::GetColor(" << rr << "," << gg << "," << bb << "));" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetLineColor(TColor::GetColor(" << rr << "," << gg << "," << bb << "));" << Qt::endl; + } else { + fout << " g_" << i << "_" << j << "->SetMarkerStyle(20);" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetMarkerSize(1.3);" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetMarkerColor(TColor::GetColor(0,0,0));" << Qt::endl; + fout << " g_" << i << "_" << j << "->SetLineColor(TColor::GetColor(0,0,0));" << Qt::endl; + } + fout << " g_" << i << "_" << j << "->SetFillColor(kWhite);" << Qt::endl; + fout << " g_" << i << "_" << j << "->Draw(\"Psame\");" << Qt::endl; + } + count++; + } + } + fout << " c1->SetMargin(0.15, 0.05, 0.12, 0.05);" << Qt::endl; + fout << " c1->Update();" << Qt::endl; + if (!plotFln.isEmpty()) { + fout << Qt::endl; + fout << " c1->SaveAs(\"" << plotFln.toLatin1().constData() << "\");" << Qt::endl; + } + fout << "}" << Qt::endl; +#endif return 0; } @@ -771,7 +936,11 @@ int PmuppScript::var_cmd(const QString str) int idx=0; // get linked collection index for further use +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok[1].endsWith("Err")) // error variable no need to do something return 0; idx = getCollectionIndex(tok[1]); @@ -962,7 +1131,11 @@ int PmuppScript::getCollectionIndex(const QString var_name) cmd = fScript.at(i); if (cmd.startsWith("col")) { tok.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = cmd.split(' ', QString::SkipEmptyParts); +#else + tok = cmd.split(' ', Qt::SkipEmptyParts); +#endif if (tok[3] == var_name) { idx = tok[1].toInt(&ok); if (!ok) { diff --git a/src/musredit_qt5/mupp/mupp.cpp b/src/musredit_qt5/mupp/mupp.cpp index ea6a8311..881dc62b 100644 --- a/src/musredit_qt5/mupp/mupp.cpp +++ b/src/musredit_qt5/mupp/mupp.cpp @@ -191,7 +191,11 @@ int mupp_script_syntax_check(QStringList &list) tok.clear(); str = list.at(i); if (str.startsWith("loadPath")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() < 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -216,7 +220,11 @@ int mupp_script_syntax_check(QStringList &list) } } } else if (str.startsWith("load")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() < 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -226,7 +234,11 @@ int mupp_script_syntax_check(QStringList &list) } noOfCollections++; } else if (str.startsWith("x")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -235,7 +247,11 @@ int mupp_script_syntax_check(QStringList &list) return -1; } } else if (str.startsWith("y")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() < 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -244,7 +260,11 @@ int mupp_script_syntax_check(QStringList &list) return -1; } } else if (str.startsWith("select ")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -261,7 +281,11 @@ int mupp_script_syntax_check(QStringList &list) return -1; } } else if (str.startsWith("savePath")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -270,7 +294,11 @@ int mupp_script_syntax_check(QStringList &list) return -1; } } else if (str.startsWith("plot")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -280,7 +308,11 @@ int mupp_script_syntax_check(QStringList &list) } // check extension tok.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split('.', QString::SkipEmptyParts); +#else + tok = str.split('.', Qt::SkipEmptyParts); +#endif QString ext = tok.at(tok.size()-1); ext = ext.toLower(); if ((ext != "pdf") && (ext != "jpg") && (ext != "png") && (ext != "svg") && (ext != "gif")) { @@ -292,7 +324,11 @@ int mupp_script_syntax_check(QStringList &list) return -2; } } else if (str.startsWith("macro")) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -302,7 +338,11 @@ int mupp_script_syntax_check(QStringList &list) } // check extension tok.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split('.', QString::SkipEmptyParts); +#else + tok = str.split('.', Qt::SkipEmptyParts); +#endif QString ext = tok.at(tok.size()-1); ext = ext.toLower(); if (ext != "c") { @@ -317,7 +357,11 @@ int mupp_script_syntax_check(QStringList &list) // nothing-to-be-done } else if (str.startsWith("var")) { tok.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() < 2) { std::cerr << std::endl; std::cerr << "****************" << std::endl; @@ -332,7 +376,11 @@ int mupp_script_syntax_check(QStringList &list) // the parsing etc is dealt within the scripting class } else if (str.startsWith("col")) { tok.clear(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) tok = str.split(' ', QString::SkipEmptyParts); +#else + tok = str.split(' ', Qt::SkipEmptyParts); +#endif if (tok.size() != 4) { std::cerr << std::endl; std::cerr << "****************" << std::endl; diff --git a/src/musredit_qt5/musrStep/PMusrStep.cpp b/src/musredit_qt5/musrStep/PMusrStep.cpp index 035e290d..98a0a732 100644 --- a/src/musredit_qt5/musrStep/PMusrStep.cpp +++ b/src/musredit_qt5/musrStep/PMusrStep.cpp @@ -478,7 +478,11 @@ int PMusrStep::readMsrFile() } if (parameter) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) strL = str.split(" ", QString::SkipEmptyParts); +#else + strL = str.split(" ", Qt::SkipEmptyParts); +#endif if ((strL.size() != 5) && (strL.size() != 7)) { fin.close(); return -2; diff --git a/src/musredit_qt5/musrWiz/PAdmin.cpp b/src/musredit_qt5/musrWiz/PAdmin.cpp index 319c33b6..2eadcf93 100644 --- a/src/musredit_qt5/musrWiz/PAdmin.cpp +++ b/src/musredit_qt5/musrWiz/PAdmin.cpp @@ -660,7 +660,11 @@ bool PInstrumentDefXMLParser::characters() fSetup->setLgb(ival); break; case eBkgRange: +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) strList = str.split(' ', QString::SkipEmptyParts); +#else + strList = str.split(' ', Qt::SkipEmptyParts); +#endif if (strList.size() != 2) { errMsg = QString("Found wrong Asymmetry background range: '%1'").arg(str); QMessageBox::critical(0, "ERROR", errMsg); diff --git a/src/musredit_qt5/musrWiz/PMusrWiz.cpp b/src/musredit_qt5/musrWiz/PMusrWiz.cpp index eac12767..d520d559 100644 --- a/src/musredit_qt5/musrWiz/PMusrWiz.cpp +++ b/src/musredit_qt5/musrWiz/PMusrWiz.cpp @@ -920,7 +920,11 @@ void PTheoPage::checkTheory() return; } } else { // assume musrfit functions here +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList strList = line[i].split(" ", QString::SkipEmptyParts); +#else + QStringList strList = line[i].split(" ", Qt::SkipEmptyParts); +#endif func = fAdmin->getMusrfitFunc(strList[0]); if (func.getName() == "UnDef") { // function not found QString str = QString("**ERROR** in line %1, '%2' is not a recognized musrfit function.").arg(i+1).arg(line[i]); @@ -998,7 +1002,11 @@ QString PTheoPage::getTheoryFunction(int idx) */ bool PTheoPage::analyzeTokens(QString str, int noOfTokens) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = str.trimmed().split(" ", QString::SkipEmptyParts); +#else + QStringList tok = str.trimmed().split(" ", Qt::SkipEmptyParts); +#endif bool ok; // check if line is of the form 'funX' or 'mapX' @@ -2070,6 +2078,7 @@ int PMusrWiz::writeMsrFileSingleHisto() QString line = QString("###############################################################"); // write title +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << fMsrData->getMsrFileName() << endl; fout << line << endl; @@ -2095,6 +2104,33 @@ int PMusrWiz::writeMsrFileSingleHisto() fout << qSetFieldWidth(0); fout << endl; } +#else + fout << fMsrData->getMsrFileName() << Qt::endl; + fout << line << Qt::endl; + + // write parameter block + fout << "FITPARAMETER" << Qt::endl; + fout << "# Nr. Name Value Step Pos_Error Boundaries" << Qt::endl; + PParam param; + // global fit parameters + for (int i=0; igetNoOfParam(); i++) { + param = fMsrData->getParam(i); + fout << qSetFieldWidth(9); + fout << Qt::right << param.getNumber(); + fout << qSetFieldWidth(0) << " "; + fout << qSetFieldWidth(11); + fout << Qt::left << param.getName(); + fout << Qt::left << param.getValue(); + fout << Qt::left << param.getStep(); + fout << Qt::left << param.getPosErr(); + if (!param.getBoundLow().isEmpty()) + fout << Qt::left << param.getBoundLow(); + if (!param.getBoundHigh().isEmpty()) + fout << Qt::left << param.getBoundHigh(); + fout << qSetFieldWidth(0); + fout << Qt::endl; + } +#endif // detector specific fit parameters QString str; @@ -2135,9 +2171,14 @@ int PMusrWiz::writeMsrFileSingleHisto() detector = setup->getDetector(i); detectorName = detector->getName(); // name comment +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "# " << detectorName << endl; +#else + fout << "# " << detectorName << Qt::endl; +#endif // first all maps +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) for (int j=0; jgetNoOfMap(); j++) { map = fMsrData->getMap(j); fout << qSetFieldWidth(9); @@ -2166,57 +2207,139 @@ int PMusrWiz::writeMsrFileSingleHisto() } fout << qSetFieldWidth(0); fout << endl; +#else + for (int j=0; jgetNoOfMap(); j++) { + map = fMsrData->getMap(j); + fout << qSetFieldWidth(9); + fout << Qt::right << fMsrData->getNoOfParam() + 1 + j + (fMsrData->getNoOfMap()+2)*i; + fout << qSetFieldWidth(0) << " "; + fout << qSetFieldWidth(11); + str = map.getName() + QString("_%1").arg(detectorName); + fout << Qt::left << str; + if (map.getName().startsWith("ph", Qt::CaseInsensitive) || + map.getName().startsWith("relph", Qt::CaseInsensitive)) { + fout << Qt::left << detector->getRelGeomPhase(); + // if RelPh is found, the first will be fixed to 0 + if (map.getName().startsWith("relph", Qt::CaseInsensitive) && (i==0)) + fout << Qt::left << 0.0; + else + fout << Qt::left << 12.3; + fout << Qt::left << "none"; + } else { + fout << Qt::left << map.getValue(); + fout << Qt::left << map.getStep(); + fout << Qt::left << map.getPosErr(); + if (map.getBoundLow() != "") + fout << Qt::left << map.getBoundLow(); + if (map.getBoundHigh() != "") + fout << Qt::left << map.getBoundHigh(); + } + fout << qSetFieldWidth(0); + fout << Qt::endl; +#endif } // write N0 and N_bkg fout << qSetFieldWidth(9); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << right << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 1 + (fMsrData->getNoOfMap()+2)*i; +#else + fout << Qt::right << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 1 + (fMsrData->getNoOfMap()+2)*i; +#endif fout << qSetFieldWidth(0) << " "; fout << qSetFieldWidth(11); str = QString("N0_%1").arg(detectorName); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << left << str; fout << left << "123.4"; fout << left << "1.0"; fout << left << "none"; fout << qSetFieldWidth(0); fout << endl; +#else + fout << Qt::left << str; + fout << Qt::left << "123.4"; + fout << Qt::left << "1.0"; + fout << Qt::left << "none"; + fout << qSetFieldWidth(0); + fout << Qt::endl; +#endif fout << qSetFieldWidth(9); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << right << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 2 + (fMsrData->getNoOfMap()+2)*i; +#else + fout << Qt::right << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 2 + (fMsrData->getNoOfMap()+2)*i; +#endif fout << qSetFieldWidth(0) << " "; fout << qSetFieldWidth(11); str = QString("N_bkg_%1").arg(detectorName); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << left << str; fout << left << "1.234"; fout << left << "0.1"; fout << left << "none"; fout << qSetFieldWidth(0); fout << endl; +#else + fout << Qt::left << str; + fout << Qt::left << "1.234"; + fout << Qt::left << "0.1"; + fout << Qt::left << "none"; + fout << qSetFieldWidth(0); + fout << Qt::endl; +#endif } fout.setFieldWidth(0); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << endl << line << endl; +#else + fout << Qt::endl << line << Qt::endl; +#endif // write theory block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "THEORY" << endl; fout << fMsrData->getTheory() << endl; fout << endl << line << endl; +#else + fout << "THEORY" << Qt::endl; + fout << fMsrData->getTheory() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write functions block if (fMsrData->getNoOfFunc() > 0) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "FUNCTIONS" << endl; for (int i=0; igetNoOfFunc(); i++) { fout << fMsrData->getFunc(fMsrData->getFuncNo(i)) << endl; } fout << endl << line << endl; +#else + fout << "FUNCTIONS" << Qt::endl; + for (int i=0; igetNoOfFunc(); i++) { + fout << fMsrData->getFunc(fMsrData->getFuncNo(i)) << Qt::endl; + } + fout << Qt::endl << line << Qt::endl; +#endif } // write global block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "GLOBAL" << endl; fout << "fittype " << fMsrData->getFitType()-1 << endl; fout << "fit " << fMsrData->getFitStart() << " " << fMsrData->getFitEnd() << endl; fout << "packing " << fMsrData->getPacking() << endl; fout << endl << line << endl; +#else + fout << "GLOBAL" << Qt::endl; + fout << "fittype " << fMsrData->getFitType()-1 << Qt::endl; + fout << "fit " << fMsrData->getFitStart() << " " << fMsrData->getFitEnd() << Qt::endl; + fout << "packing " << fMsrData->getPacking() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write run block(s) int t0 = 0; @@ -2229,15 +2352,26 @@ int PMusrWiz::writeMsrFileSingleHisto() for (int i=0; igetDetector(i); detectorNo = detector->getForwards(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "RUN " << runName << endl; +#else + fout << "RUN " << runName << Qt::endl; +#endif fout << "map "; fout << qSetFieldWidth(10); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) for (int j=0; jgetNoOfMap(); j++) fout << left << fMsrData->getNoOfParam()+ 1 + (fMsrData->getNoOfMap()+2)*i + j; fout << qSetFieldWidth(0) << endl; +#else + for (int j=0; jgetNoOfMap(); j++) + fout << Qt::left << fMsrData->getNoOfParam()+ 1 + (fMsrData->getNoOfMap()+2)*i + j; + fout << qSetFieldWidth(0) << Qt::endl; +#endif fout << "forward "; for (int j=0; jgetNoOfParam() + fMsrData->getNoOfMap() + 1 + (fMsrData->getNoOfMap()+2)*i << endl; fout << "backgr.fit " << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 2 + (fMsrData->getNoOfMap()+2)*i << endl; @@ -2252,32 +2386,77 @@ int PMusrWiz::writeMsrFileSingleHisto() fout << "#-----------------------------------------------" << endl; else fout << endl << line << endl; +#else + fout << detectorNo[detectorNo.size()-1] << Qt::endl; + fout << "norm " << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 1 + (fMsrData->getNoOfMap()+2)*i << Qt::endl; + fout << "backgr.fit " << fMsrData->getNoOfParam() + fMsrData->getNoOfMap() + 2 + (fMsrData->getNoOfMap()+2)*i << Qt::endl; + if (fMsrData->getT0Tag() == T0_ENTER_WIZ) { + fout << "data " << t0+fgbOffset << " " << lgb << Qt::endl; + fout << "t0 " << t0 << Qt::endl; + } else if (fMsrData->getT0Tag() == T0_FROM_MUSR_T0) { + fout << "data 120 " << lgb << Qt::endl; + fout << "t0 100 " << Qt::endl; + } + if (igetCmd() << endl; fout << endl << line << endl; +#else + fout << "COMMANDS" << Qt::endl; + fout << fMsrData->getCmd() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write plot block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "PLOT " << fMsrData->getFitType()-1 << endl; fout << "lifetimecorrection" << endl; fout << "runs 1-" << setup->getNoOfLogicalDetectors() << endl; fout << "range 0.0 " << fMsrData->getFitEnd() << endl; fout << "view_packing " << fMsrData->getPacking() << endl; fout << endl << line << endl; +#else + fout << "PLOT " << fMsrData->getFitType()-1 << Qt::endl; + fout << "lifetimecorrection" << Qt::endl; + fout << "runs 1-" << setup->getNoOfLogicalDetectors() << Qt::endl; + fout << "range 0.0 " << fMsrData->getFitEnd() << Qt::endl; + fout << "view_packing " << fMsrData->getPacking() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write fourier block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "FOURIER" << endl; fout << "units MHz" << endl; fout << "fourier_power 12" << endl; fout << "apodization NONE" << endl; fout << "plot POWER" << endl; fout << endl << line << endl; +#else + fout << "FOURIER" << Qt::endl; + fout << "units MHz" << Qt::endl; + fout << "fourier_power 12" << Qt::endl; + fout << "apodization NONE" << Qt::endl; + fout << "plot POWER" << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write statistic block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "STATISTIC --- " << QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") << endl; fout << "*** FIT DID NOT CONVERGE ***" << endl; +#else + fout << "STATISTIC --- " << QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") << Qt::endl; + fout << "*** FIT DID NOT CONVERGE ***" << Qt::endl; +#endif fln.close(); @@ -2303,20 +2482,35 @@ int PMusrWiz::writeMsrFileAsymmetry() QString line = QString("###############################################################"); // write title +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << fMsrData->getMsrFileName() << endl; fout << line << endl; +#else + fout << fMsrData->getMsrFileName() << Qt::endl; + fout << line << Qt::endl; +#endif // write parameter block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "FITPARAMETER" << endl; fout << "# Nr. Name Value Step Pos_Error Boundaries" << endl; +#else + fout << "FITPARAMETER" << Qt::endl; + fout << "# Nr. Name Value Step Pos_Error Boundaries" << Qt::endl; +#endif PParam param; // global fit parameters for (int i=0; igetNoOfParam(); i++) { param = fMsrData->getParam(i); fout << qSetFieldWidth(9); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << right << param.getNumber(); +#else + fout << Qt::right << param.getNumber(); +#endif fout << qSetFieldWidth(0) << " "; fout << qSetFieldWidth(11); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << left << param.getName(); fout << left << param.getValue(); fout << left << param.getStep(); @@ -2327,6 +2521,18 @@ int PMusrWiz::writeMsrFileAsymmetry() fout << left << param.getBoundHigh(); fout << qSetFieldWidth(0); fout << endl; +#else + fout << Qt::left << param.getName(); + fout << Qt::left << param.getValue(); + fout << Qt::left << param.getStep(); + fout << Qt::left << param.getPosErr(); + if (!param.getBoundLow().isEmpty()) + fout << Qt::left << param.getBoundLow(); + if (!param.getBoundHigh().isEmpty()) + fout << Qt::left << param.getBoundHigh(); + fout << qSetFieldWidth(0); + fout << Qt::endl; +#endif } // detector specific fit parameters @@ -2368,31 +2574,53 @@ int PMusrWiz::writeMsrFileAsymmetry() detector = setup->getAsymDetector(i); detectorName = detector->getName(); // name comment +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "# " << detectorName << endl; +#else + fout << "# " << detectorName << Qt::endl; +#endif // first all maps // write Alpha (mandatory) fout << qSetFieldWidth(9); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << right << fMsrData->getNoOfParam() + 1 + (fMsrData->getNoOfMap()+1)*i; +#else + fout << Qt::right << fMsrData->getNoOfParam() + 1 + (fMsrData->getNoOfMap()+1)*i; +#endif fout << qSetFieldWidth(0) << " "; fout << qSetFieldWidth(11); str = QString("Alpha_%1").arg(detectorName); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << left << str; fout << left << detector->getAlpha(); fout << left << "0.01"; fout << left << "none"; fout << qSetFieldWidth(0); fout << endl; +#else + fout << Qt::left << str; + fout << Qt::left << detector->getAlpha(); + fout << Qt::left << "0.01"; + fout << Qt::left << "none"; + fout << qSetFieldWidth(0); + fout << Qt::endl; +#endif // write user defined maps for (int j=0; jgetNoOfMap(); j++) { map = fMsrData->getMap(j); fout << qSetFieldWidth(9); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << right << fMsrData->getNoOfParam() + 2 + j + (fMsrData->getNoOfMap()+1)*i; +#else + fout << Qt::right << fMsrData->getNoOfParam() + 2 + j + (fMsrData->getNoOfMap()+1)*i; +#endif fout << qSetFieldWidth(0) << " "; fout << qSetFieldWidth(11); str = map.getName() + QString("_%1").arg(detectorName); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << left << str; if (map.getName().startsWith("ph", Qt::CaseInsensitive) || map.getName().startsWith("relph", Qt::CaseInsensitive)) { @@ -2413,32 +2641,84 @@ int PMusrWiz::writeMsrFileAsymmetry() } fout << qSetFieldWidth(0); fout << endl; +#else + fout << Qt::left << str; + if (map.getName().startsWith("ph", Qt::CaseInsensitive) || + map.getName().startsWith("relph", Qt::CaseInsensitive)) { + fout << Qt::left << detector->getRelGeomPhase(); + if (map.getName().startsWith("relph", Qt::CaseInsensitive) && (i==0)) + fout << Qt::left << 0.0; + else + fout << Qt::left << 12.3; + fout << Qt::left << "none"; + } else { + fout << Qt::left << map.getValue(); + fout << Qt::left << map.getStep(); + fout << Qt::left << map.getPosErr(); + if (map.getBoundLow() != "") + fout << Qt::left << map.getBoundLow(); + if (map.getBoundHigh() != "") + fout << Qt::left << map.getBoundHigh(); + } + fout << qSetFieldWidth(0); + fout << Qt::endl; +#endif } } fout.setFieldWidth(0); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << endl << line << endl; +#else + fout << Qt::endl << line << Qt::endl; +#endif // write theory block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "THEORY" << endl; fout << fMsrData->getTheory(); fout << endl << line << endl; +#else + fout << "THEORY" << Qt::endl; + fout << fMsrData->getTheory(); + fout << Qt::endl << line << Qt::endl; +#endif // write functions block if (fMsrData->getNoOfFunc() > 0) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "FUNCTIONS" << endl; +#else + fout << "FUNCTIONS" << Qt::endl; +#endif for (int i=0; igetNoOfFunc(); i++) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << fMsrData->getFunc(fMsrData->getFuncNo(i)) << endl; +#else + fout << fMsrData->getFunc(fMsrData->getFuncNo(i)) << Qt::endl; +#endif } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << endl << line << endl; +#else + fout << Qt::endl << line << Qt::endl; +#endif } // write global block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "GLOBAL" << endl; fout << "fittype " << fMsrData->getFitType()-1 << endl; fout << "fit " << fMsrData->getFitStart() << " " << fMsrData->getFitEnd() << endl; fout << "packing " << fMsrData->getPacking() << endl; fout << endl << line << endl; +#else + fout << "GLOBAL" << Qt::endl; + fout << "fittype " << fMsrData->getFitType()-1 << Qt::endl; + fout << "fit " << fMsrData->getFitStart() << " " << fMsrData->getFitEnd() << Qt::endl; + fout << "packing " << fMsrData->getPacking() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write run block(s) int t0 = 0; @@ -2452,11 +2732,17 @@ int PMusrWiz::writeMsrFileAsymmetry() detector = setup->getAsymDetector(i); detectorNoF = detector->getForwards(); detectorNoB = detector->getBackwards(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "RUN " << runName << endl; fout << "alpha " << fMsrData->getNoOfParam() + 1 + (fMsrData->getNoOfMap()+1)*i << endl; +#else + fout << "RUN " << runName << Qt::endl; + fout << "alpha " << fMsrData->getNoOfParam() + 1 + (fMsrData->getNoOfMap()+1)*i << Qt::endl; +#endif fout << "map "; fout << qSetFieldWidth(10); +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) if (fMsrData->getNoOfMap() == 0) { fout << left << "0 0 0 0 0 0 0 0 0 0"; } else { @@ -2464,34 +2750,76 @@ int PMusrWiz::writeMsrFileAsymmetry() fout << left << fMsrData->getNoOfParam() + 2 + (fMsrData->getNoOfMap()+1)*i + j; } fout << qSetFieldWidth(0) << endl; +#else + if (fMsrData->getNoOfMap() == 0) { + fout << Qt::left << "0 0 0 0 0 0 0 0 0 0"; + } else { + for (int j=0; jgetNoOfMap(); j++) + fout << Qt::left << fMsrData->getNoOfParam() + 2 + (fMsrData->getNoOfMap()+1)*i + j; + } + fout << qSetFieldWidth(0) << Qt::endl; +#endif fout << "forward "; for (int j=0; jgetBkgStartBin() << " " << setup->getBkgEndBin() << " " << setup->getBkgStartBin() << " " << setup->getBkgEndBin() << endl; +#else + fout << detectorNoB[detectorNoB.size()-1] << Qt::endl; + fout << "background " << setup->getBkgStartBin() << " " << setup->getBkgEndBin() << " " << setup->getBkgStartBin() << " " << setup->getBkgEndBin() << Qt::endl; +#endif if (fMsrData->getT0Tag() == T0_ENTER_WIZ) { - fout << "data " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << endl;; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) + fout << "data " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << endl; fout << "t0 " << t0 << " " << t0 << endl; +#else + fout << "data " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << " " << t0+fgbOffset << " " << lgb << Qt::endl; + fout << "t0 " << t0 << " " << t0 << Qt::endl; +#endif } else if (fMsrData->getT0Tag() == T0_FROM_MUSR_T0) { // musrt0 shall be called +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "data 120 " << lgb << " 120 " << lgb << endl; fout << "t0 100 100" << endl; +#else + fout << "data 120 " << lgb << " 120 " << lgb << Qt::endl; + fout << "t0 100 100" << Qt::endl; +#endif } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) if (igetCmd() << endl; fout << endl << line << endl; +#else + fout << "COMMANDS" << Qt::endl; + fout << fMsrData->getCmd() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write plot block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "PLOT " << fMsrData->getFitType()-1 << endl; fout << "lifetimecorrection" << endl; if (setup->getNoOfLogicalAsymDetectors() > 1) @@ -2501,18 +2829,43 @@ int PMusrWiz::writeMsrFileAsymmetry() fout << "range 0.0 " << fMsrData->getFitEnd() << endl; fout << "view_packing " << fMsrData->getPacking() << endl; fout << endl << line << endl; +#else + fout << "PLOT " << fMsrData->getFitType()-1 << Qt::endl; + fout << "lifetimecorrection" << Qt::endl; + if (setup->getNoOfLogicalAsymDetectors() > 1) + fout << "runs 1-" << setup->getNoOfLogicalAsymDetectors() << Qt::endl; + else + fout << "runs 1" << Qt::endl; + fout << "range 0.0 " << fMsrData->getFitEnd() << Qt::endl; + fout << "view_packing " << fMsrData->getPacking() << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write fourier block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "FOURIER" << endl; fout << "units MHz" << endl; fout << "fourier_power 12" << endl; fout << "apodization NONE" << endl; fout << "plot POWER" << endl; fout << endl << line << endl; +#else + fout << "FOURIER" << Qt::endl; + fout << "units MHz" << Qt::endl; + fout << "fourier_power 12" << Qt::endl; + fout << "apodization NONE" << Qt::endl; + fout << "plot POWER" << Qt::endl; + fout << Qt::endl << line << Qt::endl; +#endif // write statistic block +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) fout << "STATISTIC --- " << QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") << endl; fout << "*** FIT DID NOT CONVERGE ***" << endl; +#else + fout << "STATISTIC --- " << QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") << Qt::endl; + fout << "*** FIT DID NOT CONVERGE ***" << Qt::endl; +#endif fln.close(); diff --git a/src/musredit_qt5/musredit/PAdmin.cpp b/src/musredit_qt5/musredit/PAdmin.cpp index 32fb0b40..7317665d 100644 --- a/src/musredit_qt5/musredit/PAdmin.cpp +++ b/src/musredit_qt5/musredit/PAdmin.cpp @@ -1022,8 +1022,13 @@ int PAdmin::savePrefs(QString pref_fln) return 0; } fin.setDevice(&file); - for (int i=0; i")) { // if not data_path was present, add the new data_paths just before the end of the musrfit_start.xml close tag if ((dataPathPresent == false) && (str.trimmed().startsWith(""))) { - for (int j=0; jcount(); j++) + for (int j=0; jcount(); j++) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) out << " " << fSearchPath_listWidget->item(j)->text() << "" << endl; +#else + out << " " << fSearchPath_listWidget->item(j)->text() << "" << Qt::endl; +#endif + } } +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) out << fileContent[i] << endl; +#else + out << fileContent[i] << Qt::endl; +#endif } else { if (first) { first = false; for (int j=0; jcount(); j++) +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) out << " " << fSearchPath_listWidget->item(j)->text() << "" << endl; +#else + out << " " << fSearchPath_listWidget->item(j)->text() << "" << Qt::endl; +#endif } } } diff --git a/src/musredit_qt5/musredit/PDumpOutputHandler.cpp b/src/musredit_qt5/musredit/PDumpOutputHandler.cpp index 2bddcea2..ff5f3aef 100644 --- a/src/musredit_qt5/musredit/PDumpOutputHandler.cpp +++ b/src/musredit_qt5/musredit/PDumpOutputHandler.cpp @@ -85,7 +85,12 @@ PDumpOutputHandler::PDumpOutputHandler(QVector &cmd) tr("Quit") ); done(0); } + +#if (QT_VERSION < QT_VERSION_CHECK(5, 2, 0)) fProcPID = fProc->pid(); +#else + fProcPID = fProc->processId(); +#endif } //---------------------------------------------------------------------------------------------------- @@ -97,7 +102,11 @@ PDumpOutputHandler::~PDumpOutputHandler() if (fProc->state() == QProcess::Running) { fProc->terminate(); if (!fProc->waitForFinished()) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) qDebug() << "fProc still running, will call kill." << endl; +#else + qDebug() << "fProc still running, will call kill." << Qt::endl; +#endif fProc->kill(); } fProc->waitForFinished(); @@ -105,7 +114,11 @@ PDumpOutputHandler::~PDumpOutputHandler() if (fProc->state() == QProcess::Running) { QString cmd = "kill -9 "+ QString("%1").arg(fProcPID); QString msg = "fProc still running even after Qt kill, will try system kill cmd: "+cmd; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) qDebug() << msg << endl; +#else + qDebug() << msg << Qt::endl; +#endif system(cmd.toLatin1()); } if (fProc) { diff --git a/src/musredit_qt5/musredit/PFindDialog.cpp b/src/musredit_qt5/musredit/PFindDialog.cpp index d8101ee6..d512d40c 100644 --- a/src/musredit_qt5/musredit/PFindDialog.cpp +++ b/src/musredit_qt5/musredit/PFindDialog.cpp @@ -44,8 +44,8 @@ * \param parent pointer to the parent object * \param f qt specific window flags */ -PFindDialog::PFindDialog(PFindReplaceData *data, const bool selection, QWidget *parent, Qt::WindowFlags f) : - QDialog(parent, f), fData(data) +PFindDialog::PFindDialog(PFindReplaceData *data, const bool selection, QWidget *parent) : + QDialog(parent), fData(data) { setupUi(this); diff --git a/src/musredit_qt5/musredit/PFindDialog.h b/src/musredit_qt5/musredit/PFindDialog.h index b3348183..55ed89a7 100644 --- a/src/musredit_qt5/musredit/PFindDialog.h +++ b/src/musredit_qt5/musredit/PFindDialog.h @@ -42,7 +42,7 @@ class PFindDialog : public QDialog, private Ui::PFindDialog Q_OBJECT public: - PFindDialog(PFindReplaceData *data, const bool selection, QWidget *parent = 0, Qt::WindowFlags f = 0); + PFindDialog(PFindReplaceData *data, const bool selection, QWidget *parent = nullptr); virtual ~PFindDialog() {} virtual PFindReplaceData *getData(); diff --git a/src/musredit_qt5/musredit/PFitOutputHandler.cpp b/src/musredit_qt5/musredit/PFitOutputHandler.cpp index 7e5c9aaf..1f3985a3 100644 --- a/src/musredit_qt5/musredit/PFitOutputHandler.cpp +++ b/src/musredit_qt5/musredit/PFitOutputHandler.cpp @@ -91,7 +91,11 @@ PFitOutputHandler::PFitOutputHandler(QString workingDirectory, QVector tr("Quit") ); done(0); } +#if (QT_VERSION < QT_VERSION_CHECK(5, 2, 0)) fProcPID = fProc->pid(); +#else + fProcPID = fProc->processId(); +#endif } //---------------------------------------------------------------------------------------------------- @@ -103,7 +107,11 @@ PFitOutputHandler::~PFitOutputHandler() if (fProc->state() == QProcess::Running) { fProc->terminate(); if (!fProc->waitForFinished()) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) qDebug() << "fProc still running, will call kill." << endl; +#else + qDebug() << "fProc still running, will call kill." << Qt::endl; +#endif fProc->kill(); } fProc->waitForFinished(); @@ -111,7 +119,11 @@ PFitOutputHandler::~PFitOutputHandler() if (fProc->state() == QProcess::Running) { QString cmd = "kill -9 "+ QString("%1").arg(fProcPID); QString msg = "fProc still running even after Qt kill, will try system kill cmd: "+cmd; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) qDebug() << msg << endl; +#else + qDebug() << msg << Qt::endl; +#endif system(cmd.toLatin1()); } if (fProc) { @@ -151,8 +163,13 @@ void PFitOutputHandler::readFromStdErr() */ void PFitOutputHandler::processDone(int exitCode, QProcess::ExitStatus exitStatus) { - if ((exitStatus == QProcess::CrashExit) && (exitCode != 0)) + if ((exitStatus == QProcess::CrashExit) && (exitCode != 0)) { +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) qDebug() << "**ERROR** PFitOutputHandler::processDone: exitCode = " << exitCode << endl; +#else + qDebug() << "**ERROR** PFitOutputHandler::processDone: exitCode = " << exitCode << Qt::endl; +#endif + } fQuitButton->setText("Done"); } diff --git a/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp b/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp index 3acf1306..2d275c01 100644 --- a/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp +++ b/src/musredit_qt5/musredit/PGetMusrFTOptionsDialog.cpp @@ -331,7 +331,11 @@ QStringList PGetMusrFTOptionsDialog::getMusrFTOptions() // histo list if (fHistoList_lineEdit->text().length() > 0) { cmd << "--histo"; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) strList = fHistoList_lineEdit->text().split(" ", QString::SkipEmptyParts); +#else + strList = fHistoList_lineEdit->text().split(" ", Qt::SkipEmptyParts); +#endif for (int i=0; itext().length() > 0) { cmd << "--t0"; +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) strList = fT0_lineEdit->text().split(" ", QString::SkipEmptyParts); +#else + strList = fT0_lineEdit->text().split(" ", Qt::SkipEmptyParts); +#endif for (int i=0; iHandles the musredit about popup. */ -PMusrEditAbout::PMusrEditAbout(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) +PMusrEditAbout::PMusrEditAbout(QWidget *parent) : QDialog(parent) { setupUi(this); diff --git a/src/musredit_qt5/musredit/PMusrEditAbout.h b/src/musredit_qt5/musredit/PMusrEditAbout.h index a5915265..aaa5adf8 100644 --- a/src/musredit_qt5/musredit/PMusrEditAbout.h +++ b/src/musredit_qt5/musredit/PMusrEditAbout.h @@ -38,7 +38,7 @@ class PMusrEditAbout : public QDialog, private Ui::PMusrEditAbout Q_OBJECT public: - PMusrEditAbout(QWidget *parent = 0, Qt::WindowFlags f = 0); + PMusrEditAbout(QWidget *parent = nullptr); virtual ~PMusrEditAbout() {} }; diff --git a/src/musredit_qt5/musredit/PReplaceConfirmationDialog.cpp b/src/musredit_qt5/musredit/PReplaceConfirmationDialog.cpp index 20e7bea2..42e75973 100644 --- a/src/musredit_qt5/musredit/PReplaceConfirmationDialog.cpp +++ b/src/musredit_qt5/musredit/PReplaceConfirmationDialog.cpp @@ -36,7 +36,7 @@ * \param parent pointer to the parent object * \param f qt windows flags */ -PReplaceConfirmationDialog::PReplaceConfirmationDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) +PReplaceConfirmationDialog::PReplaceConfirmationDialog(QWidget *parent) : QDialog(parent) { setupUi(this); diff --git a/src/musredit_qt5/musredit/PReplaceConfirmationDialog.h b/src/musredit_qt5/musredit/PReplaceConfirmationDialog.h index 86611ec1..c097c067 100644 --- a/src/musredit_qt5/musredit/PReplaceConfirmationDialog.h +++ b/src/musredit_qt5/musredit/PReplaceConfirmationDialog.h @@ -40,7 +40,7 @@ class PReplaceConfirmationDialog : public QDialog, public Ui::PReplaceConfirmati Q_OBJECT public: - PReplaceConfirmationDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); + PReplaceConfirmationDialog(QWidget *parent = nullptr); virtual ~PReplaceConfirmationDialog() {} }; diff --git a/src/musredit_qt5/musredit/PReplaceDialog.cpp b/src/musredit_qt5/musredit/PReplaceDialog.cpp index 11a6322d..bc095646 100644 --- a/src/musredit_qt5/musredit/PReplaceDialog.cpp +++ b/src/musredit_qt5/musredit/PReplaceDialog.cpp @@ -42,8 +42,8 @@ * \param parent pointer to the parent object * \param f qt windows flag */ -PReplaceDialog::PReplaceDialog(PFindReplaceData *data, const bool selection, QWidget *parent, Qt::WindowFlags f) : - QDialog(parent, f), fData(data) +PReplaceDialog::PReplaceDialog(PFindReplaceData *data, const bool selection, QWidget *parent) : + QDialog(parent), fData(data) { setupUi(this); diff --git a/src/musredit_qt5/musredit/PReplaceDialog.h b/src/musredit_qt5/musredit/PReplaceDialog.h index b0534239..5e63cccd 100644 --- a/src/musredit_qt5/musredit/PReplaceDialog.h +++ b/src/musredit_qt5/musredit/PReplaceDialog.h @@ -38,7 +38,7 @@ class PReplaceDialog : public QDialog, private Ui::PReplaceDialog Q_OBJECT public: - PReplaceDialog(PFindReplaceData *data, const bool selection, QWidget *parent = 0, Qt::WindowFlags f = 0); + PReplaceDialog(PFindReplaceData *data, const bool selection, QWidget *parent = nullptr); virtual ~PReplaceDialog() {} virtual PFindReplaceData *getData(); diff --git a/src/musredit_qt5/musredit/PTextEdit.cpp b/src/musredit_qt5/musredit/PTextEdit.cpp index 62f0e526..00013f8d 100644 --- a/src/musredit_qt5/musredit/PTextEdit.cpp +++ b/src/musredit_qt5/musredit/PTextEdit.cpp @@ -84,8 +84,8 @@ * \param parent pointer to the parent object * \param f qt windows flags */ -PTextEdit::PTextEdit( QWidget *parent, Qt::WindowFlags f ) - : QMainWindow( parent, f ) +PTextEdit::PTextEdit( QWidget *parent ) + : QMainWindow( parent ) { bool gotTheme = getTheme(); @@ -1743,7 +1743,7 @@ void PTextEdit::editFind() if (!fFindReplaceData->fromCursor) currentEditor()->textCursor().setPosition(0); - QTextDocument::FindFlags flags = nullptr; + QTextDocument::FindFlags flags; if (fFindReplaceData->caseSensitive) flags |= QTextDocument::FindCaseSensitively; else if (fFindReplaceData->findBackwards) @@ -1760,7 +1760,7 @@ void PTextEdit::editFind() */ void PTextEdit::editFindNext() { - QTextDocument::FindFlags flags = nullptr; + QTextDocument::FindFlags flags; if (fFindReplaceData->caseSensitive) flags |= QTextDocument::FindCaseSensitively; else if (fFindReplaceData->wholeWordsOnly) @@ -1775,7 +1775,7 @@ void PTextEdit::editFindNext() */ void PTextEdit::editFindPrevious() { - QTextDocument::FindFlags flags = nullptr; + QTextDocument::FindFlags flags; if (fFindReplaceData->caseSensitive) flags |= QTextDocument::FindCaseSensitively; else if (fFindReplaceData->wholeWordsOnly) @@ -2942,6 +2942,8 @@ void PTextEdit::mupp() cmd = QString("/Applications/mupp.app/Contents/MacOS/mupp"); #endif + QStringList arg; + QProcess *proc = new QProcess(this); QString workDir = QFileInfo(*fFilenames.find( currentEditor() )).absolutePath(); @@ -2951,7 +2953,7 @@ void PTextEdit::mupp() env.insert("LD_LIBRARY_PATH", env.value("ROOTSYS") + "/lib:" + env.value("LD_LIBRARY_PATH")); proc->setProcessEnvironment(env); proc->setWorkingDirectory(workDir); - proc->start(cmd); + proc->start(cmd, arg); if (!proc->waitForStarted()) { // error handling QString msg(tr("Could not execute the output command: ")+cmd); @@ -3192,7 +3194,7 @@ void PTextEdit::replaceAll() currentEditor()->moveCursor(QTextCursor::Start); // construct search flags - QTextDocument::FindFlags flags = 0; + QTextDocument::FindFlags flags; if (fFindReplaceData->caseSensitive) flags |= QTextDocument::FindCaseSensitively; else if (fFindReplaceData->findBackwards) @@ -3363,10 +3365,18 @@ QStringList PTextEdit::getRunList(QString runListStr, bool &ok) ok = true; // first split space separated parts +#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) QStringList tok = runListStr.split(' ', QString::SkipEmptyParts); +#else + QStringList tok = runListStr.split(' ', Qt::SkipEmptyParts); +#endif for (int i=0; i Date: Sat, 26 Dec 2020 11:54:18 +0100 Subject: [PATCH 06/10] fix minor '=' vs '==' bug. --- src/musredit_qt5/mupp/PmuppGui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/musredit_qt5/mupp/PmuppGui.cpp b/src/musredit_qt5/mupp/PmuppGui.cpp index f7a15f40..c3d425d2 100644 --- a/src/musredit_qt5/mupp/PmuppGui.cpp +++ b/src/musredit_qt5/mupp/PmuppGui.cpp @@ -1314,7 +1314,7 @@ void PmuppGui::addVar() // call variable dialog if (fVarDlg != nullptr) { delete fVarDlg; - fVarDlg == nullptr; + fVarDlg = nullptr; } fVarDlg = new PVarDialog(collection_list, fDarkTheme); connect(fVarDlg, SIGNAL(check_request(QString,QVector)), this, SLOT(check(QString,QVector))); From 7d4ed40fb0a3eedcb14cb0341437428588bf4162 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 28 Dec 2020 18:24:30 +0100 Subject: [PATCH 07/10] remove obsolate FindDKS.cmake. --- cmake/FindDKS.cmake | 71 --------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 cmake/FindDKS.cmake diff --git a/cmake/FindDKS.cmake b/cmake/FindDKS.cmake deleted file mode 100644 index 4decbcbe..00000000 --- a/cmake/FindDKS.cmake +++ /dev/null @@ -1,71 +0,0 @@ -#--- FindDKS ------------------------------------------------------------------ -# -# This module defines: -# DKS_INCLUDE_DIR, where to find DKSBaseMuSR.h -# DKS_LIBS, shared library to be linked against if using DKS -# DKS_CFLAGS, compiler flags needed for DKS -# -# **as35** since I currently also maintaing the DKS library, it should add -# a DKSConfig.cmake which eventually will make this module obsolate. This -# means this module is only a kick starter. - -find_path(DKS_INCLUDE_DIR DKSBaseMuSR.h - HINTS "/usr/include" "/opt/local/include" - "/usr/local/DKS/include" - "$ENV{HOME}/Apps/DKS/exec/include" - "$ENV{HOME}/Applications/DKS/exec/include" -) - -# find position of DKSBaseMuSR.h from the end -string(FIND "${DKS_INCLUDE_DIR}" "/DKSBaseMuSR.h" pos REVERSE) -# truncate the string -string(SUBSTRING "${DKS_INCLUDE_DIR}" 0 ${pos} substr) -set(DKS_INCLUDE_DIR ${substr}) -unset(substr) - -find_library(DKS_LIBRARY dksshared - HINTS "/usr/lib" "/usr/lib64" "/opt/local/lib" - "/usr/local/DKS/lib" - "$ENV{HOME}/Apps/DKS/exec/lib" - "$ENV{HOME}/Applications/DKS/exec/lib" -) - -if (CUDA_FOUND) - set(DKS_CFLAGS -DDKS_OPENCL -DDKS_CUDA -I${DKS_INCLUDE_DIR} -I${CUDA_INCLUDE_DIRS}) - set(DKS_LIBS ${CUDA_LIBRARIES} ${DKS_LIBRARY}) -else (CUDA_FOUND) - if (OpenCL_FOUND) - if (APPLE) - set(DKS_CFLAGS -DDKS_OPENCL -I${DKS_INCLUDE_DIR} -I${OpenCL_INCLUDE_DIRS}) - set(DKS_LIBS ${OpenCL_LIBRARY} ${DKS_LIBRARY}) - else (APPLE) - set(DKS_CFLAGS -DDKS_OPENCL -I${DKS_INCLUDE_DIR} -I${OpenCL_INCLUDE_DIRS}) - set(DKS_LIBS ${OpenCL_LIBRARY} ${DKS_LIBRARY}) - endif (APPLE) - else (OpenCL_FOUND) - message(FATAL "neither CUDA nor OpenCL found when looking for DKS.") - endif (OpenCL_FOUND) -endif (CUDA_FOUND) - -# as35 set here the DKS version explicitly. This is VERY ugly and should be fixed -# asap by using a package -set(DKS_VERSION "1.1.3") - -# handle the QUIETLY and REQUIRED arguments and set DKS_FOUND to TRUE if -# all listed variables are TRUE -include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) -find_package_handle_standard_args(DKS - REQUIRED_VARS DKS_CFLAGS DKS_LIBS DKS_INCLUDE_DIR - VERSION_VAR DKS_VERSION) - -if (NOT DKS_FOUND) - unset(DKS_CFLAGS) - unset(DKS_LIBS) -endif (NOT DKS_FOUND) - -mark_as_advanced( - DKS_INCLUDE_DIR - DKS_CFLAGS - DKS_LIBS -) - From b8d899f67f2bdeb8dad90db9d5b9292a3e32b53d Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 28 Dec 2020 18:25:31 +0100 Subject: [PATCH 08/10] add proper compiler flags for DKS/CUDA. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf260c1a..8925072c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ if (dks) message (STATUS "CUDA include: ${CUDA_INCLUDE_DIRS}") message (STATUS "CUDA libs: ${CUDA_TOOLKIT_ROOT_DIR}/lib64") message (STATUS "CUDA version: ${CUDA_VERSION}") - add_definitions(-DDKS_CUDA) + add_definitions(${DKS_CMAKE_CXX_FLAGS}) endif (CUDA_FOUND) if (NOT CUDA_FOUND) From aa08b4069646e3d9b346f6d0fd3f33517e97697b Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 28 Dec 2020 18:26:45 +0100 Subject: [PATCH 09/10] restrict some compiler flags to the correct platforms. --- src/classes/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/classes/CMakeLists.txt b/src/classes/CMakeLists.txt index 4575a2bd..984dcea7 100644 --- a/src/classes/CMakeLists.txt +++ b/src/classes/CMakeLists.txt @@ -163,7 +163,9 @@ if (OpenMP_FOUND) endif (OpenMP_CXX_LIBRARIES) endif (OpenMP_FOUND) if (DKS_FOUND) - set(DependOnLibs ${DependOnLibs} "-framework OpenCL") + if (APPLE) + set(DependOnLibs ${DependOnLibs} "-framework OpenCL") + endif (APPLE) set(DependOnLibs ${DependOnLibs} "-L ${DKS_LIBRARY_DIR}") set(DependOnLibs ${DependOnLibs} ${DKS_LIBRARY}) endif (DKS_FOUND) From cd53c5a5742338b888d15dfc830bfc0eba0c24a5 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Mon, 28 Dec 2020 15:13:45 +0100 Subject: [PATCH 10/10] add proper p-wave (line,point) superfluid density calculation -- adopted to DKS. --- src/external/BMWtools/BMWIntegrator.cpp | 176 ++++++++ src/external/BMWtools/BMWIntegrator.h | 41 ++ src/external/libGapIntegrals/GapIntegrals.pdf | Bin 175705 -> 274593 bytes src/external/libGapIntegrals/GapIntegrals.tex | 90 +++- .../libGapIntegrals/TGapIntegrals.cpp | 398 +++++++++++++++++- src/external/libGapIntegrals/TGapIntegrals.h | 144 +++++++ .../libGapIntegrals/TGapIntegralsLinkDef.h | 6 + 7 files changed, 840 insertions(+), 15 deletions(-) diff --git a/src/external/BMWtools/BMWIntegrator.cpp b/src/external/BMWtools/BMWIntegrator.cpp index 96ce4154..bd810c42 100644 --- a/src/external/BMWtools/BMWIntegrator.cpp +++ b/src/external/BMWtools/BMWIntegrator.cpp @@ -35,6 +35,182 @@ #define SEED 0 #define STATEFILE NULL +//----------------------------------------------------------------------------- + +std::vector TPointPWaveGapIntegralCuhre::fPar; + +//----------------------------------------------------------------------------- +/** + *

Integrate the function using the Cuhre interface + * + *

return: + * - value of the integral + */ +double TPointPWaveGapIntegralCuhre::IntegrateFunc(int tag) +{ + const unsigned int NCOMP(1); + const unsigned int NVEC(1); + const double EPSREL (1e-4); + const double EPSABS (1e-6); + const unsigned int VERBOSE (0); + const unsigned int LAST (4); + const unsigned int MINEVAL (0); + const unsigned int MAXEVAL (50000); + + const unsigned int KEY (13); + + int nregions, neval, fail; + double integral[NCOMP], error[NCOMP], prob[NCOMP]; + + if (tag == 0) + Cuhre(fNDim, NCOMP, Integrand_aa, USERDATA, NVEC, + EPSREL, EPSABS, VERBOSE | LAST, MINEVAL, MAXEVAL, + KEY, STATEFILE, SPIN, + &nregions, &neval, &fail, integral, error, prob); + else + Cuhre(fNDim, NCOMP, Integrand_cc, USERDATA, NVEC, + EPSREL, EPSABS, VERBOSE | LAST, MINEVAL, MAXEVAL, + KEY, STATEFILE, SPIN, + &nregions, &neval, &fail, integral, error, prob); + + return integral[0]; +} + +//----------------------------------------------------------------------------- +/** + *

Calculate the function value for the use with Cuhre---actual implementation of the function + * for p-wave point, aa==bb component + * + *

return: + * - 0 + * + * \param ndim number of dimensions of the integral (2 here) + * \param x point where the function should be evaluated + * \param ncomp number of components of the integrand (1 here) + * \param f function value + * \param userdata additional user parameters (required by the interface, NULL here) + */ +int TPointPWaveGapIntegralCuhre::Integrand_aa(const int *ndim, const double x[], + const int *ncomp, double f[], void *userdata) // x = {E, z}, fPar = {twokBT, Delta(T), Ec, zc} +{ + double z = x[1]*fPar[3]; + double deltasq(pow(sqrt(1.0-z*z)*fPar[1],2.0)); + f[0] = (1.0-z*z)/TMath::Power(TMath::CosH(TMath::Sqrt(x[0]*x[0]*fPar[2]*fPar[2]+deltasq)/fPar[0]),2.0); + return 0; +} + +//----------------------------------------------------------------------------- +/** + *

Calculate the function value for the use with Cuhre---actual implementation of the function + * for p-wave point, cc component + * + *

return: + * - 0 + * + * \param ndim number of dimensions of the integral (2 here) + * \param x point where the function should be evaluated + * \param ncomp number of components of the integrand (1 here) + * \param f function value + * \param userdata additional user parameters (required by the interface, NULL here) + */ +int TPointPWaveGapIntegralCuhre::Integrand_cc(const int *ndim, const double x[], + const int *ncomp, double f[], void *userdata) // x = {E, z}, fPar = {twokBT, Delta(T), Ec, zc} +{ + double z = x[1]*fPar[3]; + double deltasq(pow(sqrt(1.0-z*z)*fPar[1],2.0)); + f[0] = (z*z)/TMath::Power(TMath::CosH(TMath::Sqrt(x[0]*x[0]*fPar[2]*fPar[2]+deltasq)/fPar[0]),2.0); + return 0; +} + +//----------------------------------------------------------------------------- + +std::vector TLinePWaveGapIntegralCuhre::fPar; + +//----------------------------------------------------------------------------- +/** + *

Integrate the function using the Cuhre interface + * + *

return: + * - value of the integral + */ +double TLinePWaveGapIntegralCuhre::IntegrateFunc(int tag) +{ + const unsigned int NCOMP(1); + const unsigned int NVEC(1); + const double EPSREL (1e-4); + const double EPSABS (1e-6); + const unsigned int VERBOSE (0); + const unsigned int LAST (4); + const unsigned int MINEVAL (0); + const unsigned int MAXEVAL (50000); + + const unsigned int KEY (13); + + int nregions, neval, fail; + double integral[NCOMP], error[NCOMP], prob[NCOMP]; + + if (tag == 0) + Cuhre(fNDim, NCOMP, Integrand_aa, USERDATA, NVEC, + EPSREL, EPSABS, VERBOSE | LAST, MINEVAL, MAXEVAL, + KEY, STATEFILE, SPIN, + &nregions, &neval, &fail, integral, error, prob); + else + Cuhre(fNDim, NCOMP, Integrand_cc, USERDATA, NVEC, + EPSREL, EPSABS, VERBOSE | LAST, MINEVAL, MAXEVAL, + KEY, STATEFILE, SPIN, + &nregions, &neval, &fail, integral, error, prob); + + return integral[0]; +} + +//----------------------------------------------------------------------------- +/** + *

Calculate the function value for the use with Cuhre---actual implementation of the function + * for p-wave line, aa==bb component + * + *

return: + * - 0 + * + * \param ndim number of dimensions of the integral (2 here) + * \param x point where the function should be evaluated + * \param ncomp number of components of the integrand (1 here) + * \param f function value + * \param userdata additional user parameters (required by the interface, NULL here) + */ +int TLinePWaveGapIntegralCuhre::Integrand_aa(const int *ndim, const double x[], + const int *ncomp, double f[], void *userdata) // x = {E, z}, fPar = {twokBT, Delta(T), Ec, zc} +{ + double z = x[1]*fPar[3]; + double deltasq(pow(z*fPar[1],2.0)); + f[0] = (1.0-z*z)/TMath::Power(TMath::CosH(TMath::Sqrt(x[0]*x[0]*fPar[2]*fPar[2]+deltasq)/fPar[0]),2.0); + return 0; +} + +//----------------------------------------------------------------------------- +/** + *

Calculate the function value for the use with Cuhre---actual implementation of the function + * for p-wave line, cc component + * + *

return: + * - 0 + * + * \param ndim number of dimensions of the integral (2 here) + * \param x point where the function should be evaluated + * \param ncomp number of components of the integrand (1 here) + * \param f function value + * \param userdata additional user parameters (required by the interface, NULL here) + */ +int TLinePWaveGapIntegralCuhre::Integrand_cc(const int *ndim, const double x[], + const int *ncomp, double f[], void *userdata) // x = {E, z}, fPar = {twokBT, Delta(T), Ec, zc} +{ + double z = x[1]*fPar[3]; + double deltasq(pow(z*fPar[1],2.0)); + f[0] = (z*z)/TMath::Power(TMath::CosH(TMath::Sqrt(x[0]*x[0]*fPar[2]*fPar[2]+deltasq)/fPar[0]),2.0); + return 0; +} + +//----------------------------------------------------------------------------- + std::vector TDWaveGapIntegralCuhre::fPar; /** diff --git a/src/external/BMWtools/BMWIntegrator.h b/src/external/BMWtools/BMWIntegrator.h index a901004a..3aa428c4 100644 --- a/src/external/BMWtools/BMWIntegrator.h +++ b/src/external/BMWtools/BMWIntegrator.h @@ -249,6 +249,47 @@ inline double TMCIntegrator::IntegrateFunc(size_t dim, double *x1, double *x2) return fMCIntegrator->Integral(fFunc, dim, x1, x2, (this)); } +//----------------------------------------------------------------------------- +/** + *

Two-dimensional integrator class for the efficient calculation of the superfluid density within the semi-classical model + * assuming a cylindrical Fermi surface and a point p symmetry of the superconducting order parameter. + * The integration uses the Cuhre algorithm of the Cuba library. + */ +class TPointPWaveGapIntegralCuhre { + public: + TPointPWaveGapIntegralCuhre() : fNDim(2) {} + ~TPointPWaveGapIntegralCuhre() { fPar.clear(); } + void SetParameters(const std::vector &par) { fPar=par; } + static int Integrand_aa(const int*, const double[], const int*, double[], void*); + static int Integrand_cc(const int*, const double[], const int*, double[], void*); + double IntegrateFunc(int tag); + + protected: + static std::vector fPar; ///< parameters of the integrand + unsigned int fNDim; ///< dimension of the integral +}; + +//----------------------------------------------------------------------------- +/** + *

Two-dimensional integrator class for the efficient calculation of the superfluid density within the semi-classical model + * assuming a cylindrical Fermi surface and a line p symmetry of the superconducting order parameter. + * The integration uses the Cuhre algorithm of the Cuba library. + */ +class TLinePWaveGapIntegralCuhre { + public: + TLinePWaveGapIntegralCuhre() : fNDim(2) {} + ~TLinePWaveGapIntegralCuhre() { fPar.clear(); } + void SetParameters(const std::vector &par) { fPar=par; } + static int Integrand_aa(const int*, const double[], const int*, double[], void*); + static int Integrand_cc(const int*, const double[], const int*, double[], void*); + double IntegrateFunc(int tag); + + protected: + static std::vector fPar; ///< parameters of the integrand + unsigned int fNDim; ///< dimension of the integral +}; + +//----------------------------------------------------------------------------- /** *

Two-dimensional integrator class for the efficient calculation of the superfluid density within the semi-classical model * assuming a cylindrical Fermi surface and a d_{x^2-y^2} symmetry of the superconducting order parameter. diff --git a/src/external/libGapIntegrals/GapIntegrals.pdf b/src/external/libGapIntegrals/GapIntegrals.pdf index b03edf6c7acc8fe17550cfb1f2e4d973a2f0c4a4..37334a47003dab33e9d1814640081bcc40aebb16 100644 GIT binary patch delta 224666 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

UcJ$cbc?ssm%;esrM~z$V#y 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 delta 124866 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%0AD| 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 point p wave gap integral + */ +TGapPointPWave::TGapPointPWave() { + TPointPWaveGapIntegralCuhre *gapint = new TPointPWaveGapIntegralCuhre(); + fGapIntegral = gapint; + gapint = nullptr; + + fTemp.clear(); + fTempIter = fTemp.end(); + fIntegralValues.clear(); + fCalcNeeded.clear(); + fPar.clear(); +} + +//-------------------------------------------------------------------- +/** + *

line p wave gap integral + */ +TGapLinePWave::TGapLinePWave() { + TLinePWaveGapIntegralCuhre *gapint = new TLinePWaveGapIntegralCuhre(); + fGapIntegral = gapint; + gapint = nullptr; + + fTemp.clear(); + fTempIter = fTemp.end(); + fIntegralValues.clear(); + fCalcNeeded.clear(); + fPar.clear(); +} + //-------------------------------------------------------------------- /** *

@@ -181,6 +219,22 @@ TLambdaSWave::TLambdaSWave() { fLambdaInvSq = new TGapSWave(); } +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaPointPWave::TLambdaPointPWave() { + fLambdaInvSq = new TGapPointPWave(); +} + +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaLinePWave::TLambdaLinePWave() { + fLambdaInvSq = new TGapLinePWave(); +} + //-------------------------------------------------------------------- /** *

@@ -221,6 +275,22 @@ TLambdaInvSWave::TLambdaInvSWave() { fLambdaInvSq = new TGapSWave(); } +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaInvPointPWave::TLambdaInvPointPWave() { + fLambdaInvSq = new TGapPointPWave(); +} + +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaInvLinePWave::TLambdaInvLinePWave() { + fLambdaInvSq = new TGapLinePWave(); +} + //-------------------------------------------------------------------- /** *

@@ -268,6 +338,36 @@ TGapSWave::~TGapSWave() { fPar.clear(); } +//-------------------------------------------------------------------- +/** + *

+ */ +TGapPointPWave::~TGapPointPWave() { + delete fGapIntegral; + fGapIntegral = nullptr; + + fTemp.clear(); + fTempIter = fTemp.end(); + fIntegralValues.clear(); + fCalcNeeded.clear(); + fPar.clear(); +} + +//-------------------------------------------------------------------- +/** + *

+ */ +TGapLinePWave::~TGapLinePWave() { + delete fGapIntegral; + fGapIntegral = nullptr; + + fTemp.clear(); + fTempIter = fTemp.end(); + fIntegralValues.clear(); + fCalcNeeded.clear(); + fPar.clear(); +} + //-------------------------------------------------------------------- /** *

@@ -367,6 +467,24 @@ TLambdaSWave::~TLambdaSWave() { fLambdaInvSq = nullptr; } +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaPointPWave::~TLambdaPointPWave() { + delete fLambdaInvSq; + fLambdaInvSq = nullptr; +} + +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaLinePWave::~TLambdaLinePWave() { + delete fLambdaInvSq; + fLambdaInvSq = nullptr; +} + //-------------------------------------------------------------------- /** *

@@ -412,6 +530,24 @@ TLambdaInvSWave::~TLambdaInvSWave() { fLambdaInvSq = nullptr; } +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaInvPointPWave::~TLambdaInvPointPWave() { + delete fLambdaInvSq; + fLambdaInvSq = nullptr; +} + +//-------------------------------------------------------------------- +/** + *

+ */ +TLambdaInvLinePWave::~TLambdaInvLinePWave() { + delete fLambdaInvSq; + fLambdaInvSq = nullptr; +} + //-------------------------------------------------------------------- /** *

@@ -528,6 +664,191 @@ double TGapSWave::operator()(double t, const std::vector &par) const { } +//-------------------------------------------------------------------- +/** + *

prepare the needed parameters for the integration carried out in TPointPWaveGapIntegralCuhre. + * For details see also the Memo GapIntegrals.pdf, , especially Eq.(19) and (20). + */ +double TGapPointPWave::operator()(double t, const std::vector &par) const { + + // parameters: [0] Tc (K), [1] Delta0 (meV), [[2] orientation tag, [[3] c0 (1), [4] aG (1)]] + + assert((par.size() >= 2) && (par.size() <= 5)); // 2 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205 + // 4 or 5 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67 + // and Erratum Supercond. Sci. Technol. 21 (2008) 082003 + // c0 in the original context is c0 = (pi kB Tc) / Delta0 + // orientation tag: 0=aa,bb; 1=cc; 2=(sqrt[aa bb] + sqrt[aa cc] + sqrt[bb cc])/3 (default) + if (t <= 0.0) + return 1.0; + else if (t >= par[0]) + return 0.0; + + // check if orientation tag is given + int orientation_tag(2); + if ((par.size()==3) || (par.size()==5)) + orientation_tag = static_cast(par[2]); + + bool integralParChanged(false); + + if (fPar.empty()) { // first time calling this routine + fPar = par; + integralParChanged = true; + } else { // check if Tc or Delta0 have changed + for (unsigned int i(0); i intPar; // parameters for the integral, T & Delta(T) + intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K + if ((par.size() == 2) || (par.size() == 3)) { // Carrington/Manzano + intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51))); + } else { // Prozorov/Giannetta + intPar.push_back(par[1]*tanh(par[2]*sqrt(par[3]*(par[0]/t-1.0)))); // Delta0*tanh(c0*sqrt(aG*(Tc/T-1))) + } + intPar.push_back(4.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy + intPar.push_back(1.0); // upper limit of theta-integration + + fGapIntegral->SetParameters(intPar); + if (orientation_tag == 0) // aa,bb + ds = 1.0-(intPar[2]*3.0)/(2.0*intPar[0])*fGapIntegral->IntegrateFunc(0); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + else if (orientation_tag == 1) // cc + ds = 1.0-(intPar[2]*3.0)/(intPar[0])*fGapIntegral->IntegrateFunc(1); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + else { // average + ds = 1.0-(intPar[2]*3.0)/(2.0*intPar[0])*fGapIntegral->IntegrateFunc(0); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + ds1 = 1.0-(intPar[2]*3.0)/(intPar[0])*fGapIntegral->IntegrateFunc(1); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + ds = (ds + 2.0 * sqrt(ds*ds1))/3.0; // since aa==bb the avg looks like this + } + + intPar.clear(); + + if (newTemp) + fIntegralValues.push_back(ds); + else + fIntegralValues[vectorIndex] = ds; + + fCalcNeeded[vectorIndex] = false; + } + + return fIntegralValues[vectorIndex]; +} + +//-------------------------------------------------------------------- +/** + *

prepare the needed parameters for the integration carried out in TLinePWaveGapIntegralCuhre. + * For details see also the Memo GapIntegrals.pdf, especially Eq.(19) and (20). + */ +double TGapLinePWave::operator()(double t, const std::vector &par) const { + + // parameters: [0] Tc (K), [1] Delta0 (meV), [[2] orientation tag, [[3] c0 (1), [4] aG (1)]] + + assert((par.size() >= 2) && (par.size() <= 5)); // 2 parameters: see A.~Carrington and F.~Manzano, Physica~C~\textbf{385}~(2003)~205 + // 4 or 5 parameters: see R. Prozorov and R. Giannetta, Supercond. Sci. Technol. 19 (2006) R41-R67 + // and Erratum Supercond. Sci. Technol. 21 (2008) 082003 + // c0 in the original context is c0 = (pi kB Tc) / Delta0 + // orientation tag: 0=aa,bb; 1=cc; 2=(sqrt[aa bb] + sqrt[aa cc] + sqrt[bb cc])/3 (default) + if (t <= 0.0) + return 1.0; + else if (t >= par[0]) + return 0.0; + + + // check if orientation tag is given + int orientation_tag(2); + if ((par.size()==3) || (par.size()==5)) + orientation_tag = static_cast(par[2]); + + bool integralParChanged(false); + + if (fPar.empty()) { // first time calling this routine + fPar = par; + integralParChanged = true; + } else { // check if parameter have changed + for (unsigned int i(0); i intPar; // parameters for the integral, T & Delta(T) + intPar.push_back(0.172346648*t); // 2 kB T, kB in meV/K = 0.086173324 meV/K + if ((par.size() == 2) || (par.size() == 3)) { // Carrington/Manzano + intPar.push_back(par[1]*tanh(1.82*pow(1.018*(par[0]/t-1.0),0.51))); + } else { // Prozorov/Giannetta + intPar.push_back(par[1]*tanh(par[3]*sqrt(par[4]*(par[0]/t-1.0)))); // Delta0*tanh(c0*sqrt(aG*(Tc/T-1))) + } + intPar.push_back(4.0*(t+intPar[1])); // upper limit of energy-integration: cutoff energy + intPar.push_back(1.0); // upper limit of z-integration + + fGapIntegral->SetParameters(intPar); + if (orientation_tag == 0) // aa,bb + ds = 1.0-(intPar[2]*3.0)/(2.0*intPar[0])*fGapIntegral->IntegrateFunc(0); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + else if (orientation_tag == 1) // cc + ds = 1.0-(intPar[2]*3.0)/(intPar[0])*fGapIntegral->IntegrateFunc(1); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + else { // average + ds = 1.0-(intPar[2]*3.0)/(2.0*intPar[0])*fGapIntegral->IntegrateFunc(0); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + ds1 = 1.0-(intPar[2]*3.0)/(intPar[0])*fGapIntegral->IntegrateFunc(1); // integral prefactor is by 2 lower [Eqs.(19,20)] since intPar[0]==2kB T! + ds = (ds + 2.0 * sqrt(ds*ds1))/3.0; // since aa==bb the avg looks like this + } + + intPar.clear(); + + if (newTemp) + fIntegralValues.push_back(ds); + else + fIntegralValues[vectorIndex] = ds; + + fCalcNeeded[vectorIndex] = false; + } + + return fIntegralValues[vectorIndex]; +} + //-------------------------------------------------------------------- /** *

prepare the needed parameters for the integration carried out in TDWaveGapIntegralCuhre. @@ -609,7 +930,6 @@ double TGapDWave::operator()(double t, const std::vector &par) const { } return fIntegralValues[vectorIndex]; - } //-------------------------------------------------------------------- @@ -1103,7 +1423,40 @@ double TLambdaSWave::operator()(double t, const std::vector &par) const return 1.0; return 1.0/sqrt((*fLambdaInvSq)(t, par)); +} +//-------------------------------------------------------------------- +/** + *

+ */ +double TLambdaPointPWave::operator()(double t, const std::vector &par) const +{ + assert(par.size() == 2); // two parameters: Tc, Delta0 + + if (t >= par[0]) + return -1.0; + + if (t <= 0.0) + return 1.0; + + return 1.0/sqrt((*fLambdaInvSq)(t, par)); +} + +//-------------------------------------------------------------------- +/** + *

+ */ +double TLambdaLinePWave::operator()(double t, const std::vector &par) const +{ + assert(par.size() == 2); // two parameters: Tc, Delta0 + + if (t >= par[0]) + return -1.0; + + if (t <= 0.0) + return 1.0; + + return 1.0/sqrt((*fLambdaInvSq)(t, par)); } //-------------------------------------------------------------------- @@ -1121,7 +1474,6 @@ double TLambdaDWave::operator()(double t, const std::vector &par) const return 1.0; return 1.0/sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1139,7 +1491,6 @@ double TLambdaAnSWave::operator()(double t, const std::vector &par) cons return 1.0; return 1.0/sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1157,7 +1508,6 @@ double TLambdaNonMonDWave1::operator()(double t, const std::vector &par) return 1.0; return 1.0/sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1175,7 +1525,6 @@ double TLambdaNonMonDWave2::operator()(double t, const std::vector &par) return 1.0; return 1.0/sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1192,7 +1541,6 @@ double TLambdaPowerLaw::operator()(double t, const std::vector &par) con return -1.0; return 1.0/sqrt(1.0 - pow(t/par[0], par[1])); - } @@ -1211,7 +1559,40 @@ double TLambdaInvSWave::operator()(double t, const std::vector &par) con return 1.0; return sqrt((*fLambdaInvSq)(t, par)); +} +//-------------------------------------------------------------------- +/** + *

+ */ +double TLambdaInvPointPWave::operator()(double t, const std::vector &par) const +{ + assert(par.size() == 2); // two parameters: Tc, Delta0 + + if (t >= par[0]) + return 0.0; + + if (t <= 0.0) + return 1.0; + + return sqrt((*fLambdaInvSq)(t, par)); +} + +//-------------------------------------------------------------------- +/** + *

+ */ +double TLambdaInvLinePWave::operator()(double t, const std::vector &par) const +{ + assert(par.size() == 2); // two parameters: Tc, Delta0 + + if (t >= par[0]) + return 0.0; + + if (t <= 0.0) + return 1.0; + + return sqrt((*fLambdaInvSq)(t, par)); } //-------------------------------------------------------------------- @@ -1229,7 +1610,6 @@ double TLambdaInvDWave::operator()(double t, const std::vector &par) con return 1.0; return sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1247,7 +1627,6 @@ double TLambdaInvAnSWave::operator()(double t, const std::vector &par) c return 1.0; return sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1265,7 +1644,6 @@ double TLambdaInvNonMonDWave1::operator()(double t, const std::vector &p return 1.0; return sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1283,7 +1661,6 @@ double TLambdaInvNonMonDWave2::operator()(double t, const std::vector &p return 1.0; return sqrt((*fLambdaInvSq)(t, par)); - } //-------------------------------------------------------------------- @@ -1300,7 +1677,6 @@ double TLambdaInvPowerLaw::operator()(double t, const std::vector &par) return 0.0; return sqrt(1.0 - pow(t/par[0], par[1])); - } //-------------------------------------------------------------------- diff --git a/src/external/libGapIntegrals/TGapIntegrals.h b/src/external/libGapIntegrals/TGapIntegrals.h index a0d344ee..07c498be 100644 --- a/src/external/libGapIntegrals/TGapIntegrals.h +++ b/src/external/libGapIntegrals/TGapIntegrals.h @@ -63,6 +63,62 @@ private: ClassDef(TGapSWave,1) }; +//-------------------------------------------------------------------- +/** + *

+ */ +class TGapPointPWave : public PUserFcnBase { + +public: + TGapPointPWave(); + virtual ~TGapPointPWave(); + + virtual Bool_t NeedGlobalPart() const { return false; } + virtual void SetGlobalPart(std::vector &globalPart, UInt_t idx) { } + virtual Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const std::vector&) const; + +private: + TPointPWaveGapIntegralCuhre *fGapIntegral; + mutable std::vector fTemp; + mutable std::vector::const_iterator fTempIter; + mutable std::vector fIntegralValues; + mutable std::vector fCalcNeeded; + + mutable std::vector fPar; + + ClassDef(TGapPointPWave,1) +}; + +//-------------------------------------------------------------------- +/** + *

+ */ +class TGapLinePWave : public PUserFcnBase { + +public: + TGapLinePWave(); + virtual ~TGapLinePWave(); + + virtual Bool_t NeedGlobalPart() const { return false; } + virtual void SetGlobalPart(std::vector &globalPart, UInt_t idx) { } + virtual Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const std::vector&) const; + +private: + TLinePWaveGapIntegralCuhre *fGapIntegral; + mutable std::vector fTemp; + mutable std::vector::const_iterator fTempIter; + mutable std::vector fIntegralValues; + mutable std::vector fCalcNeeded; + + mutable std::vector fPar; + + ClassDef(TGapLinePWave,1) +}; + //-------------------------------------------------------------------- /** *

@@ -297,6 +353,50 @@ private: ClassDef(TLambdaSWave,1) }; +//-------------------------------------------------------------------- +/** + *

+ */ +class TLambdaPointPWave : public PUserFcnBase { + +public: + TLambdaPointPWave(); + virtual ~TLambdaPointPWave(); + + virtual Bool_t NeedGlobalPart() const { return false; } + virtual void SetGlobalPart(std::vector &globalPart, UInt_t idx) { } + virtual Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const std::vector&) const; + +private: + TGapPointPWave *fLambdaInvSq; + + ClassDef(TLambdaPointPWave,1) +}; + +//-------------------------------------------------------------------- +/** + *

+ */ +class TLambdaLinePWave : public PUserFcnBase { + +public: + TLambdaLinePWave(); + virtual ~TLambdaLinePWave(); + + virtual Bool_t NeedGlobalPart() const { return false; } + virtual void SetGlobalPart(std::vector &globalPart, UInt_t idx) { } + virtual Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const std::vector&) const; + +private: + TGapLinePWave *fLambdaInvSq; + + ClassDef(TLambdaLinePWave,1) +}; + //-------------------------------------------------------------------- /** *

@@ -428,6 +528,50 @@ private: ClassDef(TLambdaInvSWave,1) }; +//-------------------------------------------------------------------- +/** + *

+ */ +class TLambdaInvPointPWave : public PUserFcnBase { + +public: + TLambdaInvPointPWave(); + virtual ~TLambdaInvPointPWave(); + + virtual Bool_t NeedGlobalPart() const { return false; } + virtual void SetGlobalPart(std::vector &globalPart, UInt_t idx) { } + virtual Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const std::vector&) const; + +private: + TGapPointPWave *fLambdaInvSq; + + ClassDef(TLambdaInvPointPWave,1) +}; + +//-------------------------------------------------------------------- +/** + *

+ */ +class TLambdaInvLinePWave : public PUserFcnBase { + +public: + TLambdaInvLinePWave(); + virtual ~TLambdaInvLinePWave(); + + virtual Bool_t NeedGlobalPart() const { return false; } + virtual void SetGlobalPart(std::vector &globalPart, UInt_t idx) { } + virtual Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const std::vector&) const; + +private: + TGapLinePWave *fLambdaInvSq; + + ClassDef(TLambdaInvLinePWave,1) +}; + //-------------------------------------------------------------------- /** *

diff --git a/src/external/libGapIntegrals/TGapIntegralsLinkDef.h b/src/external/libGapIntegrals/TGapIntegralsLinkDef.h index 66ee9a3d..37e17f68 100644 --- a/src/external/libGapIntegrals/TGapIntegralsLinkDef.h +++ b/src/external/libGapIntegrals/TGapIntegralsLinkDef.h @@ -35,6 +35,8 @@ #pragma link off all functions; #pragma link C++ class TGapSWave+; +#pragma link C++ class TGapPointPWave+; +#pragma link C++ class TGapLinePWave+; #pragma link C++ class TGapDWave+; #pragma link C++ class TGapCosSqDWave+; #pragma link C++ class TGapSinSqDWave+; @@ -44,12 +46,16 @@ #pragma link C++ class TGapPowerLaw+; #pragma link C++ class TGapDirtySWave+; #pragma link C++ class TLambdaSWave+; +#pragma link C++ class TLambdaPointPWave+; +#pragma link C++ class TLambdaLinePWave+; #pragma link C++ class TLambdaDWave+; #pragma link C++ class TLambdaAnSWave+; #pragma link C++ class TLambdaNonMonDWave1+; #pragma link C++ class TLambdaNonMonDWave2+; #pragma link C++ class TLambdaPowerLaw+; #pragma link C++ class TLambdaInvSWave+; +#pragma link C++ class TLambdaInvPointPWave+; +#pragma link C++ class TLambdaInvLinePWave+; #pragma link C++ class TLambdaInvDWave+; #pragma link C++ class TLambdaInvAnSWave+; #pragma link C++ class TLambdaInvNonMonDWave1+;