added root6 features to dks6
This commit is contained in:
parent
6cae76f1c1
commit
13106a51c7
14
configure.ac
14
configure.ac
@ -1354,7 +1354,6 @@ AC_CONFIG_FILES([Makefile \
|
|||||||
src/musredit_qt5/Makefile \
|
src/musredit_qt5/Makefile \
|
||||||
src/musredit/Makefile \
|
src/musredit/Makefile \
|
||||||
src/musrgui/Makefile \
|
src/musrgui/Makefile \
|
||||||
src/musredit_qt5/musredit_startup.xml \
|
|
||||||
src/musredit/musredit_startup.xml \
|
src/musredit/musredit_startup.xml \
|
||||||
src/musrgui/musrgui_startup.xml])
|
src/musrgui/musrgui_startup.xml])
|
||||||
|
|
||||||
@ -1522,3 +1521,16 @@ echo " Programs: ${INSTALLDIR}/bin"
|
|||||||
echo " XML configuration files: ${HOME}/.musrfit"
|
echo " XML configuration files: ${HOME}/.musrfit"
|
||||||
echo " Documentation: ${DOCDIR}"
|
echo " Documentation: ${DOCDIR}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
dnl --------------
|
||||||
|
dnl create header file that musredit knows at runtime where to find the documentation
|
||||||
|
dnl --------------
|
||||||
|
if test "x$enable_editor" != "xno" && test "x${QMAKEBIN}" != "x" && test "x${QTEDITOR}" = "xmusredit_qt5"; then
|
||||||
|
echo \#define MUSRFIT_PREFIX \"${INSTALLDIR}\" > src/musredit_qt5/musrfit-info.h
|
||||||
|
echo \#define MUSRFIT_DOC_DIR \"${DOCDIR}\" >> src/musredit_qt5/musrfit-info.h
|
||||||
|
fi
|
||||||
|
if test "x$enable_editor" != "xno" && test "x${QMAKEBIN}" != "x" && test "x${QTEDITOR}" = "xmusredit"; then
|
||||||
|
echo \#define MUSRFIT_PREFIX \"${INSTALLDIR}\" > src/musredit/musrfit-info.h
|
||||||
|
echo \#define MUSRFIT_DOC_DIR \"${DOCDIR}\" >> src/musredit/musrfit-info.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
@ -60,9 +60,6 @@ write_musrRoot_runHeader_SOURCES = write_musrRoot_runHeader.cpp
|
|||||||
musrRootValidation_SOURCES = musrRootValidation.cpp
|
musrRootValidation_SOURCES = musrRootValidation.cpp
|
||||||
dump_header_SOURCES = dump_header.cpp
|
dump_header_SOURCES = dump_header.cpp
|
||||||
|
|
||||||
xmldir = $(HOME)/.musrfit
|
|
||||||
xml_DATA = musrfit_startup.xml
|
|
||||||
|
|
||||||
LIBADD = $(PMUSR_LIBS) $(MUSR_ROOT_LIBS) $(LEM_LIBS) $(PSIBIN_LIBS) $(MUD_LIBS) $(PNEXUS_LIBS) $(DKS_LIB)
|
LIBADD = $(PMUSR_LIBS) $(MUSR_ROOT_LIBS) $(LEM_LIBS) $(PSIBIN_LIBS) $(MUD_LIBS) $(PNEXUS_LIBS) $(DKS_LIB)
|
||||||
|
|
||||||
AM_CXXFLAGS = $(LOCAL_BIN_CXXFLAGS)
|
AM_CXXFLAGS = $(LOCAL_BIN_CXXFLAGS)
|
||||||
@ -74,43 +71,4 @@ AM_CPPFLAGS += $(HDF5_CFLAGS) $(NEXUS_CFLAGS) $(PNEXUS_CXXFLAGS)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
LIBS = $(PMUSR_LIBS) $(USERFCN_LIBS) $(MUSR_ROOT_LIBS) $(LEM_LIBS) $(PSIBIN_LIBS) $(MUD_LIBS) $(PNEXUS_LIBS) \
|
LIBS = $(PMUSR_LIBS) $(USERFCN_LIBS) $(MUSR_ROOT_LIBS) $(LEM_LIBS) $(PSIBIN_LIBS) $(MUD_LIBS) $(PNEXUS_LIBS) \
|
||||||
$(FFTW3_LIBS) $(GSL_LIBS) $(DKS_CFLAGS) $(ROOT_LIBS) $(LIBXML2_LIBS)
|
$(FFTW3_LIBS) $(GSL_LIBS) $(DKS_CFLAGS) $(ROOT_LIBS) $(LIBXML2_LIBS ) $(BOOST_LIBS)
|
||||||
|
|
||||||
install-xmlDATA: $(xml_DATA)
|
|
||||||
test -z "$(xmldir)" || $(mkdir_p) "$(DESTDIR)$(xmldir)"
|
|
||||||
@if test -e "$(DESTDIR)$(xmldir)/$(xml_DATA)"; then \
|
|
||||||
DIFF="$$(diff "$(DESTDIR)$(xmldir)/$(xml_DATA)" "$(xml_DATA)" 2>&1)"; \
|
|
||||||
if test "x$$DIFF" != "x"; then \
|
|
||||||
echo " " && \
|
|
||||||
echo " musrfit_startup.xml in $(xmldir)" && \
|
|
||||||
echo " is different from the distribution's version." && \
|
|
||||||
echo " Do you want to overwrite it? [y/N]" && \
|
|
||||||
read OVERWRITE && \
|
|
||||||
if test "$$OVERWRITE" = "y" || test "$$OVERWRITE" = "Y"; then \
|
|
||||||
echo "$(INSTALL_DATA) '$(xml_DATA)' '$(DESTDIR)$(xmldir)'" && \
|
|
||||||
$(INSTALL_DATA) '$(xml_DATA)' '$(DESTDIR)$(xmldir)'; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
echo "$(INSTALL_DATA) '$(xml_DATA)' '$(DESTDIR)$(xmldir)'" && \
|
|
||||||
$(INSTALL_DATA) '$(xml_DATA)' '$(DESTDIR)$(xmldir)'; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
uninstall-xmlDATA:
|
|
||||||
@if test -e "$(DESTDIR)$(xmldir)/$(xml_DATA)"; then \
|
|
||||||
DIFF="$$(diff "$(DESTDIR)$(xmldir)/$(xml_DATA)" "$(xml_DATA)" 2>&1)"; \
|
|
||||||
if test "x$$DIFF" != "x"; then \
|
|
||||||
echo " " && \
|
|
||||||
echo " musrfit_startup.xml in $(xmldir)" && \
|
|
||||||
echo " is different from the distribution's version." && \
|
|
||||||
echo " Do you want to remove it? [y/N]" && \
|
|
||||||
read REMOVE && \
|
|
||||||
if test "$$REMOVE" = "y" || test "$$REMOVE" = "Y"; then \
|
|
||||||
echo "$(RM) '$(DESTDIR)$(xmldir)/$(xml_DATA)'" && \
|
|
||||||
$(RM) "$(DESTDIR)$(xmldir)/$(xml_DATA)"; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
echo "$(RM) '$(DESTDIR)$(xmldir)/$(xml_DATA)'" && \
|
|
||||||
$(RM) "$(DESTDIR)$(xmldir)/$(xml_DATA)"; \
|
|
||||||
fi; \
|
|
||||||
fi
|
|
||||||
|
@ -27,6 +27,9 @@
|
|||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
@ -140,6 +143,23 @@ PStartupHandler::PStartupHandler()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if musrfit_startup.xml is still not found, will create a default one
|
||||||
|
if (!fStartupFileFound) {
|
||||||
|
cout << endl << "**INFO** no musrfit_startup.xml file found, will write a default one." << endl;
|
||||||
|
if (!WriteDefaultStartupFile()) {
|
||||||
|
cerr << endl << "**ERROR** couldn't write default musrfit_startup.xml." << endl;
|
||||||
|
} else {
|
||||||
|
home = getenv("HOME");
|
||||||
|
if (home != 0) {
|
||||||
|
sprintf(startup_path_name, "%s/.musrfit/musrfit_startup.xml", home);
|
||||||
|
if (StartupFileExists(startup_path_name)) {
|
||||||
|
fStartupFilePath = TString(startup_path_name);
|
||||||
|
fStartupFileFound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
@ -577,6 +597,107 @@ Bool_t PStartupHandler::StartupFileExists(Char_t *fln)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// WriteDefaulStartupFile
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
Bool_t PStartupHandler::WriteDefaultStartupFile()
|
||||||
|
{
|
||||||
|
// get home
|
||||||
|
Char_t startup_path_name[256];
|
||||||
|
Char_t *home=0;
|
||||||
|
home = getenv("HOME");
|
||||||
|
if (home == 0) {
|
||||||
|
cerr << endl << "**ERROR** couldn't obtain $HOME." << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// first check that $HOME/.musrfit exists and if NOT create it
|
||||||
|
struct stat info;
|
||||||
|
|
||||||
|
sprintf(startup_path_name, "%s/.musrfit", home);
|
||||||
|
if (!stat(startup_path_name, &info)) {
|
||||||
|
if (!(info.st_mode & S_IFDIR))
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
if (mkdir(startup_path_name, 0777)) {
|
||||||
|
cerr << endl << "**ERROR** couldn't create '" << startup_path_name << "'" << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// set path-name for musrfit_startup.xml
|
||||||
|
sprintf(startup_path_name, "%s/.musrfit/musrfit_startup.xml", home);
|
||||||
|
|
||||||
|
ofstream fout(startup_path_name, ofstream::out);
|
||||||
|
if (!fout.is_open()) {
|
||||||
|
cerr << endl << "**ERROR** couldn't open '" << startup_path_name << "' for writing." << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// write default musrfit_startup.xml
|
||||||
|
fout << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl;
|
||||||
|
fout << "<musrfit xmlns=\"http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html\">" << endl;
|
||||||
|
fout << " <comment>" << endl;
|
||||||
|
fout << " Defines default settings for the musrfit package" << endl;
|
||||||
|
fout << " </comment>" << endl;
|
||||||
|
fout << " <data_path>/mnt/data/nemu/his</data_path>" << endl;
|
||||||
|
fout << " <data_path>/mnt/data/nemu/wkm</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/nemu/data/his</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/nemu/data/wkm</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/gps</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/dolly</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/gpd</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/ltf</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/alc</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/hifi</data_path>" << endl;
|
||||||
|
fout << " <data_path>/afs/psi.ch/project/bulkmusr/data/lem</data_path>" << endl;
|
||||||
|
fout << " <fourier_settings>" << endl;
|
||||||
|
fout << " <units>Gauss</units>" << endl;
|
||||||
|
fout << " <fourier_power>0</fourier_power>" << endl;
|
||||||
|
fout << " <apodization>none</apodization>" << endl;
|
||||||
|
fout << " <plot>real_and_imag</plot>" << endl;
|
||||||
|
fout << " <phase>0.0</phase>" << endl;
|
||||||
|
fout << " <phase_increment>1.0</phase_increment>" << endl;
|
||||||
|
fout << " </fourier_settings>" << endl;
|
||||||
|
fout << " <root_settings>" << endl;
|
||||||
|
fout << " <marker_list>" << endl;
|
||||||
|
fout << " <!-- Root marker numbers -->" << endl;
|
||||||
|
fout << " <marker>24</marker> <!-- open circle -->" << endl;
|
||||||
|
fout << " <marker>25</marker> <!-- open square -->" << endl;
|
||||||
|
fout << " <marker>26</marker> <!-- open triangle -->" << endl;
|
||||||
|
fout << " <marker>27</marker> <!-- open diamond -->" << endl;
|
||||||
|
fout << " <marker>28</marker> <!-- open cross -->" << endl;
|
||||||
|
fout << " <marker>29</marker> <!-- full star -->" << endl;
|
||||||
|
fout << " <marker>30</marker> <!-- open star -->" << endl;
|
||||||
|
fout << " <marker>20</marker> <!-- full circle -->" << endl;
|
||||||
|
fout << " <marker>21</marker> <!-- full square -->" << endl;
|
||||||
|
fout << " <marker>22</marker> <!-- full triangle -->" << endl;
|
||||||
|
fout << " <marker>23</marker> <!-- full triangle down -->" << endl;
|
||||||
|
fout << " <marker>2</marker> <!-- thin cross -->" << endl;
|
||||||
|
fout << " <marker>3</marker> <!-- thin star -->" << endl;
|
||||||
|
fout << " <marker>5</marker> <!-- thin x -->" << endl;
|
||||||
|
fout << " </marker_list>" << endl;
|
||||||
|
fout << " <color_list>" << endl;
|
||||||
|
fout << " <!-- Color as RGB coded string -->" << endl;
|
||||||
|
fout << " <color>0,0,0</color> <!-- kBlack -->" << endl;
|
||||||
|
fout << " <color>255,0,0</color> <!-- kRed -->" << endl;
|
||||||
|
fout << " <color>0,255,0</color> <!-- kGreen -->" << endl;
|
||||||
|
fout << " <color>0,0,255</color> <!-- kBlue -->" << endl;
|
||||||
|
fout << " <color>255,0,255</color> <!-- kMagenta -->" << endl;
|
||||||
|
fout << " <color>0,255,255</color> <!-- kCyan -->" << endl;
|
||||||
|
fout << " <color>153,0,255</color> <!-- kViolet-3 -->" << endl;
|
||||||
|
fout << " <color>102,102,51</color> <!-- kYellow-1 -->" << endl;
|
||||||
|
fout << " <color>51,102,51</color> <!-- kGreen-1 -->" << endl;
|
||||||
|
fout << " <color>153,0,0</color> <!-- kRed+2 -->" << endl;
|
||||||
|
fout << " </color_list>" << endl;
|
||||||
|
fout << " </root_settings>" << endl;
|
||||||
|
fout << "</musrfit>" << endl;
|
||||||
|
|
||||||
|
fout.close();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// end
|
// end
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
|
@ -96,6 +96,7 @@ class PStartupHandler : public TObject, public TQObject
|
|||||||
PStartupOptions fStartupOptions; ///< collects all startup options which will be requested by PMsrFileHandler
|
PStartupOptions fStartupOptions; ///< collects all startup options which will be requested by PMsrFileHandler
|
||||||
|
|
||||||
Bool_t StartupFileExists(Char_t *fln);
|
Bool_t StartupFileExists(Char_t *fln);
|
||||||
|
Bool_t WriteDefaultStartupFile();
|
||||||
|
|
||||||
ClassDef(PStartupHandler, 1)
|
ClassDef(PStartupHandler, 1)
|
||||||
};
|
};
|
||||||
|
@ -36,9 +36,10 @@ using namespace std;
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
#include <QDir>
|
||||||
#include <QProcessEnvironment>
|
#include <QProcessEnvironment>
|
||||||
|
|
||||||
|
#include "musrfit-info.h"
|
||||||
#include "PAdmin.h"
|
#include "PAdmin.h"
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
@ -296,6 +297,7 @@ bool PAdminXMLParser::characters(const QString& str)
|
|||||||
flag = true;
|
flag = true;
|
||||||
else
|
else
|
||||||
flag = false;
|
flag = false;
|
||||||
|
fAdmin->fMsr2DataParam.estimateN0 = flag;
|
||||||
fAdmin->setEstimateN0Flag(flag);
|
fAdmin->setEstimateN0Flag(flag);
|
||||||
break;
|
break;
|
||||||
case eChisqPreRunBlock:
|
case eChisqPreRunBlock:
|
||||||
@ -303,6 +305,7 @@ bool PAdminXMLParser::characters(const QString& str)
|
|||||||
flag = true;
|
flag = true;
|
||||||
else
|
else
|
||||||
flag = false;
|
flag = false;
|
||||||
|
fAdmin->fMsr2DataParam.perRunBlockChisq = flag;
|
||||||
fAdmin->setChisqPerRunBlockFlag(flag);
|
fAdmin->setChisqPerRunBlockFlag(flag);
|
||||||
break;
|
break;
|
||||||
case eRecentFile:
|
case eRecentFile:
|
||||||
@ -641,8 +644,6 @@ PAdmin::PAdmin() : QObject()
|
|||||||
fEstimateN0 = true;
|
fEstimateN0 = true;
|
||||||
fChisqPreRunBlock = false;
|
fChisqPreRunBlock = false;
|
||||||
|
|
||||||
fMsr2DataParam.firstRun = -1;
|
|
||||||
fMsr2DataParam.lastRun = -1;
|
|
||||||
fMsr2DataParam.runList = QString("");
|
fMsr2DataParam.runList = QString("");
|
||||||
fMsr2DataParam.runListFileName = QString("");
|
fMsr2DataParam.runListFileName = QString("");
|
||||||
fMsr2DataParam.msrFileExtension = QString("");
|
fMsr2DataParam.msrFileExtension = QString("");
|
||||||
@ -651,10 +652,12 @@ PAdmin::PAdmin() : QObject()
|
|||||||
fMsr2DataParam.writeDbHeader = true;
|
fMsr2DataParam.writeDbHeader = true;
|
||||||
fMsr2DataParam.ignoreDataHeaderInfo = false;
|
fMsr2DataParam.ignoreDataHeaderInfo = false;
|
||||||
fMsr2DataParam.keepMinuit2Output = false;
|
fMsr2DataParam.keepMinuit2Output = false;
|
||||||
|
fMsr2DataParam.estimateN0 = fEstimateN0;
|
||||||
fMsr2DataParam.writeColumnData = false;
|
fMsr2DataParam.writeColumnData = false;
|
||||||
fMsr2DataParam.recreateDbFile = false;
|
fMsr2DataParam.recreateDbFile = false;
|
||||||
fMsr2DataParam.chainFit = true;
|
fMsr2DataParam.chainFit = true;
|
||||||
fMsr2DataParam.openFilesAfterFitting = true;
|
fMsr2DataParam.openFilesAfterFitting = true;
|
||||||
|
fMsr2DataParam.perRunBlockChisq = fChisqPreRunBlock;
|
||||||
fMsr2DataParam.titleFromDataFile = true;
|
fMsr2DataParam.titleFromDataFile = true;
|
||||||
fMsr2DataParam.createMsrFileOnly = false;
|
fMsr2DataParam.createMsrFileOnly = false;
|
||||||
fMsr2DataParam.fitOnly = false;
|
fMsr2DataParam.fitOnly = false;
|
||||||
@ -679,6 +682,12 @@ PAdmin::PAdmin() : QObject()
|
|||||||
// 4th: check $ROOTSYS/bin/musredit_startup.xml
|
// 4th: check $ROOTSYS/bin/musredit_startup.xml
|
||||||
path = procEnv.value("ROOTSYS", "");
|
path = procEnv.value("ROOTSYS", "");
|
||||||
pathFln = path + "/bin/" + fln;
|
pathFln = path + "/bin/" + fln;
|
||||||
|
if (!QFile::exists(pathFln)) {
|
||||||
|
// 5th: not found anyware hence create it
|
||||||
|
path = procEnv.value("HOME", "");
|
||||||
|
pathFln = path + "/.musrfit/musredit/" + fln;
|
||||||
|
createMusreditStartupFile();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -983,6 +992,302 @@ void PAdmin::saveRecentFiles()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief PAdmin::createMusreditStartupFile
|
||||||
|
*/
|
||||||
|
void PAdmin::createMusreditStartupFile()
|
||||||
|
{
|
||||||
|
// get $HOME
|
||||||
|
QProcessEnvironment procEnv = QProcessEnvironment::systemEnvironment();
|
||||||
|
QString pathName = procEnv.value("HOME", "");
|
||||||
|
pathName += "/.musrfit/musredit";
|
||||||
|
|
||||||
|
// check if the directory $HOME/.musrfit/musredit exists if not create it
|
||||||
|
QDir dir(pathName);
|
||||||
|
if (!dir.exists()) {
|
||||||
|
// directory $HOME/.musrfit/musredit does not exist hence create it
|
||||||
|
dir.mkpath(pathName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// create default musredit_startup.xml file in $HOME/.musrfit/musredit
|
||||||
|
pathName += "/musredit_startup.xml";
|
||||||
|
QFile file(pathName);
|
||||||
|
|
||||||
|
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||||
|
return;
|
||||||
|
|
||||||
|
QTextStream fout(&file);
|
||||||
|
|
||||||
|
fout << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl;
|
||||||
|
fout << "<musredit_startup xmlns=\"http://lmu.web.psi.ch/musrfit/user/MUSR/MusrGui.html\">" << endl;
|
||||||
|
fout << " <comment>" << endl;
|
||||||
|
fout << " This is handling default setting parameters for the musredit." << endl;
|
||||||
|
fout << " </comment>" << endl;
|
||||||
|
fout << " <general>" << endl;
|
||||||
|
fout << " <exec_path>" << MUSRFIT_PREFIX << "/bin</exec_path>" << endl;
|
||||||
|
fout << " <default_save_path>./</default_save_path>" << endl;
|
||||||
|
fout << " <msr_default_file_path>" << MUSRFIT_DOC_DIR << "/templates</msr_default_file_path>" << endl;
|
||||||
|
fout << " <timeout>3600</timeout>" << endl;
|
||||||
|
fout << " <keep_minuit2_output>n</keep_minuit2_output>" << endl;
|
||||||
|
fout << " <dump_ascii>n</dump_ascii>" << endl;
|
||||||
|
fout << " <dump_root>n</dump_root>" << endl;
|
||||||
|
fout << " <title_from_data_file>y</title_from_data_file>" << endl;
|
||||||
|
fout << " <chisq_per_run_block>n</chisq_per_run_block>" << endl;
|
||||||
|
fout << " <estimate_n0>y</estimate_n0>" << endl;
|
||||||
|
fout << " <musrview_show_fourier>n</musrview_show_fourier>" << endl;
|
||||||
|
fout << " <musrview_show_avg>n</musrview_show_avg>" << endl;
|
||||||
|
fout << " <enable_musrt0>y</enable_musrt0>" << endl;
|
||||||
|
fout << " </general>" << endl;
|
||||||
|
fout << " <recent_files>" << endl;
|
||||||
|
fout << " <path_file_name>" << MUSRFIT_DOC_DIR << "/examples/test-histo-PSI-BIN.msr</path_file_name>" << endl;
|
||||||
|
fout << " </recent_files>" << endl;
|
||||||
|
fout << " <help_section>" << endl;
|
||||||
|
fout << " <musr_web_main>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html</musr_web_main>" << endl;
|
||||||
|
fout << " <musr_web_title>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheTitle</musr_web_title>" << endl;
|
||||||
|
fout << " <musr_web_parameters>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheFitparameterBlock</musr_web_parameters>" << endl;
|
||||||
|
fout << " <musr_web_theory>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheTheoryBlock</musr_web_theory>" << endl;
|
||||||
|
fout << " <musr_web_functions>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheFunctionsBlock</musr_web_functions>" << endl;
|
||||||
|
fout << " <musr_web_run>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheRunBlock</musr_web_run>" << endl;
|
||||||
|
fout << " <musr_web_command>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheCommandsBlock</musr_web_command>" << endl;
|
||||||
|
fout << " <musr_web_fourier>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheFourierBlock</musr_web_fourier>" << endl;
|
||||||
|
fout << " <musr_web_plot>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#ThePlotBlock</musr_web_plot>" << endl;
|
||||||
|
fout << " <musr_web_statistic>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#TheStatisticBlock</musr_web_statistic>" << endl;
|
||||||
|
fout << " <musr_web_msr2data>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/Msr2Data.html</musr_web_msr2data>" << endl;
|
||||||
|
fout << " <musr_web_musrFT>file://" << MUSRFIT_DOC_DIR << "/html/user/MUSR/MusrFit.html#A_2.3_musrFT</musr_web_musrFT>" << endl;
|
||||||
|
fout << " </help_section>" << endl;
|
||||||
|
fout << " <font_settings>" << endl;
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
fout << " <font_name>Courier New</font_name>" << endl;
|
||||||
|
fout << " <font_size>16</font_size>" << endl;
|
||||||
|
#else
|
||||||
|
fout << " <font_name>Monospace</font_name>" << endl;
|
||||||
|
fout << " <font_size>12</font_size>" << endl;
|
||||||
|
#endif
|
||||||
|
fout << " </font_settings>" << endl;
|
||||||
|
fout << " <msr_file_defaults>" << endl;
|
||||||
|
fout << " <beamline>mue4</beamline>" << endl;
|
||||||
|
fout << " <institute>psi</institute>" << endl;
|
||||||
|
fout << " <file_format>root-npp</file_format>" << endl;
|
||||||
|
fout << " <lifetime_correction>y</lifetime_correction>" << endl;
|
||||||
|
fout << " </msr_file_defaults>" << endl;
|
||||||
|
fout << " <msr2data_defaults>" << endl;
|
||||||
|
fout << " <chain_fit>y</chain_fit>" << endl;
|
||||||
|
fout << " <write_data_header>y</write_data_header>" << endl;
|
||||||
|
fout << " <ignore_data_header_info>n</ignore_data_header_info>" << endl;
|
||||||
|
fout << " <keep_minuit2_output>n</keep_minuit2_output>" << endl;
|
||||||
|
fout << " <write_column_data>n</write_column_data>" << endl;
|
||||||
|
fout << " <recreate_data_file>n</recreate_data_file>" << endl;
|
||||||
|
fout << " <open_file_after_fitting>y</open_file_after_fitting>" << endl;
|
||||||
|
fout << " <create_msr_file_only>n</create_msr_file_only>" << endl;
|
||||||
|
fout << " <fit_only>n</fit_only>" << endl;
|
||||||
|
fout << " <global>n</global>" << endl;
|
||||||
|
fout << " <global_plus>n</global_plus>" << endl;
|
||||||
|
fout << " </msr2data_defaults>" << endl;
|
||||||
|
fout << " <func_pixmap_path>" << MUSRFIT_DOC_DIR << "/latex_images</func_pixmap_path>" << endl;
|
||||||
|
fout << " <theory_functions>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>asymmetry</name>" << endl;
|
||||||
|
fout << " <comment></comment>" << endl;
|
||||||
|
fout << " <label>Asymmetry</label>" << endl;
|
||||||
|
fout << " <pixmap>asymmetry.png</pixmap>" << endl;
|
||||||
|
fout << " <params>1</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>simplExpo</name>" << endl;
|
||||||
|
fout << " <comment>(rate)</comment>" << endl;
|
||||||
|
fout << " <label>simple Exp</label>" << endl;
|
||||||
|
fout << " <pixmap>simpleExp.png</pixmap>" << endl;
|
||||||
|
fout << " <params>1</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>generExpo</name>" << endl;
|
||||||
|
fout << " <comment>(rate exponent)</comment>" << endl;
|
||||||
|
fout << " <label>general Exp</label>" << endl;
|
||||||
|
fout << " <pixmap>generalExp.png</pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>simpleGss</name>" << endl;
|
||||||
|
fout << " <comment>(rate)</comment>" << endl;
|
||||||
|
fout << " <label>simple Gauss</label>" << endl;
|
||||||
|
fout << " <pixmap>simpleGauss.png</pixmap>" << endl;
|
||||||
|
fout << " <params>1</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>statGssKT</name>" << endl;
|
||||||
|
fout << " <comment>(rate)</comment>" << endl;
|
||||||
|
fout << " <label>static Gauss KT</label>" << endl;
|
||||||
|
fout << " <pixmap>statGssKT.png</pixmap>" << endl;
|
||||||
|
fout << " <params>1</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>statGssKTLF</name>" << endl;
|
||||||
|
fout << " <comment>(frequency damping)</comment>" << endl;
|
||||||
|
fout << " <label>static Gauss KT LF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>dynGssKTLF</name>" << endl;
|
||||||
|
fout << " <comment>(frequency damping hopping-rate)</comment>" << endl;
|
||||||
|
fout << " <label>dynamic Gauss KT LF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>3</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>statExpKT</name>" << endl;
|
||||||
|
fout << " <comment>(rate)</comment>" << endl;
|
||||||
|
fout << " <label>static Lorentz KT</label>" << endl;
|
||||||
|
fout << " <pixmap>statExpKT.png</pixmap>" << endl;
|
||||||
|
fout << " <params>1</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>statExpKTLF</name>" << endl;
|
||||||
|
fout << " <comment>(frequency damping)</comment>" << endl;
|
||||||
|
fout << " <label>static Lorentz KT LF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>dynExpKTLF</name>" << endl;
|
||||||
|
fout << " <comment>(frequency damping hopping-rate)</comment>" << endl;
|
||||||
|
fout << " <label>dynamic Lorentz KT LF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>3</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>combiLGKT</name>" << endl;
|
||||||
|
fout << " <comment>(lorentzRate gaussRate)</comment>" << endl;
|
||||||
|
fout << " <label>combined Lorentz-Gauss KT</label>" << endl;
|
||||||
|
fout << " <pixmap>combiLGKT.png</pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>strKT</name>" << endl;
|
||||||
|
fout << " <comment>(rate beta)</comment>" << endl;
|
||||||
|
fout << " <label>stretched Kubo-Toyabe</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>spinGlass</name>" << endl;
|
||||||
|
fout << " <comment>(rate hopping-rate order)</comment>" << endl;
|
||||||
|
fout << " <label>zero field spin glass function</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>3</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>rdAnisoHf</name>" << endl;
|
||||||
|
fout << " <comment>(frequency rate)</comment>" << endl;
|
||||||
|
fout << " <label>random anisotropic hyperfine function</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>abragam</name>" << endl;
|
||||||
|
fout << " <comment>(rate hopping-rate)</comment>" << endl;
|
||||||
|
fout << " <label>Abragam</label>" << endl;
|
||||||
|
fout << " <pixmap>abragam.png</pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>TFieldCos</name>" << endl;
|
||||||
|
fout << " <comment>(phase frequency)</comment>" << endl;
|
||||||
|
fout << " <label>TF cos</label>" << endl;
|
||||||
|
fout << " <pixmap>tfCos.png</pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>internFld</name>" << endl;
|
||||||
|
fout << " <comment>(fraction phase frequency Trate Lrate)</comment>" << endl;
|
||||||
|
fout << " <label>internal Lorentz field</label>" << endl;
|
||||||
|
fout << " <pixmap>internalField.png</pixmap>" << endl;
|
||||||
|
fout << " <params>5</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>internFldGK</name>" << endl;
|
||||||
|
fout << " <comment>(fraction frequency Trate Lrate beta)</comment>" << endl;
|
||||||
|
fout << " <label>internal field, Gaussian broadened</label>" << endl;
|
||||||
|
fout << " <pixmap>internalFieldGK.png</pixmap>" << endl;
|
||||||
|
fout << " <params>5</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>internFldLL</name>" << endl;
|
||||||
|
fout << " <comment>(fraction frequency Trate Lrate)</comment>" << endl;
|
||||||
|
fout << " <label>internal field, Lorentzian broadened</label>" << endl;
|
||||||
|
fout << " <pixmap>internalFieldLL.png</pixmap>" << endl;
|
||||||
|
fout << " <params>4</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>bessel</name>" << endl;
|
||||||
|
fout << " <comment>(phase frequency)</comment>" << endl;
|
||||||
|
fout << " <label>spherical Bessel 0th order</label>" << endl;
|
||||||
|
fout << " <pixmap>bessel.png</pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>internBsl</name>" << endl;
|
||||||
|
fout << " <comment>(fraction phase frequency Trate Lrate)</comment>" << endl;
|
||||||
|
fout << " <label>static internal Bessel</label>" << endl;
|
||||||
|
fout << " <pixmap>internalBessel.png</pixmap>" << endl;
|
||||||
|
fout << " <params>5</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>skewedGss</name>" << endl;
|
||||||
|
fout << " <comment>(phase frequency rate_m rate_p)</comment>" << endl;
|
||||||
|
fout << " <label>skewed Gaussian</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>4</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>staticNKZF</name>" << endl;
|
||||||
|
fout << " <comment>(damping_D0 R_b)</comment>" << endl;
|
||||||
|
fout << " <label>static Noakes-Kalvius ZF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>2</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>staticNKTF</name>" << endl;
|
||||||
|
fout << " <comment>(phase frequency damping_D0 R_b)</comment>" << endl;
|
||||||
|
fout << " <label>static Noakes-Kalvius TF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>4</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>dynamicNKZF</name>" << endl;
|
||||||
|
fout << " <comment>(damping_D0 R_b nu_c)</comment>" << endl;
|
||||||
|
fout << " <label>dynamic Noakes-Kalvius ZF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>3</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>dynamicNKTF</name>" << endl;
|
||||||
|
fout << " <comment>(phase frequency damping_D0 R_b nu_c)</comment>" << endl;
|
||||||
|
fout << " <label>dynamic Noakes-Kalvius TF</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>5</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>polynom</name>" << endl;
|
||||||
|
fout << " <comment>(tshift p0 p1 ... pn)</comment>" << endl;
|
||||||
|
fout << " <label>polynom</label>" << endl;
|
||||||
|
fout << " <pixmap>polynom.png</pixmap>" << endl;
|
||||||
|
fout << " <params>4</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " <func>" << endl;
|
||||||
|
fout << " <name>userFcn</name>" << endl;
|
||||||
|
fout << " <comment></comment>" << endl;
|
||||||
|
fout << " <label>user function</label>" << endl;
|
||||||
|
fout << " <pixmap></pixmap>" << endl;
|
||||||
|
fout << " <params>0</params>" << endl;
|
||||||
|
fout << " </func>" << endl;
|
||||||
|
fout << " </theory_functions>" << endl;
|
||||||
|
fout << "</musredit_startup>" << endl;
|
||||||
|
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
// END
|
// END
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
@ -209,6 +209,7 @@ class PAdmin : public QObject
|
|||||||
QVector<PTheory> fTheory; ///< stores all known theories. Needed when generating theory blocks from within musredit.
|
QVector<PTheory> fTheory; ///< stores all known theories. Needed when generating theory blocks from within musredit.
|
||||||
|
|
||||||
void saveRecentFiles(); ///< save recent file list
|
void saveRecentFiles(); ///< save recent file list
|
||||||
|
void createMusreditStartupFile(); ///< create default musredit_startup.xml
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _PADMIN_H_
|
#endif // _PADMIN_H_
|
||||||
|
@ -60,6 +60,11 @@ PDumpOutputHandler::PDumpOutputHandler(QVector<QString> &cmd)
|
|||||||
// QProcess related code
|
// QProcess related code
|
||||||
fProc = new QProcess( this );
|
fProc = new QProcess( this );
|
||||||
|
|
||||||
|
// make sure that the system environment variables are properly set
|
||||||
|
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||||
|
env.insert("LD_LIBRARY_PATH", env.value("ROOTSYS") + "/lib:" + env.value("LD_LIBRARY_PATH"));
|
||||||
|
fProc->setProcessEnvironment(env);
|
||||||
|
|
||||||
// Set up the command and arguments.
|
// Set up the command and arguments.
|
||||||
QString program = cmd[0];
|
QString program = cmd[0];
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
@ -69,6 +74,7 @@ PDumpOutputHandler::PDumpOutputHandler(QVector<QString> &cmd)
|
|||||||
connect( fProc, SIGNAL( readyReadStandardOutput() ), this, SLOT( readFromStdOut() ) );
|
connect( fProc, SIGNAL( readyReadStandardOutput() ), this, SLOT( readFromStdOut() ) );
|
||||||
connect( fProc, SIGNAL( readyReadStandardError() ), this, SLOT( readFromStdErr() ) );
|
connect( fProc, SIGNAL( readyReadStandardError() ), this, SLOT( readFromStdErr() ) );
|
||||||
|
|
||||||
|
|
||||||
fProc->start(program, arguments);
|
fProc->start(program, arguments);
|
||||||
if ( !fProc->waitForStarted() ) {
|
if ( !fProc->waitForStarted() ) {
|
||||||
// error handling
|
// error handling
|
||||||
|
@ -54,18 +54,6 @@ PMsr2DataDialog::PMsr2DataDialog(PMsr2DataParam *msr2DataParam, const QString he
|
|||||||
|
|
||||||
fRunTag = -1;
|
fRunTag = -1;
|
||||||
|
|
||||||
fFirst_lineEdit->setValidator( new QIntValidator(fFirst_lineEdit) );
|
|
||||||
if (fMsr2DataParam->firstRun != -1) {
|
|
||||||
str = QString("%1").arg(fMsr2DataParam->firstRun);
|
|
||||||
fFirst_lineEdit->setText(str);
|
|
||||||
}
|
|
||||||
|
|
||||||
fLast_lineEdit->setValidator( new QIntValidator(fLast_lineEdit) );
|
|
||||||
if (fMsr2DataParam->lastRun != -1) {
|
|
||||||
str = QString("%1").arg(fMsr2DataParam->lastRun);
|
|
||||||
fLast_lineEdit->setText(str);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!fMsr2DataParam->runListFileName.isEmpty()) {
|
if (!fMsr2DataParam->runListFileName.isEmpty()) {
|
||||||
fRunListFileName_lineEdit->setText(fMsr2DataParam->runListFileName);
|
fRunListFileName_lineEdit->setText(fMsr2DataParam->runListFileName);
|
||||||
}
|
}
|
||||||
@ -95,10 +83,12 @@ PMsr2DataDialog::PMsr2DataDialog(PMsr2DataParam *msr2DataParam, const QString he
|
|||||||
fWriteDataHeader_checkBox->setChecked(fMsr2DataParam->writeDbHeader);
|
fWriteDataHeader_checkBox->setChecked(fMsr2DataParam->writeDbHeader);
|
||||||
fIgnoreDataHeaderInfo_checkBox->setChecked(fMsr2DataParam->ignoreDataHeaderInfo);
|
fIgnoreDataHeaderInfo_checkBox->setChecked(fMsr2DataParam->ignoreDataHeaderInfo);
|
||||||
fKeepMinuit2Output_checkBox->setChecked(fMsr2DataParam->keepMinuit2Output);
|
fKeepMinuit2Output_checkBox->setChecked(fMsr2DataParam->keepMinuit2Output);
|
||||||
|
fEstimateN0_checkBox->setChecked(fMsr2DataParam->estimateN0);
|
||||||
fWriteColumnData_checkBox->setChecked(fMsr2DataParam->writeColumnData);
|
fWriteColumnData_checkBox->setChecked(fMsr2DataParam->writeColumnData);
|
||||||
fRecreateDataFile_checkBox->setChecked(fMsr2DataParam->recreateDbFile);
|
fRecreateDataFile_checkBox->setChecked(fMsr2DataParam->recreateDbFile);
|
||||||
fChainFit_checkBox->setChecked(fMsr2DataParam->chainFit);
|
fChainFit_checkBox->setChecked(fMsr2DataParam->chainFit);
|
||||||
fOpenFilesAfterFitting_checkBox->setChecked(fMsr2DataParam->openFilesAfterFitting);
|
fOpenFilesAfterFitting_checkBox->setChecked(fMsr2DataParam->openFilesAfterFitting);
|
||||||
|
fWritePerRunBlockChisq_checkBox->setChecked(fMsr2DataParam->perRunBlockChisq);
|
||||||
fTitleFromData_checkBox->setChecked(fMsr2DataParam->titleFromDataFile);
|
fTitleFromData_checkBox->setChecked(fMsr2DataParam->titleFromDataFile);
|
||||||
fCreateMsrFileOnly_checkBox->setChecked(fMsr2DataParam->createMsrFileOnly);
|
fCreateMsrFileOnly_checkBox->setChecked(fMsr2DataParam->createMsrFileOnly);
|
||||||
fFitOnly_checkBox->setChecked(fMsr2DataParam->fitOnly);
|
fFitOnly_checkBox->setChecked(fMsr2DataParam->fitOnly);
|
||||||
@ -117,16 +107,6 @@ PMsr2DataDialog::PMsr2DataDialog(PMsr2DataParam *msr2DataParam, const QString he
|
|||||||
*/
|
*/
|
||||||
PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam()
|
PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam()
|
||||||
{
|
{
|
||||||
if (fFirst_lineEdit->text().isEmpty()) {
|
|
||||||
fMsr2DataParam->firstRun = -1;
|
|
||||||
} else {
|
|
||||||
fMsr2DataParam->firstRun = fFirst_lineEdit->text().toInt();
|
|
||||||
}
|
|
||||||
if (fLast_lineEdit->text().isEmpty()) {
|
|
||||||
fMsr2DataParam->lastRun = -1;
|
|
||||||
} else {
|
|
||||||
fMsr2DataParam->lastRun = fLast_lineEdit->text().toInt();
|
|
||||||
}
|
|
||||||
fMsr2DataParam->runList = fRunList_lineEdit->text();
|
fMsr2DataParam->runList = fRunList_lineEdit->text();
|
||||||
fMsr2DataParam->runListFileName = fRunListFileName_lineEdit->text();
|
fMsr2DataParam->runListFileName = fRunListFileName_lineEdit->text();
|
||||||
fMsr2DataParam->msrFileExtension = fMsrFileExtension_lineEdit->text();
|
fMsr2DataParam->msrFileExtension = fMsrFileExtension_lineEdit->text();
|
||||||
@ -140,10 +120,12 @@ PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam()
|
|||||||
fMsr2DataParam->writeDbHeader = fWriteDataHeader_checkBox->isChecked();
|
fMsr2DataParam->writeDbHeader = fWriteDataHeader_checkBox->isChecked();
|
||||||
fMsr2DataParam->ignoreDataHeaderInfo = fIgnoreDataHeaderInfo_checkBox->isChecked();
|
fMsr2DataParam->ignoreDataHeaderInfo = fIgnoreDataHeaderInfo_checkBox->isChecked();
|
||||||
fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output_checkBox->isChecked();
|
fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output_checkBox->isChecked();
|
||||||
|
fMsr2DataParam->estimateN0 = fEstimateN0_checkBox->isChecked();
|
||||||
fMsr2DataParam->writeColumnData = fWriteColumnData_checkBox->isChecked();
|
fMsr2DataParam->writeColumnData = fWriteColumnData_checkBox->isChecked();
|
||||||
fMsr2DataParam->recreateDbFile = fRecreateDataFile_checkBox->isChecked();
|
fMsr2DataParam->recreateDbFile = fRecreateDataFile_checkBox->isChecked();
|
||||||
fMsr2DataParam->chainFit = fChainFit_checkBox->isChecked();
|
fMsr2DataParam->chainFit = fChainFit_checkBox->isChecked();
|
||||||
fMsr2DataParam->openFilesAfterFitting = fOpenFilesAfterFitting_checkBox->isChecked();
|
fMsr2DataParam->openFilesAfterFitting = fOpenFilesAfterFitting_checkBox->isChecked();
|
||||||
|
fMsr2DataParam->perRunBlockChisq = fWritePerRunBlockChisq_checkBox->isChecked();
|
||||||
fMsr2DataParam->titleFromDataFile = fTitleFromData_checkBox->isChecked();
|
fMsr2DataParam->titleFromDataFile = fTitleFromData_checkBox->isChecked();
|
||||||
fMsr2DataParam->createMsrFileOnly = fCreateMsrFileOnly_checkBox->isChecked();
|
fMsr2DataParam->createMsrFileOnly = fCreateMsrFileOnly_checkBox->isChecked();
|
||||||
fMsr2DataParam->fitOnly = fFitOnly_checkBox->isChecked();
|
fMsr2DataParam->fitOnly = fFitOnly_checkBox->isChecked();
|
||||||
@ -153,50 +135,6 @@ PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam()
|
|||||||
return fMsr2DataParam;
|
return fMsr2DataParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* <p>SLOT: called when in the 'Run List Input', the 'First' text field is activated. It clears any
|
|
||||||
* entries in 'Run List' and 'Run List File Name'. It furthermore sets the run tag.
|
|
||||||
*
|
|
||||||
* \param str string content of the QTextEdit field.
|
|
||||||
*/
|
|
||||||
void PMsr2DataDialog::runFirstEntered(const QString &str)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (str.length() == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
fRunTag = 0;
|
|
||||||
|
|
||||||
if (!fRunList_lineEdit->text().isEmpty())
|
|
||||||
fRunList_lineEdit->clear();
|
|
||||||
if (!fRunListFileName_lineEdit->text().isEmpty())
|
|
||||||
fRunListFileName_lineEdit->clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* <p>SLOT: called when in the 'Run List Input', the 'Last' text field is activated. It clears any
|
|
||||||
* entries in 'Run List' and 'Run List File Name'. It furthermore sets the run tag.
|
|
||||||
*
|
|
||||||
* \param str string content of the QTextEdit field.
|
|
||||||
*/
|
|
||||||
void PMsr2DataDialog::runLastEntered(const QString &str)
|
|
||||||
{
|
|
||||||
if (str.length() == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
fRunTag = 0;
|
|
||||||
|
|
||||||
if (!fRunList_lineEdit->text().isEmpty())
|
|
||||||
fRunList_lineEdit->clear();
|
|
||||||
if (!fRunListFileName_lineEdit->text().isEmpty())
|
|
||||||
fRunListFileName_lineEdit->clear();
|
|
||||||
|
|
||||||
if (fLast_lineEdit->text().length() == 1)
|
|
||||||
fLast_lineEdit->update();
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>SLOT: called when in the 'Run List Input', the 'Run List' text field is activated. It clears any
|
* <p>SLOT: called when in the 'Run List Input', the 'Run List' text field is activated. It clears any
|
||||||
@ -209,12 +147,8 @@ void PMsr2DataDialog::runListEntered(const QString &str)
|
|||||||
if (str.length() == 0)
|
if (str.length() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
fRunTag = 1;
|
fRunTag = 0;
|
||||||
|
|
||||||
if (!fFirst_lineEdit->text().isEmpty())
|
|
||||||
fFirst_lineEdit->clear();
|
|
||||||
if (!fLast_lineEdit->text().isEmpty())
|
|
||||||
fLast_lineEdit->clear();
|
|
||||||
if (!fRunListFileName_lineEdit->text().isEmpty())
|
if (!fRunListFileName_lineEdit->text().isEmpty())
|
||||||
fRunListFileName_lineEdit->clear();
|
fRunListFileName_lineEdit->clear();
|
||||||
}
|
}
|
||||||
@ -231,12 +165,8 @@ void PMsr2DataDialog::runListFileNameEntered(const QString &str)
|
|||||||
if (str.length() == 0)
|
if (str.length() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
fRunTag = 2;
|
fRunTag = 1;
|
||||||
|
|
||||||
if (!fFirst_lineEdit->text().isEmpty())
|
|
||||||
fFirst_lineEdit->clear();
|
|
||||||
if (!fLast_lineEdit->text().isEmpty())
|
|
||||||
fLast_lineEdit->clear();
|
|
||||||
if (!fRunList_lineEdit->text().isEmpty())
|
if (!fRunList_lineEdit->text().isEmpty())
|
||||||
fRunList_lineEdit->clear();
|
fRunList_lineEdit->clear();
|
||||||
}
|
}
|
||||||
|
@ -51,8 +51,6 @@ class PMsr2DataDialog : public QDialog, private Ui::PMsr2DataDialog
|
|||||||
virtual PMsr2DataParam* getMsr2DataParam();
|
virtual PMsr2DataParam* getMsr2DataParam();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void runFirstEntered(const QString&);
|
|
||||||
void runLastEntered(const QString&);
|
|
||||||
void runListEntered(const QString&);
|
void runListEntered(const QString&);
|
||||||
void runListFileNameEntered(const QString&);
|
void runListFileNameEntered(const QString&);
|
||||||
void templateRunEntered(const QString&);
|
void templateRunEntered(const QString&);
|
||||||
@ -65,7 +63,7 @@ class PMsr2DataDialog : public QDialog, private Ui::PMsr2DataDialog
|
|||||||
void globalPlusOptionSet(bool checked);
|
void globalPlusOptionSet(bool checked);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int fRunTag; ///< -1 = not valid, 0 = first last, 1 = run list, 2 = run list file name
|
int fRunTag; ///< -1 = not valid, 0 = run list, 1 = run list file name
|
||||||
PMsr2DataParam *fMsr2DataParam; ///< data structure used to handle the necessary input for msr2data.
|
PMsr2DataParam *fMsr2DataParam; ///< data structure used to handle the necessary input for msr2data.
|
||||||
QString fHelpUrl; ///< help url for the Fourier block
|
QString fHelpUrl; ///< help url for the Fourier block
|
||||||
};
|
};
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "PChangeDefaultPathsDialog.h"
|
||||||
#include "PPrefsDialog.h"
|
#include "PPrefsDialog.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
@ -66,6 +67,8 @@ PPrefsDialog::PPrefsDialog(PAdmin *admin) : fAdmin(admin)
|
|||||||
|
|
||||||
fTimeout_lineEdit->setText(QString("%1").arg(fAdmin->getTimeout()));
|
fTimeout_lineEdit->setText(QString("%1").arg(fAdmin->getTimeout()));
|
||||||
fTimeout_lineEdit->setValidator(new QIntValidator(fTimeout_lineEdit));
|
fTimeout_lineEdit->setValidator(new QIntValidator(fTimeout_lineEdit));
|
||||||
|
|
||||||
|
QObject::connect(fDefaultPath_pushButton, SIGNAL(clicked()), this, SLOT(handleDefaultPaths()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
@ -106,6 +109,22 @@ void PPrefsDialog::dumpRoot()
|
|||||||
fDumpAscii_checkBox->setChecked(false);
|
fDumpAscii_checkBox->setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
*<p>SLOT: called when the QPushButton 'Change Default Search Paths' is clicked. Will call a
|
||||||
|
* dialog which allows to deal with the default search paths to look for data files.
|
||||||
|
*/
|
||||||
|
void PPrefsDialog::handleDefaultPaths()
|
||||||
|
{
|
||||||
|
PChangeDefaultPathsDialog *dlg = new PChangeDefaultPathsDialog();
|
||||||
|
|
||||||
|
if (dlg->exec() == QDialog::Accepted) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
delete dlg;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
// END
|
// END
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
* Copyright (C) 2010-2017 by Andreas Suter *
|
||||||
* andreas.suter@psi.ch *
|
* andreas.suter@psi.ch *
|
||||||
* *
|
* *
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
@ -59,6 +59,7 @@ class PPrefsDialog : public QDialog, private Ui::PPrefsDialog
|
|||||||
public slots:
|
public slots:
|
||||||
void dumpAscii();
|
void dumpAscii();
|
||||||
void dumpRoot();
|
void dumpRoot();
|
||||||
|
void handleDefaultPaths();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PAdmin *fAdmin;
|
PAdmin *fAdmin;
|
||||||
|
@ -62,6 +62,31 @@ PSubTextEdit::PSubTextEdit(PAdmin *admin, QWidget *parent) :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief PSubTextEdit::getFitType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int PSubTextEdit::getFitType()
|
||||||
|
{
|
||||||
|
QString str = toPlainText();
|
||||||
|
int idx = str.indexOf("fittype");
|
||||||
|
if (idx == -1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
bool ok;
|
||||||
|
for (int i=idx+7; i<str.length(); i++) {
|
||||||
|
if (str[i] != ' ') {
|
||||||
|
idx = QString(str[i]).toInt(&ok);
|
||||||
|
if (!ok)
|
||||||
|
idx = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return idx;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>Starts the msr-title input dialog window.
|
* <p>Starts the msr-title input dialog window.
|
||||||
|
@ -46,6 +46,7 @@ class PSubTextEdit : public QPlainTextEdit
|
|||||||
public:
|
public:
|
||||||
PSubTextEdit(PAdmin *admin = 0, QWidget *parent = 0);
|
PSubTextEdit(PAdmin *admin = 0, QWidget *parent = 0);
|
||||||
virtual ~PSubTextEdit() {}
|
virtual ~PSubTextEdit() {}
|
||||||
|
int getFitType();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void insertTitle();
|
void insertTitle();
|
||||||
|
@ -850,7 +850,9 @@ void PTextEdit::fileOpen()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// in case there is a 1st empty tab "noname", remove it
|
// in case there is a 1st empty tab "noname", remove it
|
||||||
if (fTabWidget->tabText(0) == "noname") { // has to be the first, otherwise do nothing
|
QString tabStr = fTabWidget->tabText(0);
|
||||||
|
tabStr.remove('&'); // this is needed since the QTabWidget adds short-cut info as '&' to the tab name
|
||||||
|
if (tabStr == "noname") { // has to be the first, otherwise do nothing
|
||||||
fFileSystemWatcher->removePath("noname");
|
fFileSystemWatcher->removePath("noname");
|
||||||
|
|
||||||
delete fTabWidget->widget(0);
|
delete fTabWidget->widget(0);
|
||||||
@ -864,12 +866,15 @@ void PTextEdit::fileOpen()
|
|||||||
void PTextEdit::fileOpenRecent()
|
void PTextEdit::fileOpenRecent()
|
||||||
{
|
{
|
||||||
QAction *action = qobject_cast<QAction *>(sender());
|
QAction *action = qobject_cast<QAction *>(sender());
|
||||||
|
|
||||||
if (action) {
|
if (action) {
|
||||||
// check if this file is already open and if so, switch the tab
|
// check if this file is already open and if so, switch the tab
|
||||||
QFileInfo finfo1, finfo2;
|
QFileInfo finfo1, finfo2;
|
||||||
QString tabFln;
|
QString tabFln;
|
||||||
bool alreadyOpen = false;
|
bool alreadyOpen = false;
|
||||||
finfo1.setFile(action->text());
|
QString fln = action->text();
|
||||||
|
fln.remove('&');
|
||||||
|
finfo1.setFile(fln);
|
||||||
|
|
||||||
for (int i=0; i<fTabWidget->count(); i++) {
|
for (int i=0; i<fTabWidget->count(); i++) {
|
||||||
tabFln = *fFilenames.find( dynamic_cast<PSubTextEdit*>(fTabWidget->widget(i)));
|
tabFln = *fFilenames.find( dynamic_cast<PSubTextEdit*>(fTabWidget->widget(i)));
|
||||||
@ -881,17 +886,25 @@ void PTextEdit::fileOpenRecent()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!alreadyOpen)
|
if (!alreadyOpen) {
|
||||||
load(action->text());
|
// make sure the file exists
|
||||||
else
|
if (!finfo1.exists()) {
|
||||||
|
QMessageBox::critical(this, "ERROR", QString("File '%1' does not exist.\nWill not do anything.").arg(fln));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
load(fln);
|
||||||
|
} else {
|
||||||
fileReload();
|
fileReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
// in case there is a 1st empty tab "noname", remove it
|
// in case there is a 1st empty tab "noname", remove it
|
||||||
if (fTabWidget->tabText(0) == "noname") { // has to be the first, otherwise do nothing
|
fln = fTabWidget->tabText(0);
|
||||||
fFileSystemWatcher->removePath("noname");
|
fln.remove("&");
|
||||||
|
if (fln == "noname") { // has to be the first, otherwise do nothing
|
||||||
|
fFileSystemWatcher->removePath("noname");
|
||||||
|
|
||||||
delete fTabWidget->widget(0);
|
delete fTabWidget->widget(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1714,7 +1727,8 @@ void PTextEdit::musrCalcChisq()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (fAdmin->getEstimateN0Flag())
|
int fittype = currentEditor()->getFitType();
|
||||||
|
if (fAdmin->getEstimateN0Flag() && ((fittype==0) || (fittype==4)))
|
||||||
result = QMessageBox::question(this, "Estimate N0 active",
|
result = QMessageBox::question(this, "Estimate N0 active",
|
||||||
"Do you wish a chisq/mlh evaluation with an automatic N0 estimate?");
|
"Do you wish a chisq/mlh evaluation with an automatic N0 estimate?");
|
||||||
|
|
||||||
@ -1735,7 +1749,7 @@ void PTextEdit::musrCalcChisq()
|
|||||||
cmd.append(str);
|
cmd.append(str);
|
||||||
cmd.append(QFileInfo(*fFilenames.find( currentEditor())).fileName() );
|
cmd.append(QFileInfo(*fFilenames.find( currentEditor())).fileName() );
|
||||||
cmd.append("--chisq-only");
|
cmd.append("--chisq-only");
|
||||||
if (fAdmin->getEstimateN0Flag() && (result == QMessageBox::Yes))
|
if (fAdmin->getEstimateN0Flag() && (result == QMessageBox::Yes) && ((fittype==0) || (fittype==4)))
|
||||||
cmd.append("--estimateN0");
|
cmd.append("--estimateN0");
|
||||||
PFitOutputHandler fitOutputHandler(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath(), cmd);
|
PFitOutputHandler fitOutputHandler(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath(), cmd);
|
||||||
fitOutputHandler.setModal(true);
|
fitOutputHandler.setModal(true);
|
||||||
@ -1866,6 +1880,8 @@ void PTextEdit::musrMsr2Data()
|
|||||||
// init fMsr2DataParam
|
// init fMsr2DataParam
|
||||||
fMsr2DataParam->keepMinuit2Output = fAdmin->getKeepMinuit2OutputFlag();
|
fMsr2DataParam->keepMinuit2Output = fAdmin->getKeepMinuit2OutputFlag();
|
||||||
fMsr2DataParam->titleFromDataFile = fAdmin->getTitleFromDataFileFlag();
|
fMsr2DataParam->titleFromDataFile = fAdmin->getTitleFromDataFileFlag();
|
||||||
|
fMsr2DataParam->estimateN0 = fAdmin->getEstimateN0Flag();
|
||||||
|
fMsr2DataParam->perRunBlockChisq = fAdmin->getChisqPerRunBlockFlag();
|
||||||
|
|
||||||
PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam, fAdmin->getHelpUrl("msr2data"));
|
PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam, fAdmin->getHelpUrl("msr2data"));
|
||||||
|
|
||||||
@ -1887,6 +1903,8 @@ void PTextEdit::musrMsr2Data()
|
|||||||
fMsr2DataParam = dlg->getMsr2DataParam();
|
fMsr2DataParam = dlg->getMsr2DataParam();
|
||||||
fAdmin->setKeepMinuit2OutputFlag(fMsr2DataParam->keepMinuit2Output);
|
fAdmin->setKeepMinuit2OutputFlag(fMsr2DataParam->keepMinuit2Output);
|
||||||
fAdmin->setTitleFromDataFileFlag(fMsr2DataParam->titleFromDataFile);
|
fAdmin->setTitleFromDataFileFlag(fMsr2DataParam->titleFromDataFile);
|
||||||
|
fAdmin->setEstimateN0Flag(fMsr2DataParam->estimateN0);
|
||||||
|
fAdmin->setChisqPerRunBlockFlag(fMsr2DataParam->perRunBlockChisq);
|
||||||
|
|
||||||
// analyze parameters
|
// analyze parameters
|
||||||
switch (dlg->getRunTag()) {
|
switch (dlg->getRunTag()) {
|
||||||
@ -1896,20 +1914,10 @@ void PTextEdit::musrMsr2Data()
|
|||||||
QMessageBox::Ok, QMessageBox::NoButton);
|
QMessageBox::Ok, QMessageBox::NoButton);
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case 0: // first last
|
case 0: // run list
|
||||||
first = QString("%1").arg(fMsr2DataParam->firstRun);
|
|
||||||
last = QString("%1").arg(fMsr2DataParam->lastRun);
|
|
||||||
if (first.isEmpty() || last.isEmpty()) {
|
|
||||||
QMessageBox::critical(this, "**ERROR**",
|
|
||||||
"If you choose the first/last option,\nfirst AND last needs to be provided.",
|
|
||||||
QMessageBox::Ok, QMessageBox::NoButton);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1: // run list
|
|
||||||
runList = fMsr2DataParam->runList;
|
runList = fMsr2DataParam->runList;
|
||||||
break;
|
break;
|
||||||
case 2: // run list file name
|
case 1: // run list file name
|
||||||
runListFileName = fMsr2DataParam->runListFileName;
|
runListFileName = fMsr2DataParam->runListFileName;
|
||||||
fi.setFile(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + runListFileName);
|
fi.setFile(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + runListFileName);
|
||||||
if (!fi.exists()) {
|
if (!fi.exists()) {
|
||||||
@ -1936,10 +1944,6 @@ void PTextEdit::musrMsr2Data()
|
|||||||
// run list argument
|
// run list argument
|
||||||
switch (dlg->getRunTag()) {
|
switch (dlg->getRunTag()) {
|
||||||
case 0:
|
case 0:
|
||||||
cmd.append(first);
|
|
||||||
cmd.append(last);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
end = 0;
|
end = 0;
|
||||||
while (!runList.section(' ', end, end, QString::SectionSkipEmpty).isEmpty()) {
|
while (!runList.section(' ', end, end, QString::SectionSkipEmpty).isEmpty()) {
|
||||||
end++;
|
end++;
|
||||||
@ -1960,7 +1964,7 @@ void PTextEdit::musrMsr2Data()
|
|||||||
cmd.append(str);
|
cmd.append(str);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 1:
|
||||||
cmd.append(runListFileName);
|
cmd.append(runListFileName);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2025,6 +2029,16 @@ void PTextEdit::musrMsr2Data()
|
|||||||
cmd.append("-t");
|
cmd.append("-t");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// estimate N0 (makes sence for single histo and muMinus fits only). Add flag only if a fit is done
|
||||||
|
if (fMsr2DataParam->estimateN0 && (fMsr2DataParam->fitOnly || fMsr2DataParam->templateRunNo != -1)) {
|
||||||
|
cmd.append("-e");
|
||||||
|
}
|
||||||
|
|
||||||
|
// write per-run-block chisq. Add flag only if a fit is done
|
||||||
|
if (fMsr2DataParam->perRunBlockChisq && (fMsr2DataParam->fitOnly || fMsr2DataParam->templateRunNo != -1)) {
|
||||||
|
cmd.append("-p");
|
||||||
|
}
|
||||||
|
|
||||||
// DB output wished
|
// DB output wished
|
||||||
if (!fMsr2DataParam->dbOutputFileName.isEmpty()) {
|
if (!fMsr2DataParam->dbOutputFileName.isEmpty()) {
|
||||||
str = "-o" + fMsr2DataParam->dbOutputFileName;
|
str = "-o" + fMsr2DataParam->dbOutputFileName;
|
||||||
@ -2068,19 +2082,7 @@ void PTextEdit::musrMsr2Data()
|
|||||||
|
|
||||||
if (!fMsr2DataParam->global) { // standard fits
|
if (!fMsr2DataParam->global) { // standard fits
|
||||||
switch(dlg->getRunTag()) {
|
switch(dlg->getRunTag()) {
|
||||||
case 0: // first run / last run list
|
case 0: // run list
|
||||||
if (fMsr2DataParam->firstRun != -1) {
|
|
||||||
for (int i=fMsr2DataParam->firstRun; i<=fMsr2DataParam->lastRun; i++) {
|
|
||||||
if (fMsr2DataParam->msrFileExtension.isEmpty())
|
|
||||||
fln = QString("%1").arg(i) + ".msr";
|
|
||||||
else
|
|
||||||
fln = QString("%1").arg(i) + fMsr2DataParam->msrFileExtension + ".msr";
|
|
||||||
|
|
||||||
load(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fln);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1: // run list
|
|
||||||
list = getRunList(runList, ok);
|
list = getRunList(runList, ok);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return;
|
return;
|
||||||
@ -2094,7 +2096,7 @@ void PTextEdit::musrMsr2Data()
|
|||||||
load(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fln);
|
load(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fln);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2: // run list file
|
case 1: // run list file
|
||||||
file = new QFile(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fMsr2DataParam->runListFileName);
|
file = new QFile(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fMsr2DataParam->runListFileName);
|
||||||
if (!file->open(QIODevice::ReadOnly)) {
|
if (!file->open(QIODevice::ReadOnly)) {
|
||||||
str = QString("Couldn't open run list file %1, sorry.").arg(fMsr2DataParam->runListFileName);
|
str = QString("Couldn't open run list file %1, sorry.").arg(fMsr2DataParam->runListFileName);
|
||||||
@ -2130,13 +2132,10 @@ void PTextEdit::musrMsr2Data()
|
|||||||
// get the first run number needed to build the global fit file name
|
// get the first run number needed to build the global fit file name
|
||||||
fln = QString("");
|
fln = QString("");
|
||||||
switch(dlg->getRunTag()) {
|
switch(dlg->getRunTag()) {
|
||||||
case 0: // first/last run
|
case 0: // run list
|
||||||
fln = QString("%1").arg(fMsr2DataParam->firstRun) + QString("+global") + fMsr2DataParam->msrFileExtension + QString(".msr");
|
|
||||||
break;
|
|
||||||
case 1: // run list
|
|
||||||
fln = runList.section(" ", 0, 0, QString::SectionSkipEmpty) + QString("+global") + fMsr2DataParam->msrFileExtension + QString(".msr");
|
fln = runList.section(" ", 0, 0, QString::SectionSkipEmpty) + QString("+global") + fMsr2DataParam->msrFileExtension + QString(".msr");
|
||||||
break;
|
break;
|
||||||
case 2: // run list file name
|
case 1: // run list file name
|
||||||
file = new QFile(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fMsr2DataParam->runListFileName);
|
file = new QFile(QFileInfo(*fFilenames.find( currentEditor() )).absolutePath() + "/" + fMsr2DataParam->runListFileName);
|
||||||
if (!file->open(QIODevice::ReadOnly)) {
|
if (!file->open(QIODevice::ReadOnly)) {
|
||||||
str = QString("Couldn't open run list file %1, sorry.").arg(fMsr2DataParam->runListFileName);
|
str = QString("Couldn't open run list file %1, sorry.").arg(fMsr2DataParam->runListFileName);
|
||||||
@ -2237,7 +2236,7 @@ void PTextEdit::musrView()
|
|||||||
tr("Quit") );
|
tr("Quit") );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
@ -2490,6 +2489,7 @@ void PTextEdit::musrDump()
|
|||||||
QVector<QString> cmd;
|
QVector<QString> cmd;
|
||||||
QString str = fAdmin->getExecPath() + "/dump_header";
|
QString str = fAdmin->getExecPath() + "/dump_header";
|
||||||
cmd.append(str);
|
cmd.append(str);
|
||||||
|
cmd.append("-fn");
|
||||||
cmd.append(fileName);
|
cmd.append(fileName);
|
||||||
|
|
||||||
PDumpOutputHandler dumpOutputHandler(cmd);
|
PDumpOutputHandler dumpOutputHandler(cmd);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>552</width>
|
<width>585</width>
|
||||||
<height>594</height>
|
<height>594</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -25,8 +25,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>551</width>
|
<width>581</width>
|
||||||
<height>131</height>
|
<height>111</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
@ -44,96 +44,16 @@
|
|||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="layoutWidget">
|
<widget class="QWidget" name="">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>30</y>
|
<y>30</y>
|
||||||
<width>531</width>
|
<width>561</width>
|
||||||
<height>97</height>
|
<height>70</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="fFirst_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>First</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="fFirst_lineEdit">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>start run number</string>
|
|
||||||
</property>
|
|
||||||
<property name="whatsThis">
|
|
||||||
<string>start run number</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="fLast_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Last</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="fLast_lineEdit">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>end run number</string>
|
|
||||||
</property>
|
|
||||||
<property name="statusTip">
|
|
||||||
<string>end run number</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer_3">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>200</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="fOrFirstLast_label">
|
|
||||||
<property name="text">
|
|
||||||
<string><b>OR</b></string>
|
|
||||||
</property>
|
|
||||||
<property name="textFormat">
|
|
||||||
<enum>Qt::AutoText</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<item>
|
<item>
|
||||||
@ -219,8 +139,8 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>130</y>
|
<y>110</y>
|
||||||
<width>551</width>
|
<width>581</width>
|
||||||
<height>71</height>
|
<height>71</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -232,8 +152,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>30</y>
|
<y>30</y>
|
||||||
<width>531</width>
|
<width>561</width>
|
||||||
<height>29</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
@ -249,9 +169,12 @@
|
|||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>30</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -284,8 +207,8 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>200</y>
|
<y>180</y>
|
||||||
<width>551</width>
|
<width>581</width>
|
||||||
<height>80</height>
|
<height>80</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -297,8 +220,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>30</y>
|
<y>30</y>
|
||||||
<width>531</width>
|
<width>561</width>
|
||||||
<height>29</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
@ -346,8 +269,8 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>280</y>
|
<y>260</y>
|
||||||
<width>551</width>
|
<width>581</width>
|
||||||
<height>80</height>
|
<height>80</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -359,8 +282,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>30</y>
|
<y>30</y>
|
||||||
<width>531</width>
|
<width>561</width>
|
||||||
<height>29</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
@ -401,9 +324,9 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>360</y>
|
<y>340</y>
|
||||||
<width>551</width>
|
<width>581</width>
|
||||||
<height>171</height>
|
<height>191</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="title">
|
<property name="title">
|
||||||
@ -414,8 +337,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>6</x>
|
<x>6</x>
|
||||||
<y>20</y>
|
<y>20</y>
|
||||||
<width>541</width>
|
<width>560</width>
|
||||||
<height>116</height>
|
<height>131</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
@ -451,6 +374,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="fEstimateN0_checkBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Estimate N0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -485,6 +415,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="fWritePerRunBlockChisq_checkBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Write per-run-block Chisq</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -551,7 +488,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>9</x>
|
<x>9</x>
|
||||||
<y>143</y>
|
<y>160</y>
|
||||||
<width>141</width>
|
<width>141</width>
|
||||||
<height>16</height>
|
<height>16</height>
|
||||||
</rect>
|
</rect>
|
||||||
@ -566,9 +503,9 @@
|
|||||||
<widget class="QLineEdit" name="fParamList_lineEdit">
|
<widget class="QLineEdit" name="fParamList_lineEdit">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>150</x>
|
<x>164</x>
|
||||||
<y>140</y>
|
<y>157</y>
|
||||||
<width>395</width>
|
<width>401</width>
|
||||||
<height>23</height>
|
<height>23</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -582,7 +519,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>5</x>
|
<x>5</x>
|
||||||
<y>540</y>
|
<y>540</y>
|
||||||
<width>541</width>
|
<width>571</width>
|
||||||
<height>51</height>
|
<height>51</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -636,8 +573,6 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>fFirst_lineEdit</tabstop>
|
|
||||||
<tabstop>fLast_lineEdit</tabstop>
|
|
||||||
<tabstop>fRunList_lineEdit</tabstop>
|
<tabstop>fRunList_lineEdit</tabstop>
|
||||||
<tabstop>fRunListFileName_lineEdit</tabstop>
|
<tabstop>fRunListFileName_lineEdit</tabstop>
|
||||||
<tabstop>fMsrFileExtension_lineEdit</tabstop>
|
<tabstop>fMsrFileExtension_lineEdit</tabstop>
|
||||||
@ -712,38 +647,6 @@
|
|||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
|
||||||
<sender>fFirst_lineEdit</sender>
|
|
||||||
<signal>textChanged(QString)</signal>
|
|
||||||
<receiver>PMsr2DataDialog</receiver>
|
|
||||||
<slot>runFirstEntered(QString)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>82</x>
|
|
||||||
<y>44</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>113</x>
|
|
||||||
<y>504</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>fLast_lineEdit</sender>
|
|
||||||
<signal>textChanged(QString)</signal>
|
|
||||||
<receiver>PMsr2DataDialog</receiver>
|
|
||||||
<slot>runLastEntered(QString)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>229</x>
|
|
||||||
<y>44</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>348</x>
|
|
||||||
<y>500</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
<connection>
|
||||||
<sender>fRunList_lineEdit</sender>
|
<sender>fRunList_lineEdit</sender>
|
||||||
<signal>textChanged(QString)</signal>
|
<signal>textChanged(QString)</signal>
|
||||||
|
@ -41,8 +41,6 @@
|
|||||||
* parameters see <code>msr2data --help</code> and the online documentation.
|
* parameters see <code>msr2data --help</code> and the online documentation.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int firstRun; ///< first run number of a sequence of runs (usage 2 of msr2data)
|
|
||||||
int lastRun; ///< last run number of a sequence of runs (usage 2 of msr2data)
|
|
||||||
QString runList; ///< list of run numbers (usage 3 of msr2data)
|
QString runList; ///< list of run numbers (usage 3 of msr2data)
|
||||||
QString runListFileName; ///< run list filename (usage 4 of msr2data)
|
QString runListFileName; ///< run list filename (usage 4 of msr2data)
|
||||||
QString msrFileExtension; ///< msr filename extension, e.g. '0100_h13.msr' -> '_h13'
|
QString msrFileExtension; ///< msr filename extension, e.g. '0100_h13.msr' -> '_h13'
|
||||||
@ -57,6 +55,8 @@ typedef struct {
|
|||||||
bool chainFit; ///< flag: true = chain fit, i.e. the template for a fit is the preceeding run. false = the template is always the source for the new msr-file
|
bool chainFit; ///< flag: true = chain fit, i.e. the template for a fit is the preceeding run. false = the template is always the source for the new msr-file
|
||||||
bool openFilesAfterFitting; ///< flag: true = open msr-file after fit in musredit. false = do not open msr-file after fit.
|
bool openFilesAfterFitting; ///< flag: true = open msr-file after fit in musredit. false = do not open msr-file after fit.
|
||||||
bool titleFromDataFile; ///< flag indicating if the title for the msr-file shall be extracted from the data-file ('-t' in msr2data)
|
bool titleFromDataFile; ///< flag indicating if the title for the msr-file shall be extracted from the data-file ('-t' in msr2data)
|
||||||
|
bool estimateN0; ///< flag indicating if the N0 shall be estimated for single histogram fitting
|
||||||
|
bool perRunBlockChisq; ///< flag indicating if per-run-block-chisq shall be dumped into the msr-file
|
||||||
bool createMsrFileOnly; ///< flag: true = just create the msr-files without any fitting ('msr-<template>' in msr2data)
|
bool createMsrFileOnly; ///< flag: true = just create the msr-files without any fitting ('msr-<template>' in msr2data)
|
||||||
bool fitOnly; ///< flag: true = just perform the fits wihtout generating any msr-files ('fit' in msr2data).
|
bool fitOnly; ///< flag: true = just perform the fits wihtout generating any msr-files ('fit' in msr2data).
|
||||||
bool global; ///< flag: true = 'global' option
|
bool global; ///< flag: true = 'global' option
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = musredit
|
TARGET = musredit
|
||||||
|
|
||||||
!exists( musredit_startup.xml ) {
|
|
||||||
error( "Configuration file musredit_startup.xml not found! Please configure musrfit first, before trying to install musredit!" )
|
|
||||||
}
|
|
||||||
|
|
||||||
# install path for musredit
|
# install path for musredit
|
||||||
count( PREFIX, 1 ) {
|
count( PREFIX, 1 ) {
|
||||||
MUSREDIT_INSTALL_PATH = $${PREFIX}/bin
|
MUSREDIT_INSTALL_PATH = $${PREFIX}/bin
|
||||||
@ -67,8 +63,6 @@ macx {
|
|||||||
unix:xml.path = $$(HOME)/.musrfit/musredit
|
unix:xml.path = $$(HOME)/.musrfit/musredit
|
||||||
macx:xml.path = $$(HOME)/.musrfit/musredit
|
macx:xml.path = $$(HOME)/.musrfit/musredit
|
||||||
win32:xml.path = c:/musrfit/bin
|
win32:xml.path = c:/musrfit/bin
|
||||||
xml.files = musredit_startup.xml
|
|
||||||
INSTALLS += xml
|
|
||||||
|
|
||||||
CONFIG += qt \
|
CONFIG += qt \
|
||||||
warn_on \
|
warn_on \
|
||||||
@ -84,6 +78,7 @@ QT += svg
|
|||||||
INCLUDEPATH += "../include"
|
INCLUDEPATH += "../include"
|
||||||
|
|
||||||
HEADERS = musredit.h \
|
HEADERS = musredit.h \
|
||||||
|
musrfit-info.h \
|
||||||
PHelp.h \
|
PHelp.h \
|
||||||
PTextEdit.h \
|
PTextEdit.h \
|
||||||
PSubTextEdit.h \
|
PSubTextEdit.h \
|
||||||
@ -106,6 +101,7 @@ HEADERS = musredit.h \
|
|||||||
PGetFourierBlockDialog.h \
|
PGetFourierBlockDialog.h \
|
||||||
PGetPlotBlockDialog.h \
|
PGetPlotBlockDialog.h \
|
||||||
PMsr2DataDialog.h \
|
PMsr2DataDialog.h \
|
||||||
|
PChangeDefaultPathsDialog.h \
|
||||||
PMusrEditAbout.h \
|
PMusrEditAbout.h \
|
||||||
../include/git-revision.h
|
../include/git-revision.h
|
||||||
|
|
||||||
@ -131,6 +127,7 @@ SOURCES = PHelp.cpp \
|
|||||||
PGetFourierBlockDialog.cpp \
|
PGetFourierBlockDialog.cpp \
|
||||||
PGetPlotBlockDialog.cpp \
|
PGetPlotBlockDialog.cpp \
|
||||||
PMsr2DataDialog.cpp \
|
PMsr2DataDialog.cpp \
|
||||||
|
PChangeDefaultPathsDialog.cpp \
|
||||||
PMusrEditAbout.cpp \
|
PMusrEditAbout.cpp \
|
||||||
main.cpp
|
main.cpp
|
||||||
|
|
||||||
@ -150,7 +147,8 @@ FORMS = forms/PFindDialog.ui \
|
|||||||
forms/PGetNonMusrRunBlockDialog.ui \
|
forms/PGetNonMusrRunBlockDialog.ui \
|
||||||
forms/PGetFourierBlockDialog.ui \
|
forms/PGetFourierBlockDialog.ui \
|
||||||
forms/PGetPlotBlockDialog.ui \
|
forms/PGetPlotBlockDialog.ui \
|
||||||
forms/PMsr2DataDialog.ui
|
forms/PMsr2DataDialog.ui \
|
||||||
|
forms/PChangeDefaultPathsDialog.ui
|
||||||
|
|
||||||
RESOURCES = musredit.qrc
|
RESOURCES = musredit.qrc
|
||||||
|
|
||||||
|
@ -1,260 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<musredit_startup xmlns="http://lmu.web.psi.ch/musrfit/user/MUSR/MusrGui.html">
|
|
||||||
<comment>
|
|
||||||
This is handling default setting parameters for the musredit.
|
|
||||||
</comment>
|
|
||||||
<general>
|
|
||||||
<exec_path>@prefix@/bin</exec_path>
|
|
||||||
<default_save_path>./</default_save_path>
|
|
||||||
<msr_default_file_path>@DOCDIR@/templates</msr_default_file_path>
|
|
||||||
<timeout>3600</timeout>
|
|
||||||
<keep_minuit2_output>n</keep_minuit2_output>
|
|
||||||
<dump_ascii>n</dump_ascii>
|
|
||||||
<dump_root>n</dump_root>
|
|
||||||
<title_from_data_file>y</title_from_data_file>
|
|
||||||
<chisq_per_run_block>n</chisq_per_run_block>
|
|
||||||
<estimate_n0>y</estimate_n0>
|
|
||||||
<musrview_show_fourier>n</musrview_show_fourier>
|
|
||||||
<musrview_show_avg>n</musrview_show_avg>
|
|
||||||
<enable_musrt0>y</enable_musrt0>
|
|
||||||
</general>
|
|
||||||
<recent_files>
|
|
||||||
<path_file_name>/home/nemu/analysis/musrfit/doc/examples/test-histo-PSI-BIN.msr</path_file_name>
|
|
||||||
</recent_files>
|
|
||||||
<help_section>
|
|
||||||
<musr_web_main>file://@DOCDIR@/html/user/MUSR/MusrFit.html</musr_web_main>
|
|
||||||
<musr_web_title>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheTitle</musr_web_title>
|
|
||||||
<musr_web_parameters>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheFitparameterBlock</musr_web_parameters>
|
|
||||||
<musr_web_theory>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheTheoryBlock</musr_web_theory>
|
|
||||||
<musr_web_functions>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheFunctionsBlock</musr_web_functions>
|
|
||||||
<musr_web_run>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheRunBlock</musr_web_run>
|
|
||||||
<musr_web_command>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheCommandsBlock</musr_web_command>
|
|
||||||
<musr_web_fourier>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheFourierBlock</musr_web_fourier>
|
|
||||||
<musr_web_plot>file://@DOCDIR@/html/user/MUSR/MusrFit.html#ThePlotBlock</musr_web_plot>
|
|
||||||
<musr_web_statistic>file://@DOCDIR@/html/user/MUSR/MusrFit.html#TheStatisticBlock</musr_web_statistic>
|
|
||||||
<musr_web_msr2data>file://@DOCDIR@/html/user/MUSR/Msr2Data.html</musr_web_msr2data>
|
|
||||||
<musr_web_musrFT>file://@DOCDIR@/html/user/MUSR/MusrFit.html#A_2.3_musrFT</musr_web_musrFT>
|
|
||||||
</help_section>
|
|
||||||
<font_settings>
|
|
||||||
<font_name>Monospace</font_name>
|
|
||||||
<font_size>12</font_size>
|
|
||||||
</font_settings>
|
|
||||||
<msr_file_defaults>
|
|
||||||
<beamline>mue4</beamline>
|
|
||||||
<institute>psi</institute>
|
|
||||||
<file_format>root-npp</file_format>
|
|
||||||
<lifetime_correction>y</lifetime_correction>
|
|
||||||
</msr_file_defaults>
|
|
||||||
<msr2data_defaults>
|
|
||||||
<chain_fit>y</chain_fit>
|
|
||||||
<write_data_header>y</write_data_header>
|
|
||||||
<ignore_data_header_info>n</ignore_data_header_info>
|
|
||||||
<keep_minuit2_output>n</keep_minuit2_output>
|
|
||||||
<write_column_data>n</write_column_data>
|
|
||||||
<recreate_data_file>n</recreate_data_file>
|
|
||||||
<open_file_after_fitting>y</open_file_after_fitting>
|
|
||||||
<create_msr_file_only>n</create_msr_file_only>
|
|
||||||
<fit_only>n</fit_only>
|
|
||||||
<global>n</global>
|
|
||||||
<global_plus>n</global_plus>
|
|
||||||
</msr2data_defaults>
|
|
||||||
<func_pixmap_path>@DOCDIR@/latex_images</func_pixmap_path>
|
|
||||||
<theory_functions>
|
|
||||||
<func>
|
|
||||||
<name>asymmetry</name>
|
|
||||||
<comment></comment>
|
|
||||||
<label>Asymmetry</label>
|
|
||||||
<pixmap>asymmetry.png</pixmap>
|
|
||||||
<params>1</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>simplExpo</name>
|
|
||||||
<comment>(rate)</comment>
|
|
||||||
<label>simple Exp</label>
|
|
||||||
<pixmap>simpleExp.png</pixmap>
|
|
||||||
<params>1</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>generExpo</name>
|
|
||||||
<comment>(rate exponent)</comment>
|
|
||||||
<label>general Exp</label>
|
|
||||||
<pixmap>generalExp.png</pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>simpleGss</name>
|
|
||||||
<comment>(rate)</comment>
|
|
||||||
<label>simple Gauss</label>
|
|
||||||
<pixmap>simpleGauss.png</pixmap>
|
|
||||||
<params>1</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>statGssKT</name>
|
|
||||||
<comment>(rate)</comment>
|
|
||||||
<label>static Gauss KT</label>
|
|
||||||
<pixmap>statGssKT.png</pixmap>
|
|
||||||
<params>1</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>statGssKTLF</name>
|
|
||||||
<comment>(frequency damping)</comment>
|
|
||||||
<label>static Gauss KT LF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>dynGssKTLF</name>
|
|
||||||
<comment>(frequency damping hopping-rate)</comment>
|
|
||||||
<label>dynamic Gauss KT LF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>3</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>statExpKT</name>
|
|
||||||
<comment>(rate)</comment>
|
|
||||||
<label>static Lorentz KT</label>
|
|
||||||
<pixmap>statExpKT.png</pixmap>
|
|
||||||
<params>1</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>statExpKTLF</name>
|
|
||||||
<comment>(frequency damping)</comment>
|
|
||||||
<label>static Lorentz KT LF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>dynExpKTLF</name>
|
|
||||||
<comment>(frequency damping hopping-rate)</comment>
|
|
||||||
<label>dynamic Lorentz KT LF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>3</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>combiLGKT</name>
|
|
||||||
<comment>(lorentzRate gaussRate)</comment>
|
|
||||||
<label>combined Lorentz-Gauss KT</label>
|
|
||||||
<pixmap>combiLGKT.png</pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>strKT</name>
|
|
||||||
<comment>(rate beta)</comment>
|
|
||||||
<label>stretched Kubo-Toyabe</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>spinGlass</name>
|
|
||||||
<comment>(rate hopping-rate order)</comment>
|
|
||||||
<label>zero field spin glass function</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>3</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>rdAnisoHf</name>
|
|
||||||
<comment>(frequency rate)</comment>
|
|
||||||
<label>random anisotropic hyperfine function</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>abragam</name>
|
|
||||||
<comment>(rate hopping-rate)</comment>
|
|
||||||
<label>Abragam</label>
|
|
||||||
<pixmap>abragam.png</pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>TFieldCos</name>
|
|
||||||
<comment>(phase frequency)</comment>
|
|
||||||
<label>TF cos</label>
|
|
||||||
<pixmap>tfCos.png</pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>internFld</name>
|
|
||||||
<comment>(fraction phase frequency Trate Lrate)</comment>
|
|
||||||
<label>internal Lorentz field</label>
|
|
||||||
<pixmap>internalField.png</pixmap>
|
|
||||||
<params>5</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>internFldGK</name>
|
|
||||||
<comment>(fraction frequency Trate Lrate beta)</comment>
|
|
||||||
<label>internal field, Gaussian broadened</label>
|
|
||||||
<pixmap>internalFieldGK.png</pixmap>
|
|
||||||
<params>5</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>internFldLL</name>
|
|
||||||
<comment>(fraction frequency Trate Lrate)</comment>
|
|
||||||
<label>internal field, Lorentzian broadened</label>
|
|
||||||
<pixmap>internalFieldLL.png</pixmap>
|
|
||||||
<params>4</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>bessel</name>
|
|
||||||
<comment>(phase frequency)</comment>
|
|
||||||
<label>spherical Bessel 0th order</label>
|
|
||||||
<pixmap>bessel.png</pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>internBsl</name>
|
|
||||||
<comment>(fraction phase frequency Trate Lrate)</comment>
|
|
||||||
<label>static internal Bessel</label>
|
|
||||||
<pixmap>internalBessel.png</pixmap>
|
|
||||||
<params>5</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>skewedGss</name>
|
|
||||||
<comment>(phase frequency rate_m rate_p)</comment>
|
|
||||||
<label>skewed Gaussian</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>4</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>staticNKZF</name>
|
|
||||||
<comment>(damping_D0 R_b)</comment>
|
|
||||||
<label>static Noakes-Kalvius ZF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>2</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>staticNKTF</name>
|
|
||||||
<comment>(phase frequency damping_D0 R_b)</comment>
|
|
||||||
<label>static Noakes-Kalvius TF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>4</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>dynamicNKZF</name>
|
|
||||||
<comment>(damping_D0 R_b nu_c)</comment>
|
|
||||||
<label>dynamic Noakes-Kalvius ZF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>3</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>dynamicNKTF</name>
|
|
||||||
<comment>(phase frequency damping_D0 R_b nu_c)</comment>
|
|
||||||
<label>dynamic Noakes-Kalvius TF</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>5</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>polynom</name>
|
|
||||||
<comment>(tshift p0 p1 ... pn)</comment>
|
|
||||||
<label>polynom</label>
|
|
||||||
<pixmap>polynom.png</pixmap>
|
|
||||||
<params>4</params>
|
|
||||||
</func>
|
|
||||||
<func>
|
|
||||||
<name>userFcn</name>
|
|
||||||
<comment></comment>
|
|
||||||
<label>user function</label>
|
|
||||||
<pixmap></pixmap>
|
|
||||||
<params>0</params>
|
|
||||||
</func>
|
|
||||||
</theory_functions>
|
|
||||||
</musredit_startup>
|
|
@ -1,60 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<musrfit xmlns="http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html">
|
|
||||||
<comment>
|
|
||||||
Defines default settings for the musrfit package
|
|
||||||
</comment>
|
|
||||||
<data_path>/mnt/data/nemu/his</data_path>
|
|
||||||
<data_path>/mnt/data/nemu/wkm</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/nemu/data/his</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/nemu/data/wkm</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/gps</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/dolly</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/gpd</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/ltf</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/alc</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/hifi</data_path>
|
|
||||||
<data_path>/afs/psi.ch/project/bulkmusr/data/lem</data_path>
|
|
||||||
<options>
|
|
||||||
<use_dks>yes</use_dks>
|
|
||||||
</options>
|
|
||||||
<fourier_settings>
|
|
||||||
<units>Gauss</units>
|
|
||||||
<fourier_power>0</fourier_power>
|
|
||||||
<apodization>none</apodization>
|
|
||||||
<plot>real_and_imag</plot>
|
|
||||||
<phase>0.0</phase>
|
|
||||||
<phase_increment>1.0</phase_increment>
|
|
||||||
</fourier_settings>
|
|
||||||
<root_settings>
|
|
||||||
<marker_list>
|
|
||||||
<!-- Root marker numbers -->
|
|
||||||
<marker>24</marker> <!-- open circle -->
|
|
||||||
<marker>25</marker> <!-- open square -->
|
|
||||||
<marker>26</marker> <!-- open triangle -->
|
|
||||||
<marker>27</marker> <!-- open diamond -->
|
|
||||||
<marker>28</marker> <!-- open cross -->
|
|
||||||
<marker>29</marker> <!-- full star -->
|
|
||||||
<marker>30</marker> <!-- open star -->
|
|
||||||
<marker>20</marker> <!-- full circle -->
|
|
||||||
<marker>21</marker> <!-- full square -->
|
|
||||||
<marker>22</marker> <!-- full triangle -->
|
|
||||||
<marker>23</marker> <!-- full triangle down -->
|
|
||||||
<marker>2</marker> <!-- thin cross -->
|
|
||||||
<marker>3</marker> <!-- thin star -->
|
|
||||||
<marker>5</marker> <!-- thin x -->
|
|
||||||
</marker_list>
|
|
||||||
<color_list>
|
|
||||||
<!-- Color as RGB coded string -->
|
|
||||||
<color>0,0,0</color> <!-- kBlack -->
|
|
||||||
<color>255,0,0</color> <!-- kRed -->
|
|
||||||
<color>0,255,0</color> <!-- kGreen -->
|
|
||||||
<color>0,0,255</color> <!-- kBlue -->
|
|
||||||
<color>255,0,255</color> <!-- kMagenta -->
|
|
||||||
<color>0,255,255</color> <!-- kCyan -->
|
|
||||||
<color>153,0,255</color> <!-- kViolet-3 -->
|
|
||||||
<color>102,102,51</color> <!-- kYellow-1 -->
|
|
||||||
<color>51,102,51</color> <!-- kGreen-1 -->
|
|
||||||
<color>153,0,0</color> <!-- kRed+2 -->
|
|
||||||
</color_list>
|
|
||||||
</root_settings>
|
|
||||||
</musrfit>
|
|
Loading…
x
Reference in New Issue
Block a user