Merged muonspin/musrfit/root6 into master

This commit is contained in:
Zaher Salman 2017-05-23 14:42:44 +02:00
commit 2e30a58af4
291 changed files with 16063 additions and 4080 deletions

View File

@ -2,7 +2,9 @@
# ChangeLog
#---------------------------------------------------------------------
rather than updating this document, the changes can be followed here:
The ChangeLog will describe feature changes rather than coding detail changes.
For detailed information about changes have a look here:
https://gitlab.psi.ch/nemu/musrfit/activity
@ -10,6 +12,24 @@ or
https://bitbucket.org/muonspin/musrfit/commits/all
Release of V1.0.0, 2017/05/18
=============================
I feel that musrfit has majored enough to lift it to its first full version, i.e. V1.0.0.
A lot of bug fixing went into it since 0.18.0. It is now also fully ROOT 6 compatible which
is also the main supported version now.
New features:
* musrWiz: a wizard which will help the user to get started to generate msr-files.
* musrStep: a little helper program which allows to reset the step size of a msr-file.
This is useful if you deal with a lot of detectors (e.g. HAL-9500 at PSI).
* auto-phase correction of Fourier transforms: this is still in its early stage but will
eventually provide a real phase corrected Fourier transform, which will allow
a real Fourier detector average.
* the startup file handling has improved substantially.
changes since 0.18.0
===================================

View File

@ -6,8 +6,7 @@ EXTRA_DIST = autogen.sh acinclude.m4
# The following is to install the documentation
# It is a bit lengthy because one cannot simply install whole directories (except copying them recursively -- which also takes the .svn directories...)
DOCDIRS = templates \
examples \
DOCDIRS = examples \
examples/data \
examples/ASlibs \
examples/ASlibs/data \

View File

@ -1,7 +1,7 @@
AC_REVISION([m4_esyscmd_s([git describe --always])])
AC_PREREQ(2.63)
AC_INIT([musrfit],[0.18.0],[andreas.suter@psi.ch])
AC_INIT([musrfit],[1.0.0],[andreas.suter@psi.ch])
AC_CONFIG_AUX_DIR(admin)
AC_CANONICAL_HOST
#AC_MSG_RESULT([${host} ${host_cpu} ${host_vendor} ${host_os}])
@ -34,8 +34,8 @@ dnl -----------------------------------------------
#release versioning
MUSR_MAJOR_VERSION=0
MUSR_MINOR_VERSION=18
MUSR_MAJOR_VERSION=1
MUSR_MINOR_VERSION=0
MUSR_MICRO_VERSION=0
#release versioning

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/BmwLibs?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:32 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/BmwLibs?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:10 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: BmwLibs</title>
@ -14,14 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/BmwLibs?t=1481904045" type="application/x-wiki" title="edit BmwLibs" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/BmwLibs?t=1494785300" type="application/x-wiki" title="edit BmwLibs" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -149,6 +149,5 @@ Topic revision: <span class='patternRevInfo'>03 Jul 2015, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/BmwLibs?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:33 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/BmwLibs?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:10 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/CiteMusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:25 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/CiteMusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:03 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: CiteMusrFit</title>
@ -14,14 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/CiteMusrFit?t=1481904044" type="application/x-wiki" title="edit CiteMusrFit" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/CiteMusrFit?t=1494785299" type="application/x-wiki" title="edit CiteMusrFit" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -102,14 +102,14 @@
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--JavascriptFiles/foswikiPref-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::COMMENT--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -147,6 +147,5 @@ Topic revision: <span class='patternRevInfo'>19 Jun 2012, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/CiteMusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:25 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/CiteMusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:03 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/LibFitPofB?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:26 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/LibFitPofB?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:04 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: LibFitPofB</title>
@ -14,14 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/LibFitPofB?t=1481904045" type="application/x-wiki" title="edit LibFitPofB" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/LibFitPofB?t=1494785299" type="application/x-wiki" title="edit LibFitPofB" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -104,15 +104,15 @@
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::CHILI-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiForm-->
<!--JavascriptFiles/foswikiPref-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::COMMENT-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -428,6 +428,5 @@ Topic revision: <span class='patternRevInfo'>03 Jul 2015, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/LibFitPofB?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:32 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/LibFitPofB?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:10 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/LibZFRelaxation?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:52 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/LibZFRelaxation?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:26 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: LibZFRelaxation</title>
@ -14,14 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/LibZFRelaxation?t=1481904042" type="application/x-wiki" title="edit LibZFRelaxation" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/LibZFRelaxation?t=1494785294" type="application/x-wiki" title="edit LibZFRelaxation" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -102,17 +102,17 @@
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::CHILI-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::CHILI--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -233,6 +233,5 @@ Topic revision: <span class='patternRevInfo'>03 Jul 2015, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/LibZFRelaxation?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:55 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/LibZFRelaxation?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:30 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/Msr2Data?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:25 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/Msr2Data?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:03 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: Msr2Data</title>
@ -14,12 +14,12 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/Msr2Data?t=1481904045" type="application/x-wiki" title="edit Msr2Data" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/Msr2Data?t=1494785299" type="application/x-wiki" title="edit Msr2Data" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN-->
<style class='head TABLEPLUGIN_default' type="text/css" media="all">
body .foswikiTable {border-width:1px}
body .foswikiTable .tableSortIcon img {padding-left:.3em; vertical-align:text-bottom}
@ -53,9 +53,9 @@ body .foswikiTable#tableMsr2Data1 tr.foswikiTableRowdataBg0 td {background-color
body .foswikiTable#tableMsr2Data1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {background-color:#f5f5f5}
</style><!--TABLEPLUGIN_specific-->
<link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -135,19 +135,19 @@ body .foswikiTable#tableMsr2Data1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::TWISTY-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JavascriptFiles/foswikiForm-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::CHILI--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--JQUERYPLUGIN::CHILI-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::COMMENT-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -435,6 +435,5 @@ Topic revision: <span class='patternRevInfo'>28 Apr 2016, <a href="https://intr
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/Msr2Data?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:26 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/Msr2Data?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:03 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:02 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:39 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: MusrFit</title>
@ -14,11 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrFit?t=1481904044" type="application/x-wiki" title="edit MusrFit" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrFit?t=1494785298" type="application/x-wiki" title="edit MusrFit" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><style class='head TABLEPLUGIN_default' type="text/css" media="all">
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<style class='head TABLEPLUGIN_default' type="text/css" media="all">
body .foswikiTable {border-width:1px}
body .foswikiTable .tableSortIcon img {padding-left:.3em; vertical-align:text-bottom}
body .foswikiTable td {border-style:solid none; vertical-align:top}
@ -32,11 +35,8 @@ body .foswikiTable tr.foswikiTableRowdataBg0 td.foswikiSortedCol {background-col
body .foswikiTable tr.foswikiTableRowdataBg1 td {background-color:#f7f7f6}
body .foswikiTable tr.foswikiTableRowdataBg1 td.foswikiSortedCol {background-color:#f0f0ee}
</style><!--TABLEPLUGIN_default-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -116,18 +116,18 @@ body .foswikiTable tr.foswikiTableRowdataBg1 td.foswikiSortedCol {background-col
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::CHILI--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--JQUERYPLUGIN::CHILI-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::COMMENT-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -153,7 +153,7 @@ body .foswikiTable tr.foswikiTableRowdataBg1 td.foswikiSortedCol {background-col
</li> <li> <a href="MusrFit.html#A_2.7_any2many"> 2.7 any2many </a>
</li> <li> <a href="MusrFit.html#A_2.8_dump_header"> 2.8 dump_header </a>
</li></ul>
</li> <li> <a href="MusrFit.html#A_3_Auxiliary_Programs"> 3 Auxiliary Programs </a>
</li> <li> <a href="MusrFit.html#A_3_Auxiliary_Programs_40musredit_44_msr2data_41"> 3 Auxiliary Programs (musredit, msr2data) <img src="../pub/System/DocumentGraphics/updated.png" alt="UPDATED" title="UPDATED" width="55" height="16" /> </a>
</li> <li> <a href="MusrFit.html#A_4_Description_of_the_msr_File_Format"> 4 Description of the msr File Format </a> <ul>
<li> <a href="MusrFit.html#A_4.1_The_Title"> 4.1 The Title </a>
</li> <li> <a href="MusrFit.html#A_4.2_The_FITPARAMETER_Block"> 4.2 The FITPARAMETER Block </a>
@ -483,8 +483,8 @@ the same as the previous example, except that the file name is constructed via t
Will dump the <code>LEM</code> header information of run <code>3456</code> including the content of the run summary file.
<p></p>
<span id="AuxiliaryPrograms"></span>
<h1 id="A_3_Auxiliary_Programs"> 3 Auxiliary Programs </h1>
Additionally to the programs mentioned above editor front ends called <code><a href="MusrGui.html">musrgui/musredit</a></code> and another tool named <code><a href="Msr2Data.html">msr2data</a></code> are available. The purpose of <code>msr2data</code> is to process multiple msr files with the same parameters and to summarize the fitting results either in a <strong>DB</strong> or a <strong>column ASCII</strong> file. Also, new msr files can be generated from a template. For details refer to its <a href="Msr2Data.html">manual</a>.
<h1 id="A_3_Auxiliary_Programs_40musredit_44_msr2data_41"> 3 Auxiliary Programs (musredit, msr2data) <img src="../pub/System/DocumentGraphics/updated.png" alt="UPDATED" title="UPDATED" width="55" height="16" /> </h1>
Additionally to the programs mentioned above editor front ends called <code><a href="MusrGui.html">musredit</a></code> and another tool named <code><a href="Msr2Data.html">msr2data</a></code> are available. The purpose of <code>msr2data</code> is to process multiple msr files with the same parameters and to summarize the fitting results either in a <strong>DB</strong> or a <strong>column ASCII</strong> file. Also, new msr files can be generated from a template. For details refer to its <a href="Msr2Data.html">manual</a>.
<p></p>
<strong><span class='foswikiRedFG'>Before going to use <code>musrgui</code> / <code>musredit</code> it is strongly recommended to read this manual first!</span></strong>
<p></p>
@ -601,7 +601,7 @@ The THEORY block is used to define the fit function. There is a set of predefine
<td class="foswikiTableCol1"> stg </td>
<td class="foswikiTableCol2"> <img alt="\sigma\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_6b6bbc4add4da0bde8220c54594658f3.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\frac{1}{3} + \frac{2}{3} \left&#91;1-(\sigma t)^2\right] \exp\left&#91;-\frac{1}{2}\left(\sigma t\right)^2\right]" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_1f1b2becd9ba1bee3b5d7f897bd8db7e.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableEven foswikiTableRowdataBgSorted0 foswikiTableRowdataBg0">
<td class="foswikiTableCol0 foswikiFirstCol"> statGssKTLF </td>
@ -643,7 +643,7 @@ The THEORY block is used to define the fit function. There is a set of predefine
<td class="foswikiTableCol1"> lgkt </td>
<td class="foswikiTableCol2"> <img alt="\lambda\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_020e973cf5b1293c76cb3ecef5a269f8.png" />, <img alt="\sigma\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_6b6bbc4add4da0bde8220c54594658f3.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\frac{1}{3}+\frac{2}{3}\left(1-\sigma^2 t^2-\lambda t\right)\exp\left(-\frac{\sigma^2t^2}{2}-\lambda t\right)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_95da508ef32b516260a14999eaf14f46.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableEven foswikiTableRowdataBgSorted0 foswikiTableRowdataBg0">
<td class="foswikiTableCol0 foswikiFirstCol"> strKT </td>
@ -657,7 +657,7 @@ The THEORY block is used to define the fit function. There is a set of predefine
<td class="foswikiTableCol1"> spg </td>
<td class="foswikiTableCol2"> <img alt="\lambda\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_020e973cf5b1293c76cb3ecef5a269f8.png" />, <img alt="\gamma\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_8aad0e0c2c1f20995c483933a896ca0d.png" />, <img alt="q\,(1)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_16b8c518c1e529e6c963929287ef3a56.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\frac{1}{3}\exp\left(-\sqrt{\frac{4\lambda^2(1-q)t}{\gamma}}\right)+\frac{2}{3}\left(1-\frac{q\lambda^2t^2}{\sqrt{\frac{4\lambda^2(1-q)t}{\gamma}+q\lambda^2t^2}}\right)\exp\left(-\sqrt{\frac{4\lambda^2(1-q)t}{\gamma}+q\lambda^2t^2}\right)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_e35c4217aa50607f25e6eadf9f27f874.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableEven foswikiTableRowdataBgSorted0 foswikiTableRowdataBg0">
<td class="foswikiTableCol0 foswikiFirstCol"> rdAnisoHf </td>
@ -671,35 +671,35 @@ The THEORY block is used to define the fit function. There is a set of predefine
<td class="foswikiTableCol1"> tf </td>
<td class="foswikiTableCol2"> <img alt="\varphi\,(^{\circ})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_61136f20673ad20f955c43e43b8cec9d.png" />, <img alt="\nu\,(\mathrm{MHz})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_7188605a647615e4fb92cc89274b22a0.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\cos\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_51757d805f7111ffe6e0b430b6d137c7.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableEven foswikiTableRowdataBgSorted0 foswikiTableRowdataBg0">
<td class="foswikiTableCol0 foswikiFirstCol"> internFld </td>
<td class="foswikiTableCol1"> if </td>
<td class="foswikiTableCol2"> <img alt="\alpha\,(1)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_f266f29ff7212b8d77bf67567eac1fd3.png" />, <img alt="\varphi\,(^{\circ})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_61136f20673ad20f955c43e43b8cec9d.png" />, <img alt="\nu\,(\mathrm{MHz})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_7188605a647615e4fb92cc89274b22a0.png" />, <img alt="\lambda&#95;{\mathrm{T}}\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_49046b617890ffeaca8bc16ae66d0dc5.png" />, <img alt="\lambda&#95;{\mathrm{L}}\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_b0c4a8cbbcf4189b64418b381939a979.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\alpha\,\cos\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)\exp\left(-\lambda&#95;{\mathrm{T}}t\right)+(1-\alpha)\,\exp\left(-\lambda&#95;{\mathrm{L}}t\right)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_1582d158c5651581ca9e800ee698ce9f.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableOdd foswikiTableRowdataBgSorted1 foswikiTableRowdataBg1">
<td class="foswikiTableCol0 foswikiFirstCol"> Bessel </td>
<td class="foswikiTableCol1"> b </td>
<td class="foswikiTableCol2"> <img alt="\varphi\,(^{\circ})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_61136f20673ad20f955c43e43b8cec9d.png" />, <img alt="\nu\,(\mathrm{MHz})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_7188605a647615e4fb92cc89274b22a0.png" /> </td>
<td class="foswikiTableCol3"> <img alt="j&#95;0\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_cff60a46de8608e97a33bbae7c4e566d.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableEven foswikiTableRowdataBgSorted0 foswikiTableRowdataBg0">
<td class="foswikiTableCol0 foswikiFirstCol"> internBsl </td>
<td class="foswikiTableCol1"> ib </td>
<td class="foswikiTableCol2"> <img alt="\alpha\,(1)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_f266f29ff7212b8d77bf67567eac1fd3.png" />, <img alt="\varphi\,(^{\circ})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_61136f20673ad20f955c43e43b8cec9d.png" />, <img alt="\nu\,(\mathrm{MHz})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_7188605a647615e4fb92cc89274b22a0.png" />, <img alt="\lambda&#95;{\mathrm{T}}\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_49046b617890ffeaca8bc16ae66d0dc5.png" />, <img alt="\lambda&#95;{\mathrm{L}}\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_b0c4a8cbbcf4189b64418b381939a979.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\alpha\,j&#95;0\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)\exp\left(-\lambda&#95;{\mathrm{T}}t\right)+(1-\alpha)\,\exp\left(-\lambda&#95;{\mathrm{L}}t\right)" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_23ec8fc398b4e415b86bbd2b65f9a63c.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableOdd foswikiTableRowdataBgSorted1 foswikiTableRowdataBg1">
<td class="foswikiTableCol0 foswikiFirstCol"> abragam </td>
<td class="foswikiTableCol1"> ab </td>
<td class="foswikiTableCol2"> <img alt="\sigma\,(\mu\text{s}^{-1})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_6b6bbc4add4da0bde8220c54594658f3.png" />, <img alt="\gamma\,(\mathrm{MHz})" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_ebef6cda2881306e993839c1b4bcaa4c.png" /> </td>
<td class="foswikiTableCol3"> <img alt="\exp\left&#91;-\frac{\sigma^2}{\gamma^2}\left(e^{-\gamma t}-1+\gamma t\right)\right]" class="mmpImage" src="../pub/MUSR/MusrFit/_MathModePlugin_e56be15b7e230ec52a9f6632e552ca4b.png" /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/skull.gif' alt='dead!' title='dead!' /> </td>
<td class="foswikiTableCol4 foswikiLastCol"> <img class='smily' src='../pub/Main/SmiliesPluginPSI/skull.gif' alt='dead!' title='dead!' /> </td>
</tr>
<tr class="foswikiTableEven foswikiTableRowdataBgSorted0 foswikiTableRowdataBg0">
<td class="foswikiTableCol0 foswikiFirstCol"> skewedGss </td>
@ -1047,7 +1047,7 @@ etc.
addt0 t0AddRun1Forward t0AddRun1Backward
addt0 t0AddRun2Forward t0AddRun2Backward
etc.
</pre> How will the background and data ranges be handled in this situation? First, the ADDRUN's will be shifted in time such that all the t0's have the same channel/bin number. Subsequently, the runs will be added. The background/data range is applied to this summed up new histogram. ADDRUN is not available for the fit type 'Non-&mu;SR Fit' (sorry <img class='smily' src='../pub/Main/SmiliesPluginPSI_/no.gif' alt='no' title='no' /> ).
</pre> How will the background and data ranges be handled in this situation? First, the ADDRUN's will be shifted in time such that all the t0's have the same channel/bin number. Subsequently, the runs will be added. The background/data range is applied to this summed up new histogram. ADDRUN is not available for the fit type 'Non-&mu;SR Fit' (sorry <img class='smily' src='../pub/Main/SmiliesPluginPSI/no.gif' alt='no' title='no' /> ).
<p></p>
<span id="FitTypes"></span> <dl>
<dt> fittype (required if not already defined in the GLOBAL block) </dt><dd> This tag is used to indicate which type of fit is wished. The supported fit types are: <dl>
@ -1084,7 +1084,7 @@ norm fun3
<dt> lifetime (fit type 0) </dt><dd> Fit parameter representing the lifetime of the muon. If it is not specified the value &#964;<sub>&#956;</sub>=2.197019 &#956;s is used in the calculations.
</dd></dl>
<p></p> <dl>
<dt> lifetimecorrection (fit type 0) <img class='smily' src='../pub/Main/SmiliesPluginPSI_/eek.gif' alt='eek!' title='eek!' /> <strong>obsolete</strong> <img class='smily' src='../pub/Main/SmiliesPluginPSI_/eek.gif' alt='eek!' title='eek!' /> </dt><dd> Does not accept any arguments. If present, the output in <code>musrview</code> is corrected for the exponential decay of the muon. This item is <strong>obsolete</strong> in the RUN block and will be transferred to the <a class="foswikiCurrentTopicLink" href="#ThePlotBlock">PLOT block</a>, which allows switching between histogram view and asymmetry view much quicker.
<dt> lifetimecorrection (fit type 0) <img class='smily' src='../pub/Main/SmiliesPluginPSI/eek.gif' alt='eek!' title='eek!' /> <strong>obsolete</strong> <img class='smily' src='../pub/Main/SmiliesPluginPSI/eek.gif' alt='eek!' title='eek!' /> </dt><dd> Does not accept any arguments. If present, the output in <code>musrview</code> is corrected for the exponential decay of the muon. This item is <strong>obsolete</strong> in the RUN block and will be transferred to the <a class="foswikiCurrentTopicLink" href="#ThePlotBlock">PLOT block</a>, which allows switching between histogram view and asymmetry view much quicker.
</dd></dl>
<p></p> <dl>
<dt> map </dt><dd> On this line the mapping of run-dependent parameters is done. Parameter numbers given here may be accessed through <code><b>map1</b></code>, <code><b>map2</b></code>, etc. in the THEORY and FUNCTIONS blocks (see also <a class="foswikiCurrentTopicLink" href="#MaPs">here</a>). The first ten maps are always present and have the value 0 if not used; however, the total number of maps is not restricted!
@ -1305,8 +1305,8 @@ The PLOT block is intended to collect all the information needed for the graphic
</dd></dl>
</dd> <dt> use_fit_ranges [ <i>y</i><sub>min</sub> <i>y</i><sub>max</sub>] </dt><dd> The fit ranges of the individual runs are used to present the data. Optionally, an ordinate range can be provided.
</dd> <dt> view_packing </dt><dd> The data are presented in the packing given here rather than the binning used for the fit. <strong>WARNING</strong>: This is a global option and applies to <strong>all</strong> PLOT-blocks.
</dd> <dt> logx </dt><dd> Will present the time axis in a logarithmic scale. So far no checking of negative and zero-valued data is performed <img class='smily' src='../pub/Main/SmiliesPluginPSI_/wink.gif' alt='wink' title='wink' />
</dd> <dt> logy </dt><dd> Will present the axis of ordinates in a logarithmic scale. So far no checking of negative and zero-valued data is performed <img class='smily' src='../pub/Main/SmiliesPluginPSI_/wink.gif' alt='wink' title='wink' />
</dd> <dt> logx </dt><dd> Will present the time axis in a logarithmic scale. So far no checking of negative and zero-valued data is performed <img class='smily' src='../pub/Main/SmiliesPluginPSI/wink.gif' alt='wink' title='wink' />
</dd> <dt> logy </dt><dd> Will present the axis of ordinates in a logarithmic scale. So far no checking of negative and zero-valued data is performed <img class='smily' src='../pub/Main/SmiliesPluginPSI/wink.gif' alt='wink' title='wink' />
</dd> <dt> rrf_packing <code>value</code> </dt><dd> In the rotating-reference-frame (RRF) representation, this will be the value for the packing. <strong>WARNING</strong>: For the time being, this is a global option and applies to <strong>all</strong> PLOT blocks.
</dd> <dt> rrf_freq <code>value</code> <code>unit</code> </dt><dd> This entry provides the RRF "frequency" given by the <code>value</code> and the <code>unit</code> which can be: <code>kHz</code>, <code>MHz</code>, <code>Mc/s</code>, <code>G</code>, or <code>T</code>.
</dd> <dt> rrf_phase <code>value</code> </dt><dd> A phase of the RRF can be provided, either as a value in degrees, or as a <code>parX</code>, e.g. <code>par4</code>, where <code>X</code> is supposed to be the phase parameter number in the FITPARAMETER block.
@ -1547,7 +1547,7 @@ In case of a custom installation some paths in the Makefile might have to be cha
<p></p>
After installing the shared library the defined user function might be used in <code>musrfit</code> as described <a class="foswikiCurrentTopicLink" href="#UserFunctions">above</a>.
<p></p>
Good luck! <img class='smily' src='../pub/Main/SmiliesPluginPSI_/wink.gif' alt='wink' title='wink' />
Good luck! <img class='smily' src='../pub/Main/SmiliesPluginPSI/wink.gif' alt='wink' title='wink' />
<p></p>
Finally, please be aware of the <a class="foswikiCurrentTopicLink" href="#UserFunctionRemark">remark</a> at the end of this section.
<p></p>
@ -1713,7 +1713,7 @@ For reporting bugs or requesting new features and improvements please use the <a
<p></p>
</div>
<div class="patternInfo">This topic: MUSR<span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span><a class="foswikiCurrentWebHomeLink" href="WebHome.html">WebHome</a><span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span>MusrFit <br />
Topic revision: <span class='patternRevInfo'>16 Dec 2016, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
Topic revision: <span class='patternRevInfo'>30 Apr 2017, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
</div>
</div>
</div>
@ -1731,6 +1731,5 @@ Topic revision: <span class='patternRevInfo'>16 Dec 2016, <a href="https://intr
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:25 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFit?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:03 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitAcknowledgements?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:02 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitAcknowledgements?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:39 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: MusrFitAcknowledgements</title>
@ -14,12 +14,12 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrFitAcknowledgements?t=1481904044" type="application/x-wiki" title="edit MusrFitAcknowledgements" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrFitAcknowledgements?t=1494785298" type="application/x-wiki" title="edit MusrFitAcknowledgements" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@ -102,8 +102,8 @@
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
@ -145,6 +145,5 @@ Topic revision: <span class='patternRevInfo'>03 Jul 2015, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitAcknowledgements?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:02 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitAcknowledgements?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:39 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitSetup?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:01 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitSetup?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:39 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: MusrFitSetup</title>
@ -14,13 +14,13 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrFitSetup?t=1481904043" type="application/x-wiki" title="edit MusrFitSetup" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrFitSetup?t=1494785297" type="application/x-wiki" title="edit MusrFitSetup" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@ -104,12 +104,12 @@
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::CHILI-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiForm-->
<!--JavascriptFiles/foswikiPref-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::COMMENT-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
@ -187,7 +187,7 @@ Additionally, <span class='foswikiRedFG'>only if</span> <code>musrfit</code> sho
$ <a href="http://www.hdfgroup.org/products/hdf4/">HDF4</a>: A library and multi-object file format for storing and managing data.
$ <a href="http://www.hdfgroup.org/HDF5/">HDF5</a>: A data model, library, and file format for storing and managing data.
$ <a href="http://www.minixml.org/">minixml</a>: A small <code>XML</code> library that can be used to read and write <code>XML</code> and <code>XML</code> -like data files. <em>Required version &#8805; 2.2</em>
$ <a href="http://www.nexusformat.org/">NeXus</a>: A common data format for neutron, x-ray, and muon science.
$ <a href="http://www.nexusformat.org/">NeXus</a>: A common data format for neutron, x-ray, and muon science. <em>Required version &#8805; 4.4</em>
<p></p>
If optionally the editor and graphical user interface <code><a href="MusrGui.html">musrgui</a></code> / <code><a href="MusrGui.html">musredit</a></code> is going to be installed there is one further requirement:
$ <a href="http://qt.nokia.com/">Qt</a>: A cross-platform application and user interface framework. <em>Required version &#8805; 3.3 &#38; &#8810; 4.0 (<code>musrgui</code>) <strong>OR</strong> &#8805; 4.6 (<code>musredit</code>)</em>
@ -198,7 +198,7 @@ Each of the following sections focusing on the installation of <code>musrfit</co
Before the further installation will be described, please note the following restrictions: <dl>
<dt> GNU/Linux </dt><dd> No serious problems are known at the moment.
</dd> <dt> MS Windows </dt><dd> The setup of <code>musrfit</code> (including the requirements) using <code>Visual C++</code> has not been tested. If anybody likes to do this: Just go ahead and have fun! However, not very much assistance can be expected, although it would be an interesting experiment.
</dd> <dt> Mac OS X </dt><dd> On <code>10.6 Snow Leopard</code> <code>Qt3</code> for Mac is not supported any more since this was based on a 32-bit only API. <code>Snow Leopard</code> -users are advised to use the <code>Qt4</code> based <code>musredit</code> or to rely on the standard <code>Qt3</code> version for <code>X11</code> in order to run <code>musrgui</code>. On newer Mac OS X versions (&gt;= 10.8) you should use the <code>Qt4</code> base <code>musredit</code> only.
</dd> <dt> Mac OS X </dt><dd> On <code>10.6 Snow Leopard</code> <code>Qt3</code> for Mac is not supported any more since this was based on a 32-bit only API. <code>Snow Leopard</code> -users are advised to use the <code>Qt4</code> based <code>musredit</code> or to rely on the standard <code>Qt3</code> version for <code>X11</code> in order to run <code>musrgui</code>. On newer Mac OS X versions (&gt;= 10.8) you should use the <code>Qt4</code> or better, if available, <code>Qt5</code> base <code>musredit</code> only.
</dd></dl>
<p></p>
<h1 id="A_3_GNU_47Linux"> 3 GNU/Linux </h1>
@ -206,14 +206,33 @@ Before the further installation will be described, please note the following res
<h3 id="A_3.1.1_Everything_but_61_61ROOT_61_61_and_61_61NeXus_61_61"> 3.1.1 Everything but <code><b>ROOT</b></code> and <code><b>NeXus</b></code> </h3>
Depending on the GNU/Linux distribution chosen, the above mentioned software&mdash;except the <code>ROOT</code> system and the <code>NeXus</code> library&mdash;should be available from the distributor and could be easily installed in the form of binary packages. If done in this way there should be taken care of installing <strong>both</strong>, the libraries and the header (dev, devel) files.<br>
On a <a href="https://www.scientificlinux.org/">Scientific Linux</a> (<a href="http://www.redhat.com/">Red Hat</a>, other RPM-package base Linux distributions) system the following command executed as superuser from the shell will do the trick (never type the '$' it is the shell prompt of your system):
<p></p>
For <strong>Qt4</strong>:
<pre class="bash">
&#36; yum install git boost-devel gsl-devel fftw-devel libxml2-devel qt-devel qtwebkit-devel
&#36; yum install git cmake boost-devel gsl-devel fftw-devel libxml2-devel qt-devel qtwebkit-devel
</pre>
When dealing with a distribution that uses the dpkg/apt package manager like <a href="http://www.debian.org/">Debian</a> or <a href="http://www.ubuntu.com/">Ubuntu</a> the installation would look like:
<p></p>
For <strong>Qt5</strong>:
<pre class="bash">
&#36; apt-get install git libboost-dev libgsl0-dev libfftw3-dev libxml2-dev libqt4-dev libqtwebkit-dev
&#36; yum install epel-release
&#36; yum install git cmake boost-devel gsl-devel fftw-devel libxml2-devel qt5-qtbase-devel qt5-qtsvg-devel qt5-qtwebkit-devel
</pre>
<p></p>
Depending on your distribution <strong>Qt4</strong> is still the default but is likely to be replaced by <strong>Qt5</strong> in the very near future.
<p></p>
When dealing with a distribution that uses the dpkg/apt package manager like <a href="http://www.debian.org/">Debian</a> or <a href="http://www.ubuntu.com/">Ubuntu</a> the installation would look like:
<p></p>
For <strong>Qt4</strong>:
<pre class="bash">
&#36; apt-get install git cmake libboost-dev libgsl0-dev libfftw3-dev libxml2-dev libqt4-dev libqtwebkit-dev
</pre>
Everyone should know best himself which is the way to install distribution software on the chosen distribution <img class='smily' src='../pub/Main/SmiliesPluginPSI_/wink.gif' alt='wink' title='wink' />
<p></p>
For <strong>Qt5</strong>:
<pre class="bash">
&#36; apt-get install git cmake libboost-dev libgsl0-dev libfftw3-dev libxml2-dev qt5-default qtbase5-dev libqt5svg5-dev libqt5webkit5-dev
</pre>
<p></p>
Everyone should know best himself which is the way to install distribution software on the chosen distribution <img class='smily' src='../pub/Main/SmiliesPluginPSI/wink.gif' alt='wink' title='wink' />
<p></p>
In case the distribution does not include the required software it has to be compiled from the source files which normally means to download the source code from the corresponding website, to unpack the source tree and call the following from the shell:
<pre class="bash">
@ -249,9 +268,9 @@ A brief instruction how to get <code>NeXus</code> compiled from source:
&#36; sudo make install
</pre>
<h3 id="A_3.1.3_61_61ROOT_61_61"> 3.1.3 <code><b>ROOT</b></code> </h3>
<strong>Currently only ROOT 5.34/xx is support! Do NOT try to use ROOT 6.xx/yy yet!</strong>
ROOT 5.34/xx is supported as legacy version only! <strong>The default now will be ROOT 6.xx/yy!</strong>
<p></p>
The <code>ROOT</code> system may or may not be part of the GNU/Linux distribution. Some distributions are packing <code>ROOT</code> in a manner incompatible with the way it is needed for <code>musrfit</code>. <strong>Therefore we advise to install <code>ROOT</code> from source</strong>. Before installing <code>ROOT</code> from source you will need to install some additional header packages.
The <code>ROOT</code> system may or may not be part of the GNU/Linux distribution. Some distributions are packing <code>ROOT</code> in a manner incompatible with the way it is needed for <code>musrfit</code>, though the situation is improving. If you are experienced enough you can try the packed ROOT version. Often ROOT is split in many sub-packages. Install the necessary ones (guess from the description below). <strong>One Warning</strong>: if the ROOT packages are upgraded after a <code>yum update</code> (<code>apt-get update; apt-get upgrade</code>) you might need to recompile <code>musrfit</code>. If you are not sure about all this: <strong>install <code>ROOT</code> from source</strong>. Before installing <code>ROOT</code> from source you will need to install some additional header packages.
<p></p>
For RPM based systems (RedHat, Fedora, etc) this will likely to be <strong>libX11-devel</strong>, <strong>libXft-devel</strong>, <strong>libXpm-devel</strong>, and <strong>libXext-devel</strong>:
<pre class="bash">
@ -263,7 +282,7 @@ For a dpkg/apt based system (Debian, Ubuntu, etc) this will likely to be <strong
&#36; apt-get install libX11-dev libxft-dev libxpm-dev libxext-dev
</pre>
<p></p>
Also make sure that you have installed all required packages listed under <a class="foswikiCurrentTopicLink" href="#ReqSw">Requested Software</a> (e.g. fftw, gsl, etc).
Also make sure that you have installed all required packages listed under <a class="foswikiCurrentTopicLink" href="#ReqSw">Required Software</a> (e.g. fftw, gsl, etc).
<p></p>
For the following it is assumed that <code>ROOT</code> shall be installed under <code>$HOME/Apps</code>. If you want to install it somewhere else, just systematically replace the related terms of the following description. For the following list of commands the '$' will be given, the command prompt. Do <strong>not</strong> enter it! Also some comments will be added starting with a '#' which can be omitted. They are only there to explain what is going on.
<pre class="bash">
@ -274,24 +293,28 @@ For the following it is assumed that <code>ROOT</code> shall be installed under
&#36; git clone http://root.cern.ch/git/root.git
&#36; cd root
&#36; git tag -l
&#36; # git tag -l will list all available tags. In the next command choose the tag v5-34-xx
&#36; # where xx is the highest listed number, e.g. v5-34-32
&#36; git checkout -b v5-34-32 v5-34-32
&#36; # git tag -l will list all available tags. In the next command choose the tag v6-08-04 or the latest official release number
&#36; git checkout -b v6-08-04 v6-08-04
&#36; # now ROOT is ready to be configured. Below you will find the minimal ROOT configuration needed.
&#36; ./configure --gminimal --enable-asimage --enable-mathmore --enable-minuit2 --enable-xml
&#36; # since we are using cmake build now, first we will need to create the build directory.
&#36; mkdir root&#95;build
&#36; cd root&#95;build
&#36; cmake ../ -Dgminimal&#61;ON -Dasimage&#61;ON -Dmathmore&#61;On -Dminuit2&#61;ON -Dxml&#61;ON -DCMAKE&#95;INSTALL&#95;PREFIX&#61;../root&#95;exec
&#36; # next will be the make. If running on a multicore CPU you can speed up tremendously by calling
&#36; # make with the option -j &#60;number&#62;, where &#60;number&#62; is the number of threads which you want to give,
&#36; # e.g. make -j8
&#36; make
&#36; # as a last step of the ROOT build process we need to install it
&#36; make install
</pre>
<p></p>
What is still missing is that the system should be told where to find the <code>ROOT</code> installation, therefore the following is suggested: <ul>
<li> As superuser create a file <strong>/etc/ld.so.conf.d/cern-root.conf</strong> where the path to the <code>lib</code> directory of <code>ROOT</code> is added and call <strong>/sbin/ldconfig</strong> afterwards. In the example mentioned above one way of doing this is (<strong>&lt;home&gt;</strong> has to be the path to your home, e.g. /home/luke_skywalker): <pre class="bash">
&#36; echo &#34;&#60;home&#62;/Apps/root/lib&#34; &#62;&#62; /etc/ld.so.conf.d/cern-root.conf
&#36; echo &#34;&#60;home&#62;/Apps/root/root&#95;exec/lib&#34; &#62;&#62; /etc/ld.so.conf.d/cern-root.conf
&#36; /sbin/ldconfig
</pre>
</li> <li> <span class='foswikiRedFG'>Additionally</span>, as normal user one should append the following lines to the <strong>~/.bashrc</strong> and/or <strong>~/.bash_profile</strong> (<strong>~./profile</strong> on Debian like systems, and then either restart the shell or call the same commands once more from the shell) in order to change some path-setting environment variables: <pre class="bash">
&#36; export ROOTSYS&#61;&#36;HOME/Apps/root
&#36; export ROOTSYS&#61;&#36;HOME/Apps/root/root&#95;exec
&#36; export PATH&#61;&#36;ROOTSYS/bin:&#36;PATH
</pre>
</li></ul>
@ -299,6 +322,7 @@ What is still missing is that the system should be told where to find the <code>
If an update of <code>ROOT</code> is needed, simple do the following:<pre class="bash">
&#36; cd &#36;HOME/Apps/root
&#36; git pull
&#36; cd root&#95;build
&#36; make
</pre>
<p></p>
@ -308,17 +332,23 @@ When all required software has been set up it can be proceeded with the <code>mu
<pre class="bash">
&#36; cd &#36;HOME/Apps
&#36; git clone https://bitbucket.org/muonspin/musrfit.git
&#36; # Only if legacy ROOT 5.xx.yy is used include the next line
&#36; cd musrfit; git checkout root5
</pre>
or
<pre class="bash">
&#36; cd &#36;HOME/Apps
&#36; git clone git://gitlab.psi.ch/nemu/musrfit.git
&#36; # Only if legacy ROOT 5.xx.yy is used include the next line
&#36; cd musrfit; git checkout root5
</pre>
<p></p>
<strong>Note:</strong> musrfit has moved from svn to git. In case you still have an <em>old</em> svn version of musrfit, it is advised to remove it first. For svn users: for a smooth transition from svn to git, please check the following link:
<strong>Note 1:</strong> <code>musrfit</code> has moved from svn to git. In case you still have an <em>old</em> svn version of musrfit, it is advised to remove it first. For svn users: for a smooth transition from svn to git, please check the following link:
<a href="http://www.git-tower.com/blog/git-for-subversion-users-cheat-sheet/">Git for Subversion Users - A Cheat Sheet</a>.
<p></p>
If a local repository clone is already present, one can update it using:
<strong>Note 2:</strong> after cloning the <code>musrfit</code> repo you will automatically be on the root6 branch. If you want to get legacy ROOT 5.34.xx support, you will needed to switch branches first.
<p></p>
If a local repository clone is already present (it needs to be newer than Dec. 2016), one can update it using:
<pre class="bash">
&#36; cd &#36;HOME/Apps/musrfit
&#36; git pull
@ -341,6 +371,7 @@ After the source-code extraction the <strong>autogen.sh</strong> script is calle
</dd> <dt> --with-nexus </dt><dd> Set the prefix of the <code>NeXus</code> installation, e.g. /usr/local (<em>only useful in conjunction with the <code>NeXus</code> support</em>)
</dd> <dt> --with-qt3 </dt><dd> Set the prefix of the <code>Qt3</code> installation, e.g. /usr/lib/qt-3.3 (<em>only useful in conjunction with building <code>musrgui</code></em>)
</dd> <dt> --with-qt4 </dt><dd> Set the prefix of the <code>Qt4</code> installation, e.g. /usr/lib/qt47 (<em>only useful in conjunction with building <code>musredit</code></em>)
</dd> <dt> --with-qt5 </dt><dd> Set the prefix of the <code>Qt5</code> installation, e.g. /usr/lib64 (<em>only useful in conjunction with building <code>musredit</code></em>)
</dd> <dt> --enable-NeXus </dt><dd> Enable the support of <code>NeXus</code> data files (<em>requires the <code>HDF4</code>, <code>HDF5</code> and <code>NeXus</code> libraries to be installed</em>).
</dd> <dt> --disable-editor </dt><dd> Disable the integrated building of <code>musredit</code>/<code>musrgui</code>.
</dd> <dt> --disable-omp </dt><dd> Switches off the <a href="http://en.wikipedia.org/wiki/OpenMP">OpenMP</a> features of <code>musrfit</code> (parallelization of the &chi;<sup>2</sup> calculation when compiled with GCC &ge; 4.2)
@ -404,7 +435,10 @@ Notes
<h1 id="A_4_MS_Windows"> 4 MS Windows </h1>
<span class='foswikiRedFG'> The description here is only for the very brave ones. It hasn't been tested for quite a while and therefore gives you rather a flavour of what needs to be done rather than a real instruction how to setup <code>musrfit</code>. If you just need <code>musrfit</code> to work on a MS Windows platform, it is recommended to install it via a linux virtual machine!</span>
<p></p>
Under Windows a native installation is not supported but there is the possibility to run <code>musrfit</code> through <a href="http://www.cygwin.com/">Cygwin</a> which has the great advantage that one gains additionally various nice <code>UNIX</code> tools also for other purposes <img class='smily' src='../pub/Main/SmiliesPluginPSI_/wink.gif' alt='wink' title='wink' /> <br>
<span class='foswikiBlueFG'> For adventurous guys using Windows 10, there is the possibility to activate the built in Ubuntu bash-shell. It allows to install <code>musrfit</code> as described in the Linux section.
</span>
<p></p>
Under Windows a native installation is not supported but there is the possibility to run <code>musrfit</code> through <a href="http://www.cygwin.com/">Cygwin</a> which has the great advantage that one gains additionally various nice <code>UNIX</code> tools also for other purposes <img class='smily' src='../pub/Main/SmiliesPluginPSI/wink.gif' alt='wink' title='wink' /> <br>
<span class='foswikiRedFG'>Please also be aware of the fact that the X server which is going to be installed with Cygwin has to be started (e.g. by selecting it from the "Programs" folder) before any graphical application (<code>musrview</code>, <code>musrgui</code>, etc.) is run</span>.
<p></p>
<span class='foswikiPinkFG'>One more advice: Please never try to install either <code>ROOT</code> or <code>musrfit</code> from or to a directory containing spaces in the absolute path or in case you do, do not wonder if some errors occur!<br>
@ -528,6 +562,7 @@ After the source-code extraction the <strong>autogen.sh</strong> script is calle
</dd> <dt> --with-nexus </dt><dd> Set the prefix of the <code>NeXus</code> installation, e.g. /usr/local (<em>only useful in conjunction with the <code>NeXus</code> support</em>)
</dd> <dt> --with-qt3 </dt><dd> Set the prefix of the <code>Qt3</code> installation, e.g. /usr/lib/qt-3.3 (<em>only useful in conjunction with building <code>musrgui</code></em>)
</dd> <dt> --with-qt4 </dt><dd> Set the prefix of the <code>Qt4</code> installation, e.g. /usr/lib/qt47 (<em>only useful in conjunction with building <code>musredit</code></em>)
</dd> <dt> --with-qt5 </dt><dd> Set the prefix of the <code>Qt5</code> installation, e.g. /usr/lib/qt56 (<em>only useful in conjunction with building <code>musredit</code></em>)
</dd> <dt> --enable-NeXus </dt><dd> Enable the support of <code>NeXus</code> data files (<em>requires the <code>HDF4</code>, <code>HDF5</code> and <code>NeXus</code> libraries to be installed</em>).
</dd> <dt> --disable-editor </dt><dd> Disable the integrated building of <code>musredit</code>/<code>musrgui</code>.
</dd> <dt> --disable-omp </dt><dd> Switches off the <a href="http://en.wikipedia.org/wiki/OpenMP">OpenMP</a> features of <code>musrfit</code> (parallelization of the &chi;<sup>2</sup> calculation when compiled with GCC &ge; 4.2)
@ -636,23 +671,23 @@ With <code><b>qt4-mac</b></code>, <code>musredit</code> will be installed. If it
<p></p>
<span class='foswikiRedFG'>Only if</span> <code>musrfit</code> should support reading data files in the <code>NeXus</code> format the further <a class="foswikiCurrentTopicLink" href="#ReqSwNeXus">required</a> packages are set up:
<pre class="bash">
&#36; sudo port -v install jpeg6b hdf4 hdf5
&#36; sudo port -v install hdf4 hdf5
</pre>
Unfortunately, the <code>minixml</code> and <code>NeXus</code> libraries have to be compiled and installed directly from the source code. Given the respective version numbers of <strong>2.9</strong> and <strong>4.4.2</strong> (which are subject to change with time, <strong>Only <code><b>NeXus</b></code> Version &gt;= 4.4 is support!</strong>) this can be achieved for example by:
<pre class="bash">
&#36; cd
&#36; curl www.msweet.org/files/project3/mxml-2.9.tar.gz -G &#124; tar xz
&#36; cd mxml-2.9
&#36; # get and instal Mini-XML
&#36; cd &#36;HOME/Applications
&#36; git clone https://github.com/michaelrsweet/mxml.git
&#36; cd mxml
&#36; ./configure --prefix&#61;/usr/local
&#36; make
&#36; sudo make install
&#36; cd &#36;HOME/Downloads
&#36; # create a directory for the NeXus source code
&#36; mkdir nexus
&#36; cd nexus
&#36; # get and install NeXus
&#36; cd &#36;HOME/Applications
&#36; # get the source code from the master repository
&#36; git clone https://github.com/nexusformat/code.git
&#36; git clone https://github.com/nexusformat/code.git nexus/code
&#36; # next we will build NeXus out-of-source
&#36; cd nexus
&#36; mkdir build
&#36; cd build
&#36; cmake -DENABLE&#95;HDF5&#61;1 -DENABLE&#95;HDF4&#61;1 -DENABLE&#95;MXML&#61;1 ../code
@ -660,29 +695,33 @@ Unfortunately, the <code>minixml</code> and <code>NeXus</code> libraries have to
&#36; sudo make install
</pre>
<h3 id="A_5.1.3_61_61ROOT_61_61"> 5.1.3 <code><b>ROOT</b></code> </h3>
ROOT 5.34/xx is supported as legacy version only! <strong>The default now will be ROOT 6.xx/yy!</strong>
<p></p>
The best way to get <code>ROOT</code> exactly the way needed for <code>musrfit</code> is to install it from source. Before describing it, please make sure that you have installed all required packages listed under <a class="foswikiCurrentTopicLink" href="#ReqSw">Requested Software</a> (e.g. fftw, gsl, etc).
<p></p>
For the following it is assumed that <code>ROOT</code> shall be installed under <code>$HOME/Apps</code>. If you want to install it somewhere else, just systematically replace the related terms of the following description. For the following list of commands the '$' will be given, the command prompt. Do <strong>not</strong> enter it! Also some comments will be added starting with a '#' which can be omitted. They are only there to explain what is going on.
For the following it is assumed that <code>ROOT</code> shall be installed under <code>$HOME/Applications</code>. If you want to install it somewhere else, just systematically replace the related terms of the following description. For the following list of commands the '$' will be given, the command prompt. Do <strong>not</strong> enter it! Also some comments will be added starting with a '#' which can be omitted. They are only there to explain what is going on.
<pre class="bash">
&#36; cd &#36;HOME
&#36; # creat the Apps directory if not already present
&#36; mkdir Apps
&#36; cd Apps
&#36; cd &#36;HOME/Applications
&#36; git clone http://root.cern.ch/git/root.git
&#36; cd root
&#36; git tag -l
&#36; # git tag -l will list all available tags. In the next command choose the tag v5-34-xx
&#36; # where xx is the highest listed number, e.g. v5-34-32
&#36; git checkout -b v5-34-32 v5-34-32
&#36; # git tag -l will list all available tags. In the next command choose the tag v6-08-xx
&#36; # where xx is the highest listed number, e.g. v6-08-06
&#36; git checkout -b v6-08-06 v6-08-06
&#36; # now ROOT is ready to be configured. Below you will find the minimal ROOT configuration needed.
&#36; ./configure --gminimal --enable-asimage --enable-mathmore --enable-minuit2 --enable-xml
&#36; # We will use the cmake out-of-source approach here.
&#36; mkdir root&#95;build
&#36; cd root&#95;build
&#36; cmake ../ -Dgminimal&#61;ON -Dasimage&#61;ON -Dmathmore&#61;ON -Dminuit2&#61;ON -Dxml&#61;ON -DCMAKE&#95;INSTALL&#95;PREFIX&#61;&#36;HOME/Applications/root/root&#95;exec
&#36; # next will be the make. If running on a multicore CPU you can speed up tremendously by calling
&#36; # make with the option -j &#60;number&#62;, where &#60;number&#62; is the number of threads which you want to give,
&#36; # e.g. make -j8
&#36; make
&#36; # make will take quite a while
&#36; make install
</pre>
<p></p>
For further details see <a href="http://root.cern.ch/drupal/content/installing-root-source">Installing ROOT from Source</a>.
For further details see <a href="https://root.cern.ch/building-root">Installing ROOT from Source</a>.
<p></p>
Since Apple in its wisdom decided that programs started from a shell are treated differently than apps if it is coming to system variables, we need to work harder compared to a Linux system.
<p></p>
@ -695,11 +734,11 @@ In order to finalize the <code>ROOT</code> installation and to prepare already t
&#60;plist version&#61;&#34;1.0&#34;&#62;
&#60;dict&#62;
&#60;key&#62;MUSRFITPATH&#60;/key&#62;
&#60;string&#62;&#36;HOME/Apps/root/bin&#60;/string&#62; (where to find the musrfit executables)
&#60;string&#62;&#36;HOME/Applications/root/root&#95;exec/bin&#60;/string&#62; (where to find the musrfit executables)
&#60;key&#62;QTDIR&#60;/key&#62;
&#60;string&#62;/opt/local/lib/qt3mac&#60;/string&#62; (where to find Qt3 (for musrgui) or Qt4 (for musredit))
&#60;string&#62;/opt/local/lib/qt3mac&#60;/string&#62; (where to find Qt3 (for musrgui) or Qt4 (for musredit))
&#60;key&#62;ROOTSYS&#60;/key&#62;
&#60;string&#62;&#36;HOME/Apps/root&#60;/string&#62; (where to find the ROOT system)
&#60;string&#62;&#36;HOME/Applications/root/root&#95;exec&#60;/string&#62; (where to find the ROOT system)
&#60;/dict&#62;
&#60;/plist&#62;
</pre>
@ -708,7 +747,7 @@ In order to finalize the <code>ROOT</code> installation and to prepare already t
<p></p>
One needs to add some system variables in <strong>~/.profile</strong>:
<pre class="bash">
export ROOTSYS&#61;&#36;HOME/Apps/root
export ROOTSYS&#61;&#36;HOME/Applications/root/root&#95;exec
launchctl setenv ROOTSYS &#36;ROOTSYS
export MUSRFITPATH&#61;&#36;ROOTSYS/bin
launchctl setenv MUSRFITPATH &#36;MUSRFITPATH
@ -761,16 +800,21 @@ where <strong>x_yy_z</strong> has to be substituted by the correct version numbe
<p></p>
Unfortunately, the <code>minixml</code> and <code>NeXus</code> libraries have to be compiled and installed directly from the source code. Given the respective version numbers of <strong>2.9</strong> and <strong>4.3.2</strong> (which are subject to change with time) this can be achieved for example by:
<pre class="bash">
&#36; cd
&#36; curl www.msweet.org/files/project3/mxml-2.9.tar.gz -G &#124; tar xz
&#36; cd mxml-2.9
&#36; # first build Mini-XML
&#36; cd &#36;HOME/Applications
&#36; git clone https://github.com/michaelrsweet/mxml.git
&#36; cd mxml
&#36; ./configure --prefix&#61;/usr/local
&#36; make
&#36; sudo make install
&#36; # second build NeXus
&#36; cd ..
&#36; curl http://download.nexusformat.org/kits/nexus-4.3.2-20140413svn1919.tar.gz -G &#124; tar xz
&#36; cd nexus-4.3.2-20140413svn1919
&#36; ./configure --prefix&#61;/usr/local
&#36; git clone https://github.com/nexusformat/code.git nexus/code
&#36; cd nexus
&#36; # build NeXus out-of-source
&#36; mkdir build
&#36; cd build
&#36; cmake ../code -DENABLE&#95;HDF4&#61;1 -DENABLE&#95;HDF5&#61;1 -DENABLE&#95;MXML&#61;1
&#36; make
&#36; sudo make install
</pre>
@ -778,24 +822,25 @@ Unfortunately, the <code>minixml</code> and <code>NeXus</code> libraries have to
<h3 id="A_5.2.3_61_61ROOT_61_61"> 5.2.3 <code><b>ROOT</b></code> </h3>
The best way to get <code>ROOT</code> exactly the way needed for <code>musrfit</code> is to install it from source. Before describing it, please make sure that you have installed all required packages listed under <a class="foswikiCurrentTopicLink" href="#ReqSw">Requested Software</a> (e.g. fftw, gsl, etc).
<p></p>
For the following it is assumed that <code>ROOT</code> shall be installed under <code>$HOME/Apps</code>. If you want to install it somewhere else, just systematically replace the related terms of the following description. For the following list of commands the '$' will be given, the command prompt. Do <strong>not</strong> enter it! Also some comments will be added starting with a '#' which can be omitted. They are only there to explain what is going on.
For the following it is assumed that <code>ROOT</code> shall be installed under <code>$HOME/Applications</code>. If you want to install it somewhere else, just systematically replace the related terms of the following description. For the following list of commands the '$' will be given, the command prompt. Do <strong>not</strong> enter it! Also some comments will be added starting with a '#' which can be omitted. They are only there to explain what is going on.
<pre class="bash">
&#36; cd &#36;HOME
&#36; # creat the Apps directory if not already present
&#36; mkdir Apps
&#36; cd Apps
&#36; cd &#36;HOME/Applications
&#36; git clone http://root.cern.ch/git/root.git
&#36; cd root
&#36; git tag -l
&#36; # git tag -l will list all available tags. In the next command choose the tag v5-34-xx
&#36; # where xx is the highest listed number, e.g. v5-34-32
&#36; git checkout -b v5-34-32 v5-34-32
&#36; # git tag -l will list all available tags. In the next command choose the tag v6-08-06
&#36; # where xx is the highest listed number, e.g. v6-08-06
&#36; git checkout -b v6-08-06 v6-08-06
&#36; # now ROOT is ready to be configured. Below you will find the minimal ROOT configuration needed.
&#36; ./configure --gminimal --enable-asimage --enable-mathmore --enable-minuit2 --enable-xml
&#36; # the out-of-source approach will be followed
&#36; mkdir root&#95;build
&#36; cd root&#95;build
&#36; cmake ../ -Dgminimal&#61;ON -Dasimage&#61;ON -Dmathmore&#61;ON -Dminuit2&#61;ON -Dxml&#61;ON -DCMAKE&#95;INSTALL&#95;PREFIX&#61;&#36;HOME/Applications/root/root&#95;exec
&#36; # next will be the make. If running on a multicore CPU you can speed up tremendously by calling
&#36; # make with the option -j &#60;number&#62;, where &#60;number&#62; is the number of threads which you want to give,
&#36; # e.g. make -j8
&#36; make
&#36; make install
</pre>
<p></p>
For further details see <a href="http://root.cern.ch/drupal/content/installing-root-source">Installing ROOT from Source</a>.
@ -811,11 +856,11 @@ In order to finalize the <code>ROOT</code> installation and to prepare already t
&#60;plist version&#61;&#34;1.0&#34;&#62;
&#60;dict&#62;
&#60;key&#62;MUSRFITPATH&#60;/key&#62;
&#60;string&#62;&#36;HOME/Apps/root/bin&#60;/string&#62; (where to find the musrfit executables)
&#60;string&#62;&#36;HOME/Applications/root/root&#95;exec/bin&#60;/string&#62; (where to find the musrfit executables)
&#60;key&#62;QTDIR&#60;/key&#62;
&#60;string&#62;/opt/local/lib/qt3mac&#60;/string&#62; (where to find Qt3 (for musrgui) or Qt4 (for musredit))
&#60;string&#62;/opt/local/lib/qt3mac&#60;/string&#62; (where to find Qt3 (for musrgui) or Qt4 (for musredit))
&#60;key&#62;ROOTSYS&#60;/key&#62;
&#60;string&#62;&#36;HOME/Apps/root&#60;/string&#62; (where to find the ROOT system)
&#60;string&#62;&#36;HOME/Applications/root/root&#95;exec&#60;/string&#62; (where to find the ROOT system)
&#60;/dict&#62;
&#60;/plist&#62;
</pre>
@ -824,23 +869,27 @@ In order to finalize the <code>ROOT</code> installation and to prepare already t
<p></p>
One needs to add some system variables in <strong>~/.profile</strong>:
<pre class="bash">
export ROOTSYS&#61;&#36;HOME/Apps/root
export ROOTSYS&#61;&#36;HOME/Applications/root/root&#95;exec
launchctl setenv ROOTSYS &#36;ROOTSYS
export MUSRFITPATH&#61;&#36;ROOTSYS/bin
launchctl setenv MUSRFITPATH &#36;MUSRFITPATH
export PATH&#61;&#36;ROOTSYS/bin:&#36;QTDIR/bin:&#36;PATH
</pre>
<h2 id="A_5.3_61_61musrfit_61_61"> 5.3 <code><b>musrfit</b></code> </h2>
First, the most recent source code should be downloaded. First, the most recent source code should be downloaded. The preferred way of doing so is to clone the musrfit repository via git. Assuming the code should be located in ~/Apps/musrfit this is achieved most easily calling from the terminal
First, the most recent source code should be downloaded. First, the most recent source code should be downloaded. The preferred way of doing so is to clone the musrfit repository via git. Assuming the code should be located in ~/Applications/musrfit this is achieved most easily calling from the terminal
<p></p>
<pre class="bash">
&#36; cd ~/Apps
&#36; cd ~/Applications
&#36; git clone https://bitbucket.org/muonspin/musrfit.git
&#36; # Only if legacy ROOT 5.xx.yy is used include the next line
&#36; cd musrfit; git checkout root5
</pre>
or
<pre class="bash">
&#36; cd ~/Apps
&#36; cd ~/Applications
&#36; git clone git://gitlab.psi.ch/nemu/musrfit.git
&#36; # Only if legacy ROOT 5.xx.yy is used include the next line
&#36; cd musrfit; git checkout root5
</pre>
<p></p>
<p></p>
@ -849,7 +898,7 @@ or
<p></p>
If a local repository clone is already present, one can update it using:
<pre class="bash">
&#36; cd ~/Apps/musrfit
&#36; cd ~/Applications/musrfit
&#36; git pull
</pre>
<p></p>
@ -867,6 +916,7 @@ After the source-code extraction the <strong>autogen.sh</strong> script is calle
</dd> <dt> --with-nexus </dt><dd> Set the prefix of the <code>NeXus</code> installation, e.g. /usr/local (<em>only useful in conjunction with the <code>NeXus</code> support</em>)
</dd> <dt> --with-qt3 </dt><dd> Set the prefix of the <code>Qt3</code> installation, e.g. /opt/local/lib/qt-3.3 (<em>only useful in conjunction with building <code>musrgui</code></em>)
</dd> <dt> --with-qt4 </dt><dd> Set the prefix of the <code>Qt4</code> installation, e.g. /opt/local/lib/qt-4.7 (<em>only useful in conjunction with building <code>musredit</code></em>)
</dd> <dt> --with-qt5 </dt><dd> Set the prefix of the <code>Qt5</code> installation, e.g. /opt/local/libexec/qt5 (<em>only useful in conjunction with building <code>musredit</code></em>)
</dd> <dt> --enable-NeXus </dt><dd> Enable the support of <code>NeXus</code> data files (<em>requires the <code>HDF4</code>, <code>HDF5</code> and <code>NeXus</code> libraries to be installed</em>).
</dd> <dt> --disable-editor </dt><dd> Disable the integrated building of <code>musredit</code>/<code>musrgui</code>.
</dd> <dt> --disable-omp </dt><dd> Switches off the <a href="http://en.wikipedia.org/wiki/OpenMP">OpenMP</a> features of <code>musrfit</code> (parallelization of the &chi;<sup>2</sup> calculation when compiled with GCC &ge; 4.2)
@ -931,7 +981,7 @@ Notes
In order to perform a quick test for finding out if the installation has been completed successfully, a few msr files together with the corresponding data files can be found in the <code>musrfit</code> source tree at <strong>doc/examples/</strong>.<br>
If <code>musrgui</code> has been installed, just open one of the <strong>test-&#42;.msr</strong> files in the editor and test the <code>musrfit</code> functionalities. Otherwise, if only the terminal should be used, as an initial test for instance the following could be done:
<pre class="bash">
&#36; cd ~/Apps/musrfit/doc/examples
&#36; cd ~/Applications/musrfit/doc/examples
&#36; musrview test-histo-ROOT-NPP.msr
</pre>
<p></p>
@ -940,7 +990,7 @@ If <code>musrgui</code> has been installed, just open one of the <strong>test-&#
<p></p>
</div>
<div class="patternInfo">This topic: MUSR<span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span><a class="foswikiCurrentWebHomeLink" href="WebHome.html">WebHome</a> &gt; <a href="MusrFit.html">MusrFit</a><span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span>MusrFitSetup <br />
Topic revision: <span class='patternRevInfo'>25 Aug 2016, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
Topic revision: <span class='patternRevInfo'>27 Mar 2017, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
</div>
</div>
</div>
@ -958,6 +1008,5 @@ Topic revision: <span class='patternRevInfo'>25 Aug 2016, <a href="https://intr
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitSetup?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:02 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrFitSetup?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:39 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/MusrGui?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:59 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrGui?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:33 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: MusrGui</title>
@ -14,14 +14,11 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrGui?t=1481904043" type="application/x-wiki" title="edit MusrGui" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrGui?t=1494785296" type="application/x-wiki" title="edit MusrGui" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<style class='head TABLEPLUGIN_default' type="text/css" media="all">
body .foswikiTable {border-width:1px}
body .foswikiTable .tableSortIcon img {padding-left:.3em; vertical-align:text-bottom}
@ -54,8 +51,10 @@ body .foswikiTable#tableMusrGui1 th.foswikiSortedCol {background-color:#eeeeee}
body .foswikiTable#tableMusrGui1 tr.foswikiTableRowdataBg0 td {background-color:#ffffff}
body .foswikiTable#tableMusrGui1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {background-color:#f5f5f5}
</style><!--TABLEPLUGIN_specific-->
<link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -143,11 +142,11 @@ body .foswikiTable#tableMusrGui1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::CHILI-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::TWISTY-->
<!--JQUERYPLUGIN::COMMENT--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--JQUERYPLUGIN::TWISTY--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -158,7 +157,7 @@ body .foswikiTable#tableMusrGui1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {
<div id="patternMain">
<div id="patternMainContents">
<div class="patternContent"><div class="foswikiTopic">
<h1 id="A_61_61musredit_47_40musrgui_41_61_61"> <code><b>musredit / (musrgui)</b></code> </h1>
<h1 id="A_61_61musredit_47_40musrgui_41_61_61"> <code><b>musredit / (musrgui)</b></code> </h1>
<p></p>
<div class="foswikiToc" id="foswikiTOC"> <ul>
<li> <a href="MusrGui.html#A_61_61musredit_47_40musrgui_41_61_61"> musredit / (musrgui) </a>
@ -168,14 +167,23 @@ body .foswikiTable#tableMusrGui1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {
</li> <li> <a href="MusrGui.html#A_2.2_musredit_startup.xml_47_musrgui_startup.xml"> 2.2 musredit_startup.xml / musrgui_startup.xml </a>
</li></ul>
</li> <li> <a href="MusrGui.html#A_3_61_61musrfit_61_61_Features"> 3 musrfit Features </a>
</li> <li> <a href="MusrGui.html#A_4_Editor_Features"> 4 Editor Features </a>
</li> <li> <a href="MusrGui.html#A_5_Bugtracking"> 5 Bugtracking </a>
</li> <li> <a href="MusrGui.html#A_4_musrWiz"> 4 musrWiz </a> <ul>
<li> <a href="MusrGui.html#A_4.1_musrWiz_45_Introduction"> 4.1 musrWiz - Introduction </a>
</li> <li> <a href="MusrGui.html#A_4.2_musrWiz_45_Theory"> 4.2 musrWiz - Theory </a>
</li> <li> <a href="MusrGui.html#A_4.3_musrWiz_45_Functions"> 4.3 musrWiz - Functions </a>
</li> <li> <a href="MusrGui.html#A_4.4_musrWiz_45_Maps"> 4.4 musrWiz - Maps </a>
</li> <li> <a href="MusrGui.html#A_4.5_musrWiz_45_Fit_Parameters"> 4.5 musrWiz - Fit Parameters </a>
</li> <li> <a href="MusrGui.html#A_4.6_musrWiz_45_Fit_Info"> 4.6 musrWiz - Fit Info </a>
</li> <li> <a href="MusrGui.html#A_4.7_musrWiz_45_Create"> 4.7 musrWiz - Create </a>
</li></ul>
</li> <li> <a href="MusrGui.html#A_5_musrStep"> 5 musrStep </a>
</li> <li> <a href="MusrGui.html#A_6_Bugtracking"> 6 Bugtracking </a>
</li></ul>
</div>
<p></p>
<h1 id="A_1_Introduction"> 1 Introduction </h1>
<code>musredit</code> and <code>musrgui</code> are editors which also provide a graphical user interface to the programs contained in the <code><a href="MusrFit.html">musrfit</a></code> suite and are intended to help the user handle <code>musrfit</code> msr files. They are implemented in <code>C++</code> and use the <a href="http://qt.nokia.com/">Qt</a> framework. Principally, <code>musrgui</code> and <code>musredit</code> are doing the same, but are based on different Qt versions. <code>musrgui</code> is based on Qt 3.x and will only be maintained on bug-fixing level since the Qt 3.x licensing is less straight forward than the Qt 4.x one. <code>musredit</code> is based on Qt 4.6 (or above) and this is the program which will be developed further.<br>
On this documentation page only the features related to <code>musrfit</code> are described&mdash;the basic editor functions which should be self-explanatory are not.
<code>musredit</code> and <code>musrgui</code> are editors which also provide a graphical user interface to the programs contained in the <code><a href="MusrFit.html">musrfit</a></code> suite and are intended to help the user handle <code>musrfit</code> msr files. They are implemented in <code>C++</code> and use the <a href="http://qt.nokia.com/">Qt</a> framework. Principally, <code>musrgui</code> and <code>musredit</code> are doing the same, but are based on different Qt versions. <code>musrgui</code> is based on Qt 3.x and will only be maintained on bug-fixing level since the Qt 3.x licensing is less straight forward than the Qt 4.x one. <code>musredit</code> is based on Qt 4.6 or Qt 5.6 (or above). The Qt 5.6 version of <code>musredit</code> will be actively developed, whereas the Qt 4.x version will only get bug fixing and eventually will be droped.<br>
On this documentation page only the features related to <code>musrfit</code> are described&mdash;the basic editor functions which should be self-explanatory are not.<br>
<strong><span class='foswikiRedFG'>Before going on using <code>musrgui</code> / <code>musredit</code> it is strongly recommended to read the <a href="MusrFit.html">manual</a> of <code>musrfit</code> first!</span></strong>
<p></p>
<h1 id="A_2_Available_Executables_44_Configuration_Files_and_their_Basic_Usage"> 2 Available Executables, Configuration Files and their Basic Usage </h1>
@ -196,9 +204,16 @@ If called without any parameters an empty editor window opens.
In this file the following XML tags are allowed to define settings and might proof useful for all users of <code>musredit</code> / <code>musrgui</code>: <dl>
<dt> &lt;general&gt;&lt;/general&gt; </dt><dd> set the default paths to executables and files in this environment <dl>
<dt> &lt;exec_path&gt;PATH_TO_EXEC&lt;/exec_path&gt; </dt><dd> set the path <strong>PATH_TO_EXEC</strong> where the executables <code>musrfit</code>, <code>musrview</code>, <code>musrt0</code>, etc. can be found (inside the &lt;general&gt; environment)
</dd> <dt> &lt;default_save_path&gt;SAV_PATH&lt;/default_save_path&gt; </dt><dd> specify the path <strong>SAV_PATH</strong> where <code>musrgui</code> / <code>musredit</code> point by default when opening and saving msr files (inside the &lt;general&gt; environment)
</dd> <dt> &lt;default_save_path&gt;SAV_PATH&lt;/default_save_path&gt; </dt><dd> specify the path <strong>SAV_PATH</strong> where <code>musrgui</code> / <code>musredit</code> point by default when opening and saving msr files (inside the &lt;general&gt; environment). Default is the current directory.
</dd> <dt> &lt;msr_default_file_path&gt;MSR_DEF_PATH&lt;/msr_default_file_path&gt; </dt><dd> set the path <strong>MSR_DEF_PATH</strong> where the <a class="foswikiCurrentTopicLink" href="#MusrfitFeatures">default msr files provided by</a> <code>musrgui</code> are stored (inside the &lt;general&gt; environment)
</dd> <dt> &lt;timeout&gt;3600&lt;/timeout&gt; </dt><dd> timeout in seconds after which musrview canvas will automatically quit. A value of 0 or a negative number will keep the musrview canvas open without self-determination.
</dd> <dt> &lt;keep_minuit2_output&gt;y/n&lt;/keep_minuit2_output&gt; </dt><dd> flag indicating if the <code>MINUIT2</code> output shall be kept per msr-file ('y') or only for the current msr-file ('n').
</dd> <dt> &lt;dump_ascii&gt;y/n&lt;/dump_ascii&gt; </dt><dd> flag indicating if musrfit shall dump fit data into ascii format. See help of musrfit.
</dd> <dt> &lt;dump_root&gt;y/n&lt;/dump_root&gt; </dt><dd> flag indicating if musrfit shall dump fit data into root format. See help of musrfit.
</dd> <dt> &lt;title_from_data_file&gt;y/n&lt;/title_from_data_file&gt; </dt><dd> specify if <code>musrfit</code> should be called with the <a href="MusrFit.html#MusrFit">-t option</a> by default (inside the &lt;general&gt; environment)
</dd> <dt> &lt;chisq_pre_run_block&gt;y/n&lt;/chisq_pre_run_block&gt; </dt><dd> flag indicating if per-run chisq shall be written into the msr-output-file. $ &lt;estimate_n0&gt;y/n&lt;/estimate_n0&gt; flag indicating if for a single histogram fit N0 shall be estimated before the fit procedure starts.
</dd> <dt> &lt;musrview_show_fourier&gt;y/n&lt;/musrview_show_fourier&gt; </dt><dd> flag indicating if musrview will directly present the Fourier transform rather than the time domain data.
</dd> <dt> &lt;musrview_show_avg&gt;y/n&lt;/musrview_show_avg&gt; </dt><dd> flag indicating if musrview will directly present averaged data, typically used for Fourier power spectra.
</dd> <dt> &lt;enable_musrt0&gt;y/n&lt;/enable_musrt0&gt; </dt><dd> specify if <code><a href="MusrFit.html#MusrT0">musrt0</a></code> can be called from within <code>musrgui</code> / <code>musredit</code> (inside the &lt;general&gt; environment)
</dd></dl>
</dd> <dt> &lt;font_settings&gt;&lt;/font_settings&gt; </dt><dd> set the default font in this environment <dl>
@ -308,45 +323,167 @@ An example of the <code><b>musrgui_startup.xml</b></code> looks like:
<p></p>
<span id="MusrfitFeatures"></span>
<h1 id="A_3_61_61musrfit_61_61_Features"> 3 <code><b>musrfit</b></code> Features </h1>
The features of <code>musrfit</code> which can be accessed by the graphical front ends <code>musrgui</code> / <code>musredit</code> are described in the following. All functions can either be called by choosing them from the MusrFit menu, by clicking the respective button in the MusrFit bar, or by using a keyboard shortcut.
The features of <code>musrfit</code> which can be accessed by the graphical front ends <code>musredit</code> / (<code>musrgui</code>) are described in the following. All functions can either be called by choosing them from the MusrFit menu, by clicking the respective button in the MusrFit bar, or by using a keyboard shortcut.
<p></p>
$ <img alt="musrasym.png" src="../pub/MUSR/MusrGui/musrasym.png" /> Asymmetry Default (Alt+a): Generate a full msr file suitable for the <a href="MusrFit.html#FitTypes">fit type</a> <strong>2</strong> of <code>musrfit</code> from defaults. Calling this function opens a window where the relative path and file name to a data file as well as the file format that should be used have to be specified. For instance if the data file <code><b>/path-to-datadir/2007/lem07_his_8472.root</b></code> should be used and <code><b>/path-to-datadir</b></code> is on the path where <code>musrfit</code> <a href="MusrFit.html#PathToDataFiles">looks for data files</a> then the file name would be <code><b>2007/lem07_his_8472</b></code> and the file format either <strong>ROOT-NPP</strong> or <strong>ROOT-PPC</strong>.
<img alt="musrWiz-32x32.png" src="../pub/MUSR/MusrGui/musrWiz-32x32.png" /> musrWiz is a helper programs which allows to create a msr-file from scratch without too much a priori knowledge. For details see <a class="foswikiCurrentTopicLink" href="#MusrWiz">musrWiz</a>.
<p></p>
$ <img alt="musrsinglehisto.png" src="../pub/MUSR/MusrGui/musrsinglehisto.png" /> Single-Histogram Default (Alt+h): Generate a full msr file suitable for the <a href="MusrFit.html#FitTypes">fit type</a> <strong>0</strong> of <code>musrfit</code> from defaults. Calling this function opens a window where the relative path and file name to a data file as well as the file format that should be used have to be specified. For instance if the data file <code><b>/path-to-datadir/d2007/deltat_pta_gps_8472.bin</b></code> should be used and <code><b>/path-to-datadir</b></code> is on the path where <code>musrfit</code> <a href="MusrFit.html#PathToDataFiles">looks for data files</a> then the file name would be <code><b>d2007/deltat_pta_gps_8472</b></code> and the file format <strong>PSI-BIN</strong>.
<img alt="musrchisq-plain.png" src="../pub/MUSR/MusrGui/musrchisq-plain.png" /> Calculate Chisq (Alt+c): <pre class="bash">musrfit &#60;msr&#95;file&#62; --chisq-only</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. For further information refer to the <a href="MusrFit.html#MusrFit">manual</a> of <code>musrfit</code>.
<p></p>
$ <img alt="musrcalcchisq.png" src="../pub/MUSR/MusrGui/musrcalcchisq.png" /> Calculate Chisq (Alt+c): <pre class="bash">musrfit &#60;msr&#95;file&#62; --chisq-only</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. For further information refer to the <a href="MusrFit.html#MusrFit">manual</a> of <code>musrfit</code>.
<img alt="musrfit-plain.png" src="../pub/MUSR/MusrGui/musrfit-plain.png" /> Fit (Alt+f): <pre class="bash">musrfit &#60;msr&#95;file&#62; &#91;optional parameters&#93;</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. The optional parameters may be chosen under <a class="foswikiCurrentTopicLink" href="#MusrPrefs">Preferences</a>. For further information refer to the <a href="MusrFit.html#MusrFit">manual</a> of <code>musrfit</code>.
<p></p>
$ <img alt="musrfit.png" src="../pub/MUSR/MusrGui/musrfit.png" /> Fit (Alt+f): <pre class="bash">musrfit &#60;msr&#95;file&#62; &#91;optional parameters&#93;</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. The optional parameters may be chosen under <a class="foswikiCurrentTopicLink" href="#MusrPrefs">Preferences</a>. For further information refer to the <a href="MusrFit.html#MusrFit">manual</a> of <code>musrfit</code>.
<img alt="musrswap-plain.png" src="../pub/MUSR/MusrGui/musrswap-plain.png" /> Swap Msr &#8596; Mlog (Alt+s): Swap the msr and mlog files. E.g., for a file called <code><b>8472_zf.msr</b></code>, this is copied to <code><b>8472_zf.mlog</b></code> and vice versa.
<p></p>
$ <img alt="musrswap.png" src="../pub/MUSR/MusrGui/musrswap.png" /> Swap Msr &#8596; Mlog (Alt+s): Swap the msr and mlog files. E.g., for a file called <code><b>8472_zf.msr</b></code>, this is copied to <code><b>8472_zf.mlog</b></code> and vice versa.
<img alt="musrStep-32x32.png" src="../pub/MUSR/MusrGui/musrStep-32x32.png" /> musrStep
<p></p>
$ <img alt="musrmsr2data.png" src="../pub/MUSR/MusrGui/musrmsr2data.png" /> Msr2data (Alt+m): Opens a graphical interface to the <code>msr2data</code> program described in detail in its own <a href="Msr2Data.html#MusrGuiInterface">manual</a>.
<img alt="msr2data-plain.png" src="../pub/MUSR/MusrGui/msr2data-plain.png" /> Msr2data (Alt+m): Opens a graphical interface to the <code>msr2data</code> program described in detail in its own <a href="Msr2Data.html#MusrGuiInterface">manual</a>.
<p></p>
$ <img alt="musrview.png" src="../pub/MUSR/MusrGui/musrview.png" /> View (Alt+v): <pre class="bash">musrview &#60;msr&#95;file&#62;</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. For further information refer to the <a href="MusrFit.html#MusrView">manual</a> of <code>musrfit</code>.
<img alt="musrview-plain.png" src="../pub/MUSR/MusrGui/musrview-plain.png" /> View (Alt+v): <pre class="bash">musrview &#60;msr&#95;file&#62;</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. For further information refer to the <a href="MusrFit.html#MusrView">manual</a> of <code>musrfit</code>.
<p></p>
$ <img alt="musrt0.png" src="../pub/MUSR/MusrGui/musrt0.png" /> T0 (Alt+t): <pre class="bash">musrt0 &#60;msr&#95;file&#62;</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. For further information refer to the <a href="MusrFit.html#MusrT0">manual</a> of <code>musrfit</code>.
<img alt="musrt0-plain.png" src="../pub/MUSR/MusrGui/musrt0-plain.png" /> T0 (Alt+t): <pre class="bash">musrt0 &#60;msr&#95;file&#62;</pre> is called for the <strong>&lt;msr_file&gt;</strong> selected in the editor. For further information refer to the <a href="MusrFit.html#MusrT0">manual</a> of <code>musrfit</code>.
<p></p>
$ <img alt="musrFT.png" src="../pub/MUSR/MusrGui/musrFT.png" /> Raw Fourier: <code>musrFT &lt;with-many-options&gt;</code> is called. For a proper documentation of it, check the <a href="MusrFit.html#MusrFT">manual</a> of <code>musrFT</code>.
<img alt="musrFT-plain.png" src="../pub/MUSR/MusrGui/musrFT-plain.png" /> Raw Fourier: <code>musrFT &lt;with-many-options&gt;</code> is called. For a proper documentation of it, check the <a href="MusrFit.html#MusrFT">manual</a> of <code>musrFT</code>.
<p></p>
<span id="MusrPrefs"></span>
$ <img alt="musrprefs.png" src="../pub/MUSR/MusrGui/musrprefs.png" /> Preferences (Alt+p): Opens a window in which the optional parameters that should be passed to <code>musrfit</code> can be chosen. These options are <code><b>--keep-mn2-output</b></code>, <code><b>--dump ascii</b></code>, <code><b>--dump root</b></code>, and <code><b>--title-from-data-file</b></code>. For further information refer to the <a href="MusrFit.html#MusrFit">manual</a> of <code>musrfit</code>. Additionally, the access to <code>musrt0</code> can be enabled temporarily.
<img alt="musrprefs-plain.png" src="../pub/MUSR/MusrGui/musrprefs-plain.png" /> Preferences (Alt+p): Opens a window in which the optional parameters that should be passed to <code>musrfit</code> can be chosen. These options are <code><b>--keep-mn2-output</b></code>, <code><b>--dump ascii</b></code>, <code><b>--dump root</b></code>, and <code><b>--title-from-data-file</b></code>. For further information refer to the <a href="MusrFit.html#MusrFit">manual</a> of <code>musrfit</code>. Additionally, the access to <code>musrt0</code> can be enabled temporarily.
<p></p>
$ <img alt="musrdump.png" src="../pub/MUSR/MusrGui/musrdump.png" /> Dump Header: Opens a file dialog which allows to select a &mu;SR data file. When this file can be read, the run header info is dumped into a dialog window. Essentially this calls <code><b>dump_header</b></code> internally.
<img alt="musrdump-plain.png" src="../pub/MUSR/MusrGui/musrdump-plain.png" /> Dump Header: Opens a file dialog which allows to select a &mu;SR data file. When this file can be read, the run header info is dumped into a dialog window. Essentially this calls <code><b>dump_header</b></code> internally.
<p></p>
<span id="EditorFeatures"></span>
<h1 id="A_4_Editor_Features"> 4 Editor Features </h1>
Besides the functions described above and which are mostly interfacing <code>musrfit/msr2data</code> the editors of <code>musrgui</code> / <code>musredit</code> offer various functions for manipulating especially <code>musrfit</code> msr files:
<img class='imagePlain imagePlain_right ' src='../pub/MUSR/MusrGui/igp_4e5811420d6b5b31cac70e88b8477a14_musrgui-editor-v0.png' alt='musrgui editor features' title='musrgui-editor-v0.png' width='415' height='566' style='' /> <ul>
<li> Upon right-clicking an open msr file a menu as shown to the right is displayed which offers the addition of any valid msr file block or theory function. In case a simple theory function is chosen, the function will be inserted into the THEORY block using the <a href="MusrFit.html#TheoryTable">correct syntax</a>. If one chooses to add a whole block to the file a dialog opens in which the necessary information for each block as described in the <a href="MusrFit.html#DescriptionOfTheMsrFileFormat">manual</a> of <code>musrfit</code> can be supplied. <span class='foswikiBlueFG'>This feature is available only in <code>musrgui</code>. In <code>musredit</code> the respective functions can be accessed through the <em>Edit</em> menu.</span>
</li> <li> In order to comment or uncomment lines in a msr file select the according lines and apply <strong>Edit &rarr; (Un)Comment</strong> or use the keyboard shortcut <strong>Ctrl+(Shift)+m</strong>.
</li></ul>
<span id="MusrWiz"></span>
<h1 id="A_4_musrWiz"> 4 musrWiz </h1>
<p></p>
musrWiz is a helper program which allows to easily create the necessary msr-file needed as the input for musrfit. musrWiz is still in it's early stage; not all options are already implemented and here and there you will likely find some bugs.
From musredit it can be accessed via the MusrFit menu or the wand
<p></p>
<img alt="musredit-main_0.png" src="../pub/MUSR/MusrGui/musredit-main_0.png" />
<p></p>
The musrWiz GUI is organized in a couple of different dialogues which some information needs to be provided by the user. In the following these different dialogues will be discussed briefly.
<p></p>
<span id="MusrWizIntroduction"></span>
<h2 id="A_4.1_musrWiz_45_Introduction"> 4.1 musrWiz - Introduction </h2>
<p></p>
The introduction dialogue
<p></p>
<img alt="musrWiz-Introduction_0.png" src="../pub/MUSR/MusrGui/musrWiz-Introduction_0.png" />
<p></p> <ol>
<li> an explicit msr-file name can be provided here. More often the msr-file name is generated out of the run number.
</li> <li> year of the run data.
</li> <li> run number. If no explicit msr-file is provided, the run number together with fit type and type of measurement will be used to generate the msr-file name.
</li> <li> from the pull down menu the institute (for which a necessary xml-file is provided) has to be choosen.
</li> <li> from the pull down menu the the instrument can be chosen.
</li> <li> the fit type has to be chosen. Possible fit types are: <code>Single Histo</code> / <code>Single Histo RRF</code> / <code>Asymmetry</code> / <code>Asymmetry RRF</code> / <code>Mu Minus</code> / <code>None muSR</code>
</li> <li> type of measurement is essentially needed for the grouping of the detectors. Possible are: <code>ZF</code> for zero field measurements / <code>TF</code> for transverse field measurements / <code>LF</code> for longitudinal field measurements. Depending on the choice and instrument some additional question might be asked, e.g. which magnet has been used.
</li> <li> T0's: this last menu defines from where to get the t0's. The options are: ' <code>from data file</code> ', i.e. the t0 are assumed to be correctly set in the provided data file ' <code>call musrT0</code> ', i.e. after the msr-file is generated, musrt0 will be called which allows the user to find the proper t0 from the prompt peak ' <code>enter here</code> ' will provide a pop-up menu where the t0 parameter can be given explicitly.
</li></ol>
<p></p>
If all this information have been provided ' <code>Next&gt;</code> ' will lead you the the theory dialogue.
<p></p>
<span id="MusrWizTheory"></span>
<h2 id="A_4.2_musrWiz_45_Theory"> 4.2 musrWiz - Theory </h2>
<p></p>
The theory dialogue is used to define the fitting function. There are two ways of using it: <ol>
<li> choose a template theory function. This option has the advantage that the next steps will be very easy because within the template almost everything is already pre-defined. The disadvantage is that you are not free in setting up your theory function as you would like to have.
</li> <li> freely write your theory function. The advantage here is that you can customize your theory function as you would like to have it. This will come at the cost that you also will need to define maps, functions, etc. yourself. The good thing though is that at the very end you can save this as a template for future re-use.
</li></ol>
<p></p>
First the template path will be described. The theory dialogue looks like this
<p></p>
<img alt="musrWiz-Theory-1_0.png" src="../pub/MUSR/MusrGui/musrWiz-Theory-1_0.png" />
<p></p> <ol>
<li> This is a text edit field were you can enter the theory fit function as you would like to have it.
</li> <li> The ' <code>Clear All</code> ' button will clear whatever you entered in the text field above
</li> <li> This pull-down menu allows to select a theory function which will be added to the text field above by pressing the ' <code>Add</code> ' button. Pre defined theory function starting with a 'T' are templates rather than only theory function strings.
</li> <li> The ' <code>Add</code> ' button is used to add the chosen theory function / template from the pull-down menu to its left.
</li> <li> The ' <code>Check</code> ' button is used to make a syntactical check of whatever is written in the text edit field.
</li></ol>
<p></p>
Let's assume you would like to chose a template of an exponentially damped cosine (likely a TF measurement with dilute nuclear damping), do the following: Select ' <code>T: 1 [exp x cos](TF)</code> ' from the pull-down menu and than press the ' <code>Add</code> ' button. You will see that the theory fit function will be entered in the text edit field. After this just press the ' <code>Next&gt;</code> ' button which will bring you to <code>Functions</code> dialogue.
<p></p>
<span id="MusrWizFunctions"></span>
<h2 id="A_4.3_musrWiz_45_Functions"> 4.3 musrWiz - Functions </h2>
<p></p>
In the <code>Functions</code> dialogue all the necessary functions can be entered. A function operates <strong>only</strong> on fitting parameters. This is different to the theory function which operates on the fitting parameters <strong>and</strong> the time.
The dialogue looks like this
<p></p>
<img alt="musrWiz-Functions-1_0.png" src="../pub/MUSR/MusrGui/musrWiz-Functions-1_0.png" />
<p></p> <ol>
<li> a text edit field in which the various needed functions can be entered. In case a template theory is used, the appropriate function should be shown here and <strong>no</strong> editing will be needed here.
</li> <li> pressing ' <code>Show Theory</code> ' button will pop-up a little window showing the previously entered theory function. This is handy when defining its own theory, i.e. not working with a template.
</li></ol>
<p></p>
<img alt="musrWiz-Functions-2_0.png" src="../pub/MUSR/MusrGui/musrWiz-Functions-2_0.png" />
<p></p>
<span id="MusrWizMaps"></span>
<h2 id="A_4.4_musrWiz_45_Maps"> 4.4 musrWiz - Maps </h2>
<p></p>
<img alt="musrWiz-Maps-1_0.png" src="../pub/MUSR/MusrGui/musrWiz-Maps-1_0.png" />
<p></p>
The map dialogue will list the maps previously used in the theory and functions blocks/dialogues before. Again, if a template is used, nothing needs to be entered here.
<p></p> <ol>
<li> The ' <code>Show Theory</code> ' button allows to show the currently defined theory and the functions.
</li></ol>
<p></p>
<span id="MusrWizFitParameters"></span>
<h2 id="A_4.5_musrWiz_45_Fit_Parameters"> 4.5 musrWiz - Fit Parameters </h2>
<p></p>
<img alt="musrWiz-FitParameters-1_0.png" src="../pub/MUSR/MusrGui/musrWiz-FitParameters-1_0.png" />
<p></p> <ol>
<li> The ' <code>Show Theory</code> ' button allows to show the currently defined theory and the functions.
</li></ol>
<p></p>
In the fit parameter dialogue all parameter names can be defined. Furthermore the starting values for the parameters, the step (initial step size for the parameter fit), and any boundaries can be defined here.
<p></p>
<span id="MusrWizFitInfo"></span>
<h2 id="A_4.6_musrWiz_45_Fit_Info"> 4.6 musrWiz - Fit Info </h2>
<p></p>
<img alt="musrWiz-FitInfo-1_0.png" src="../pub/MUSR/MusrGui/musrWiz-FitInfo-1_0.png" />
<p></p> <ol>
<li> allows to define the time fit range (start time, end time).
</li> <li> packing defines how many bins of the original data shall be combined (added, also called re-binning).
</li> <li> In this text field to fitting commands are given (see the <code>MINUIT</code> and <code>musrfit</code> manual for details).
</li></ol>
<p></p>
<span id="MusrWizCreate"></span>
<h2 id="A_4.7_musrWiz_45_Create"> 4.7 musrWiz - Create </h2>
<p></p>
<img alt="musrWiz-Create-1_0.png" src="../pub/MUSR/MusrGui/musrWiz-Create-1_0.png" />
<p></p> <ol>
<li> shows the path where the msr-file will be saved. If you would like to save it somewhere else press the ' <code>Save As (msr-file path)</code> button.
</li> <li> pressing this button will allow you to find the path where to save the msr-file.
</li> <li> pressing this button will save to current configuration as a template for future re-use.
</li></ol>
<p></p>
<span id="MusrStep"></span>
<h1 id="A_5_musrStep"> 5 musrStep </h1>
<p></p>
musrStep is a little helper program which allows to reset the initial step size. This sometimes comes very handy if working on an instrument with many detectors after a fit slightly went wrong leaving you with a far too small initial step size for further iterations. To edit all the steps individually is tedious and error prone. Here musrStep can help.
<p></p>
<img alt="musrStep_0_0.png" src="../pub/MUSR/MusrGui/musrStep_0_0.png" />
<p></p>
When invoking musrStep the above dialogue will popup <ol>
<li> shows the relevant parts of the <code>FITPARAMETER</code> block. The only editable column is <code>step</code>.
</li> <li> ' <code>Check Specific</code> ' will popup a dialogue where a template string can be entered, e.g. <code>Asym</code>. As a result all fit parameters containing the template string will be selected.
</li> <li> ' <code>Check All</code> ' will select <em>all</em> fit parameters.
</li> <li> ' <code>Uncheck All</code> ' will unselect <em>all</em> fir parameters.
</li> <li> ' <code>Modify Automatic</code> ' will change all the step values automatically. It basically sets all the step sizes to 1% of the corresponding fit parameter value, except the phases where the step will be set to a value of 5 degrees.
</li> <li> ' <code>Modify Selected</code> ' will start the dialogue shown beneath. Follow the description there.
</li> <li> ' <code>Save&amp;Quit</code> ' will save the current step values, close the dialogue and reload the modified msr-file.
</li> <li> ' <code>Cancel</code> ' will cancel the musrStep dialogue without modifying anything.
</li></ol>
<p></p>
<img alt="musrStep_1_0.png" src="../pub/MUSR/MusrGui/musrStep_1_0.png" />
<p></p>
When clicking on ' <code>Modify Selected</code> ' the above dialogue will be presented. It allows to manipulate all selected fir parameter step values according to the following rules <ol>
<li> ' <code>Scale by Factor</code> ' will scale the step value by the factor given in the field (2). If the ' <code>Absolute Value</code> ' check box is selected, rather than scaling the factor value will be used to modify the step value.
</li> <li> Scaling factor or absolute value to modify the step values of the selected fit parameters.
</li> <li> checking the ' <code>Absolute Value</code> ' check box will change the meaning from <code>Scale by Factor</code> to <code>Copy Factor Value</code>.
</li> <li> ' <code>Scale Automatically</code> ' will modify the step values of the selected fit parameters according to the rules described before.
</li> <li> ' <code>Cancel</code> ' will cancel the dialogue.
</li></ol>
<p></p>
<span id="BugTracking"></span>
<h1 id="A_5_Bugtracking"> 5 Bugtracking </h1>
<h1 id="A_6_Bugtracking"> 6 Bugtracking </h1>
<p></p>
For reporting bugs or requesting new features and improvements please use the <a href="https://bitbucket.org/muonspin/musrfit/issues">Bitbucket Tracker</a>, <a href="https://tracker.psi.ch/jira/browse/MUSR/">PSI Tracker</a> (PSI account needed) or send an e-mail to A. Suter.
<p></p>
-- <a href="http://www.psi.ch/low-energy-muons/people">AS</a> &amp; <a href="http://www.fsf.org/register_form?referrer=8369">BMW</a></div>
For reporting bugs or requesting new features and improvements please use the <a href="https://bitbucket.org/muonspin/musrfit/issues">Bitbucket Tracker</a>, <a href="https://tracker.psi.ch/jira/browse/MUSR/">PSI Tracker</a> (PSI account needed) or send an e-mail to A. Suter.</div>
<p></p>
<p></p>
<br class="imageClear" clear="all"/><div class="foswikiAttachments">
@ -376,7 +513,7 @@ For reporting bugs or requesting new features and improvements please use the <a
</tbody></table>
</div></div></div></div>
<div class="patternInfo">This topic: MUSR<span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span><a class="foswikiCurrentWebHomeLink" href="WebHome.html">WebHome</a> &gt; <a href="MusrFit.html">MusrFit</a><span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span>MusrGui <br />
Topic revision: <span class='patternRevInfo'>19 Feb 2015, suter_a</span></div>
Topic revision: <span class='patternRevInfo'>14 May 2017, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
</div>
</div>
</div>
@ -394,6 +531,5 @@ Topic revision: <span class='patternRevInfo'>19 Feb 2015, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/MusrGui?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:01 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrGui?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:38 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/MusrRoot?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:46 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrRoot?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:20 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: MusrRoot</title>
@ -14,11 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrRoot?t=1481904041" type="application/x-wiki" title="edit MusrRoot" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/MusrRoot?t=1494785293" type="application/x-wiki" title="edit MusrRoot" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<style class='head TABLEPLUGIN_default' type="text/css" media="all">
body .foswikiTable {border-width:1px}
body .foswikiTable .tableSortIcon img {padding-left:.3em; vertical-align:text-bottom}
@ -51,11 +54,8 @@ body .foswikiTable#tableMusrRoot7 th.foswikiSortedCol {background-color:#eeeeee}
body .foswikiTable#tableMusrRoot7 tr.foswikiTableRowdataBg0 td {background-color:#ffffff}
body .foswikiTable#tableMusrRoot7 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {background-color:#f5f5f5}
</style><!--TABLEPLUGIN_specific-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -136,18 +136,18 @@ body .foswikiTable#tableMusrRoot7 tr.foswikiTableRowdataBg0 td.foswikiSortedCol
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--JavascriptFiles/foswikiPref-->
<!--JQUERYPLUGIN::TWISTY-->
<!--PatternSkin/pattern-->
<!--JQUERYPLUGIN::METADATA-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::TWISTY-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::CHILI--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<!--JQUERYPLUGIN::CHILI-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
<span id="PageTop"></span><div class="foswikiPage"><div id="patternScreen">
@ -1125,6 +1125,5 @@ Topic revision: <span class='patternRevInfo'>29 Mar 2012, suter_a</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/MusrRoot?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:51 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/MusrRoot?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:26 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/QuickStart?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:58 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/QuickStart?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:33 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: QuickStart</title>
@ -14,14 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/QuickStart?t=1481904043" type="application/x-wiki" title="edit QuickStart" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/QuickStart?t=1494785296" type="application/x-wiki" title="edit QuickStart" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -104,11 +104,11 @@
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiForm-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
@ -285,6 +285,5 @@ Topic revision: <span class='patternRevInfo'>10 Jul 2011, wojek</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/QuickStart?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:59 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/QuickStart?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:33 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/TutorialSingleHisto?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:55 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/TutorialSingleHisto?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:30 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: TutorialSingleHisto</title>
@ -14,10 +14,10 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/TutorialSingleHisto?t=1481904042" type="application/x-wiki" title="edit TutorialSingleHisto" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/TutorialSingleHisto?t=1494785295" type="application/x-wiki" title="edit TutorialSingleHisto" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><style class='head TABLEPLUGIN_default' type="text/css" media="all">
body .foswikiTable {border-width:1px}
body .foswikiTable .tableSortIcon img {padding-left:.3em; vertical-align:text-bottom}
@ -32,8 +32,6 @@ body .foswikiTable tr.foswikiTableRowdataBg0 td.foswikiSortedCol {background-col
body .foswikiTable tr.foswikiTableRowdataBg1 td {background-color:#f7f7f6}
body .foswikiTable tr.foswikiTableRowdataBg1 td.foswikiSortedCol {background-color:#f0f0ee}
</style><!--TABLEPLUGIN_default-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<style class='head TABLEPLUGIN_specific' type="text/css" media="all">
body .foswikiTable#tableTutorialSingleHisto1 td {vertical-align:middle; vertical-align:top}
body .foswikiTable#tableTutorialSingleHisto1 td.foswikiTableCol0 {text-align:left}
@ -52,10 +50,12 @@ body .foswikiTable#tableTutorialSingleHisto1 th.foswikiSortedCol {background-col
body .foswikiTable#tableTutorialSingleHisto1 tr.foswikiTableRowdataBg0 td {background-color:#ffffff}
body .foswikiTable#tableTutorialSingleHisto1 tr.foswikiTableRowdataBg0 td.foswikiSortedCol {background-color:#f5f5f5}
</style><!--TABLEPLUGIN_specific-->
<link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<link class='head IMAGEPLUGIN' rel="stylesheet" href="../pub/System/ImagePlugin/style.css" type="text/css" media="all" /><!--IMAGEPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head JQUERYPLUGIN::TWISTY' rel='stylesheet' href='../pub/System/TwistyPlugin/twisty327a.css?version=1.6.0' type='text/css' media='all' /><!--JQUERYPLUGIN::TWISTY: requires= missing ids: JavascriptFiles/foswikiPref-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -138,12 +138,12 @@ body .foswikiTable#tableTutorialSingleHisto1 tr.foswikiTableRowdataBg0 td.foswik
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JQUERYPLUGIN::TWISTY-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JavascriptFiles/foswikiForm-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
@ -270,7 +270,7 @@ STATISTIC --- 2011-07-09 10:58:44
</li></ul>
<p></p>
<h1 id="A_2_Determine_t0_and_the_data_range_using_61musrt0_61"> 2 Determine <i>t</i><sub>0</sub> and the data range using <code>musrt0</code> </h1>
Before the given model can be fitted to the data, the data ranges and time zeros of the different RUN blocks have to be set correctly. This can be achieved using <code><a href="MusrFit.html#MusrT0">musrt0</a></code>. Starting this program by selecting the <img alt="musrt0.png" src="../pub/MUSR/MusrGui/musrt0.png" /> button in <code>musredit</code> or calling from a terminal <pre>musrt0 3110&#95;tutorial.msr</pre> opens an interactive window plotting the data of the first RUN block:<br />
Before the given model can be fitted to the data, the data ranges and time zeros of the different RUN blocks have to be set correctly. This can be achieved using <code><a href="MusrFit.html#MusrT0">musrt0</a></code>. Starting this program by selecting the <img alt="musrt0.png" src="../pub/MUSR/MusrGui/musrt0.html" /> button in <code>musredit</code> or calling from a terminal <pre>musrt0 3110&#95;tutorial.msr</pre> opens an interactive window plotting the data of the first RUN block:<br />
<img class='imagePlain imagePlain_center ' src='../pub/MUSR/TutorialSingleHisto/musrt0-1.png' alt='musrt0-1' title='musrt0-1.png' width='708' height='529' style='' /><br />
The green line (at bin 1) represents time zero, the blue lines the start (at bin 1) and end (at bin 8000) of the data range and the optional red lines give the limits of the background range (if the background shall not be determined by the fit). All lines can be either dragged to reasonable locations or set by pressing the corresponding keyboard shortcuts. In the example the time zero can be set by pressing <strong>T</strong> (which moves the green line to the bin containing the maximum number of counts), the start of the data range should be set to about five bins later by zooming into the graph around bin 250 and pressing <strong>d</strong> when the cursor is found at a suitable location:<br />
<img class='imagePlain imagePlain_center ' src='../pub/MUSR/TutorialSingleHisto/igp_9c0f9b31d4414f37be0d3d171836fe63_musrt0-2.png' alt='musrt0-2' title='musrt0-2.png' width='688' height='529' style='' /><br />
@ -278,7 +278,7 @@ After all lines have been adjusted for the first histogram, one can go on to the
A full description of <code>musrt0</code> can be found <a href="MusrFit.html#MusrT0">here</a>.
<p></p>
<h1 id="A_3_Fit_the_model_to_the_data_using_61musrfit_61"> 3 Fit the model to the data using <code>musrfit</code> </h1>
Now that the basics of the <code>msr</code> file have been introduced and the necessary adjustments have been done one can proceed with fitting the specified model to the data. This is done by selecting the <img alt="musrfit.png" src="../pub/MUSR/MusrGui/musrfit.png" /> button in <code>musredit</code> or calling from a terminal <pre>musrfit 3110&#95;tutorial.msr</pre>
Now that the basics of the <code>msr</code> file have been introduced and the necessary adjustments have been done one can proceed with fitting the specified model to the data. This is done by selecting the <img alt="musrfit.png" src="../pub/MUSR/MusrGui/musrfit.html" /> button in <code>musredit</code> or calling from a terminal <pre>musrfit 3110&#95;tutorial.msr</pre>
<p></p>
After the fitting procedure has finished the <code>msr</code> file is updated and contains the newly determined values of the fit parameters.
<p></p>
@ -298,7 +298,7 @@ Assuming the successive runs <strong>3111</strong> through <strong>3114</strong>
From the terminal this would be done as follows:<pre>
msr2data 3110 3114 &#95;tutorial fit-3110 -o tutorial-T-dependence.dat data
</pre>
To achieve the same in <code>musredit</code> one selects <img alt="musrmsr2data.png" src="../pub/MUSR/MusrGui/musrmsr2data.png" /> and fills the form accordingly:<br />
To achieve the same in <code>musredit</code> one selects <img alt="musrmsr2data.png" src="../pub/MUSR/MusrGui/musrmsr2data.html" /> and fills the form accordingly:<br />
<img class='imagePlain imagePlain_center ' src='../pub/MUSR/TutorialSingleHisto/msr2data.png' alt='msr2data' title='msr2data.png' width='612' height='605' style='' />
<p></p>
<h1 id="A_6_Further_reading"> 6 Further reading </h1>
@ -401,6 +401,5 @@ Topic revision: <span class='patternRevInfo'>02 Sep 2011, wojek</span></div>
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/TutorialSingleHisto?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:00:58 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/TutorialSingleHisto?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:08:33 GMT -->
</html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en">
<!-- Mirrored from intranet.psi.ch/MUSR/WebHome?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:33 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/WebHome?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:10 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<link rel="stylesheet" href="../pub/System/HeadlinesPlugin/style.css" type="text/css" media="all" />
<title> MUSR :: MUSR</title>
@ -14,14 +14,14 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link rel="icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../pub/Main/WebPreferences/favicon.ico" type="image/x-icon" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/WebHome?t=1481904045" type="application/x-wiki" title="edit WebHome" />
<link rel="alternate" href="https://intranet.psi.ch/wiki/bin/edit/MUSR/WebHome?t=1494785300" type="application/x-wiki" title="edit WebHome" />
<meta name="TEXT_NUM_TOPICS" content="Number of topics:" />
<meta name="TEXT_MODIFY_SEARCH" content="Modify search" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRsshtml.html" />
<meta name="robots" content="noindex" /><link rel="alternate" type="application/rss+xml" title="RSS Feed" href="WebRss" />
<base /><!--[if IE]></base><![endif]--><link class='head CLASSIFICATIONPLUGIN::CSS' rel="stylesheet" href="../pub/System/ClassificationPlugin/styles.css" media="all" /><!--CLASSIFICATIONPLUGIN::CSS-->
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
<link class='head JQUERYPLUGIN::COMMENT' rel='stylesheet' href='../pub/System/CommentPlugin/commentf5b6.css?version=3.0' type='text/css' media='all' /><!--JQUERYPLUGIN::COMMENT-->
<link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<link class='head SMILIESPLUGIN' rel='stylesheet' href='../pub/System/SmiliesPlugin/smilies.css' type='text/css' media='all' /><!--SMILIESPLUGIN--><link rel='stylesheet' href='../pub/System/SkinTemplates/base.css' media='all' type='text/css' />
<style type="text/css" media="all">
@import url('../pub/System/PatternSkinTheme/layout.css');
@import url('../pub/System/PatternSkinTheme2009/style.css');
@ -101,14 +101,14 @@
<!--<![endif]-->
<!--JQUERYPLUGIN-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JQUERYPLUGIN::LIVEQUERY-->
<!--JQUERYPLUGIN::FOSWIKI-->
<!--JQUERYPLUGIN::MIGRATE-->
<!--JavascriptFiles/foswikiString-->
<!--JavascriptFiles/foswikiPref-->
<!--JavascriptFiles/foswikiForm-->
<!--JQUERYPLUGIN::FOSWIKI::PREFERENCES-->
<!--JQUERYPLUGIN::COMMENT-->
<!--JavascriptFiles/foswikiForm-->
<!--PatternSkin/pattern--><link class='head FOOTNOTEPLUGIN_LINKCSS' rel="stylesheet" href="../pub/System/FootNotePlugin/styles.css" type="text/css" media="all" /><!--FOOTNOTEPLUGIN_LINKCSS-->
</head>
<body class="foswikiNoJs patternViewPage patternPrintPage">
@ -122,12 +122,12 @@
<div class="patternContent"><div class="foswikiTopic"> <h1 id="Welcome_to_the_MUSR_web"> Welcome to the MUSR web </h1>
<p></p>
<h2 id="Documentation_of_the_SR_data_analysis_suite_61musrfit_61"> Documentation of the &#956;SR data analysis suite <code>musrfit</code> </h2> <ul>
<li> <a href="CiteMusrFit.html">How to cite <code>musrfit</code>? <img class='smily' src='../pub/Main/SmiliesPluginPSI_/yes.gif' alt='yes' title='yes' /> </a>
<li> <a href="CiteMusrFit.html">How to cite <code>musrfit</code>? <img class='smily' src='../pub/Main/SmiliesPluginPSI/yes.gif' alt='yes' title='yes' /> </a>
</li> <li> <a href="TutorialSingleHisto.html">Single-histogram-fit tutorial for <code>musrfit</code> introducing the basic features of the programs and <code>msr</code> files</a>
</li> <li> <a href="MusrFit.html">User manual of the &#956;SR data analysis software <code>musrfit</code> </a>
</li> <li> <a href="MusrFitSetup.html">Setting up <code>musrfit</code> on Different Platforms</a>
</li> <li> <a href="MusrFitSetup.html">Setting up <code>musrfit</code> on Different Platforms <img src="../pub/System/DocumentGraphics/new.png" alt="NEW" title="NEW" width="30" height="16" /> <strong><span class='foswikiRedFG'>ROOT6!</span></strong></a>
</li> <li> <a href="QuickStart.html">Quick start page for <code>WKM</code> users</a>
</li> <li> <a href="MusrGui.html">Documentation of <code>musrgui</code>/<code>musredit</code>&mdash;editors interfacing <code>musrfit</code> </a>
</li> <li> <a href="MusrGui.html">Documentation of <code>musrgui</code>/<code>musredit</code>&mdash;editors interfacing <code>musrfit</code> <img src="../pub/System/DocumentGraphics/updated.png" alt="UPDATED" title="UPDATED" width="55" height="16" /></a>
</li> <li> <a href="Msr2Data.html">Documentation of <code>msr2data</code>&mdash;a program for automatically processing multiple musrfit <code>msr</code> files</a>
</li> <li> <a href="MusrFit.html#Any2Many"><code>any2many</code>&mdash;a universal &#956;SR-file-format converter</a>
</li> <li> <a href="MusrRoot.html"><code>MusrRoot</code>: an extensible open file format for &#956;SR</a>
@ -138,12 +138,12 @@
</li> <li> <a href="MusrFitAcknowledgements.html">Acknowledgements</a>
</li></ul>
<p></p>
-- <a href="http://www.psi.ch/low-energy-muons/people">AS</a> &amp; (<a href="http://www.fsf.org/register_form?referrer=8369">BMW</a>) - last update Dec 15, 2016</div>
-- <a href="http://www.psi.ch/low-energy-muons/people">AS</a> &amp; (<a href="http://www.fsf.org/register_form?referrer=8369">BMW</a>) - last update May 14, 2017</div>
<p></p>
<p></p>
</div>
<div class="patternInfo">This topic: MUSR<span class='foswikiSeparator'>&nbsp;&gt;&nbsp;</span>WebHome <br />
Topic revision: <span class='patternRevInfo'>15 Dec 2016, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
Topic revision: <span class='patternRevInfo'>14 May 2017, <a href="https://intranet.psi.ch/Main/AndreasSuter">AndreasSuter</a></span></div>
</div>
</div>
</div>
@ -161,6 +161,5 @@ Topic revision: <span class='patternRevInfo'>15 Dec 2016, <a href="https://intr
</body>
<!-- Mirrored from intranet.psi.ch/MUSR/WebHome?cover=print by HTTrack Website Copier/3.x [XR&CO'2010], Fri, 16 Dec 2016 16:01:34 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!-- /Added by HTTrack -->
<!-- Mirrored from intranet.psi.ch/MUSR/WebHome?cover=print by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 14 May 2017 18:09:12 GMT -->
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

View File

@ -0,0 +1,2 @@
Ihr Aufruf ist nicht korrekt. <br>
Hier geht es zum <a href="https://intranet.psi.ch/">PSI Intranet</a>.

View File

@ -0,0 +1,2 @@
Ihr Aufruf ist nicht korrekt. <br>
Hier geht es zum <a href="https://intranet.psi.ch/">PSI Intranet</a>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

View File

@ -0,0 +1,2 @@
Ihr Aufruf ist nicht korrekt. <br>
Hier geht es zum <a href="https://intranet.psi.ch/">PSI Intranet</a>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

View File

@ -1,59 +0,0 @@
TITLE
###############################################################
FITPARAMETER
# Nr. Name Value Step Pos_Error Boundaries
1 alpha 0.989765 1.0 none 0 none
2 asy 0.26 0.1 none 0 0.33
3 phase 8.5 1.0 none
4 field 100.0 0.1 none 0 none
5 rate 0.36 0.02 none 0 100
###############################################################
THEORY
asymmetry 2
TFieldCos 3 fun1 (phase frequency)
simplExpo 5
###############################################################
FUNCTIONS
fun1 = par4 * gamma_mu
###############################################################
RUN lem07_his_0147 MUE4 PSI ROOT-NPP (name beamline institute data-file-format)
fittype 2 (asymmetry fit)
alpha 1
map 0 0 0 0 0 0 0 0 0 0
forward 1
backward 3
background 65000 66500 65000 66500
data 3413 63000 3413 63000
t0 3413 3413
fit 0.00 8.00 (fw bw)
packing 75
###############################################################
COMMANDS
SET BATCH
MINIMIZE
MINOS
SAVE
END RETURN
###############################################################
FOURIER
units Gauss # fourier in field units
fourier_power 12
apodization NONE # NONE, WEAK, MEDIUM, STRONG
plot power
phase 8.5
#range_for_phase_correction 50.0 70.0
range 0.0 200.0
###############################################################
PLOT 2 (asymmetry plot)
runs 1
range 0.00 8.00 -0.30 0.30
###############################################################
STATISTIC --- 2008-04-04 07:44:31
chisq = 569.50931, NDF = 542, chisq/NDF = 1.05075518

View File

@ -1,60 +0,0 @@
TITLE
###############################################################
FITPARAMETER
# Nr. Name Value Step Pos_Error Boundaries
1 Asy 0.26 0.01 none 0 0.33
2 Rate 0.36 0.01 none
3 Field 100.0 1.0 none 0 200
4 N0_L 150.0 0.01 none
5 Bkg_L 4.9 0.01 none
6 Phase_L 7.0 1.5 none -50 50
###############################################################
THEORY
asymmetry 1
simplExpo 2 (rate)
TFieldCos map1 fun1 (phase frequency)
###############################################################
FUNCTIONS
fun1 = par3 * gamma_mu
###############################################################
RUN lem07_his_0111 MUE4 PSI ROOT-NPP (name beamline institute data-file-format)
fittype 0 (single histogram fit)
norm 4
backgr.fit 5
lifetimecorrection
map 6 0 0 0 0 0 0 0 0 0
forward 1
data 3413 65000
t0 3413
fit 0.20 8.2
packing 50
###############################################################
COMMANDS
SET BATCH
MINIMIZE
MINOS
SAVE
END RETURN
###############################################################
PLOT 0 (single histo plot)
runs 1
range 0.00 7.00 -0.30 0.30
###############################################################
FOURIER
units Gauss # fourier in field units
fourier_power 12
apodization NONE # NONE, WEAK, MEDIUM, STRONG
plot power
phase 8.5
#range_for_phase_correction 50.0 70.0
range 0.0 200.0
###############################################################
STATISTIC --- 2008-06-09 14:09:39
chisq = 1446.93547, NDF = 1377, chisq/NDF = 1.05078829

View File

@ -2,7 +2,7 @@
BUILT_SOURCES = git-revision.h
git-revision.h : Makefile
echo \#define GIT_REVISION \"`git log -n 1 --pretty=format:"%ad - %h"`\" > include/git-revision.h
sh git_revision.sh ./include git-revision.h
if PNEXUS_ENABLED
PNEXUSDIRS = external/nexus

View File

@ -198,9 +198,9 @@ int main(int argc, char *argv[])
any2many_syntax();
else if (strstr(argv[1], "--v")) {
#ifdef HAVE_CONFIG_H
cout << endl << "any2many version: " << PACKAGE_VERSION << ", git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "any2many version: " << PACKAGE_VERSION << ", git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#else
cout << endl << "any2many git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "any2many git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#endif
} else {
any2many_syntax();

View File

@ -1343,6 +1343,8 @@ Bool_t PFitter::ExecuteMinos()
// the 2nd condition is from an all together unused variable
// the 3rd condition is a variable fixed via the FIX command
if ((fMnUserParams.Error(i) != 0.0) && (fRunInfo->ParameterInUse(i) != 0) && (!fMnUserParams.Parameters().at(i).IsFixed())) {
cout << ">> PFitter::ExecuteMinos(): calculate errors for " << fParams[i].fName << endl;
// 1-sigma MINOS errors
ROOT::Minuit2::MinosError err = minos.Minos(i);

View File

@ -1582,7 +1582,9 @@ void PMusrCanvas::ExportData(const Char_t *fileName)
switch (fPlotType) {
case MSR_PLOT_SINGLE_HISTO:
case MSR_PLOT_SINGLE_HISTO_RRF:
case MSR_PLOT_ASYM:
case MSR_PLOT_ASYM_RRF:
case MSR_PLOT_MU_MINUS:
if (fDifferenceView) { // difference view plot
switch (fCurrentPlotView) {
@ -4593,14 +4595,8 @@ void PMusrCanvas::PlotData(Bool_t unzoom)
dataYmax = GetMaximum(fData[i].data, dataXmin, dataXmax);
}
Double_t dd = 0.05*fabs(dataYmax-dataYmin);
if (!fMsrHandler->GetMsrPlotList()->at(fPlotNumber).fLogY) {
dataYmin -= dd;
dataYmax += dd;
} else {
if (dataYmin < 0)
dataYmin = 0.1;
dataYmax += dd;
}
dataYmin -= dd;
dataYmax += dd;
}
} else { // set the x-/y-range to the previous fHistoFrame range
dataXmin = xmin;
@ -4618,16 +4614,13 @@ void PMusrCanvas::PlotData(Bool_t unzoom)
dataYmax = GetMaximum(fData[i].data, dataXmin, dataXmax);
}
Double_t dd = 0.05*fabs(dataYmax-dataYmin);
if (!fMsrHandler->GetMsrPlotList()->at(fPlotNumber).fLogY) {
dataYmin -= dd;
dataYmax += dd;
} else {
if (dataYmin < 0)
dataYmin = 0.1;
dataYmax += dd;
}
dataYmin -= dd;
dataYmax += dd;
}
}
if (fMsrHandler->GetMsrPlotList()->at(fPlotNumber).fLogY) {
dataYmin = 1.0e-4 * dataYmax;
}
// create histo frame in order to plot histograms possibly with different x-frames
fHistoFrame = fDataTheoryPad->DrawFrame(dataXmin, dataYmin, dataXmax, dataYmax);
@ -4756,14 +4749,8 @@ void PMusrCanvas::PlotData(Bool_t unzoom)
dataYmax = GetMaximum(fNonMusrData[i].data, dataXmin, dataXmax);
}
Double_t dd = 0.05*fabs(dataYmax-dataYmin);
if (!fMsrHandler->GetMsrPlotList()->at(fPlotNumber).fLogY) {
dataYmin -= dd;
dataYmax += dd;
} else {
if (dataYmin < 0)
dataYmin = 0.1;
dataYmax += dd;
}
dataYmin -= dd;
dataYmax += dd;
}
} else { // set the x-/y-range to the previous fHistoFrame range
dataXmin = xmin;
@ -4781,16 +4768,14 @@ void PMusrCanvas::PlotData(Bool_t unzoom)
dataYmax = GetMaximum(fNonMusrData[i].data, dataXmin, dataXmax);
}
Double_t dd = 0.05*fabs(dataYmax-dataYmin);
if (!fMsrHandler->GetMsrPlotList()->at(fPlotNumber).fLogY) {
dataYmin -= dd;
dataYmax += dd;
} else {
if (dataYmin < 0)
dataYmin = 0.1;
dataYmax += dd;
}
dataYmin -= dd;
dataYmax += dd;
}
}
if (fMsrHandler->GetMsrPlotList()->at(fPlotNumber).fLogY) {
if (dataYmin <= 0.0)
dataYmin = 1.0e-4 * dataYmax;
}
// create fMultiGraphData, and add all data and theory
fMultiGraphData = new TMultiGraph();

View File

@ -147,7 +147,7 @@ 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 (!WriteDefaulStartupFile()) {
if (!WriteDefaultStartupFile()) {
cerr << endl << "**ERROR** couldn't write default musrfit_startup.xml." << endl;
} else {
home = getenv("HOME");
@ -587,9 +587,9 @@ Bool_t PStartupHandler::StartupFileExists(Char_t *fln)
}
//--------------------------------------------------------------------------
// WriteDefaulStartupFile
// WriteDefaultStartupFile
//--------------------------------------------------------------------------
Bool_t PStartupHandler::WriteDefaulStartupFile()
Bool_t PStartupHandler::WriteDefaultStartupFile()
{
// get home
Char_t startup_path_name[256];

View File

@ -2687,14 +2687,16 @@ void PTheory::CalculateGaussLFIntegral(const Double_t *val) const
fLFIntegral.push_back(0.0); // start value of the integral
ft = 0.0;
Double_t step = 0.0;
Double_t step = 0.0, lastStep = 1.0, diff = 0.0;
do {
t += dt;
step = 0.5*dt*preFactor*(exp(-0.5*pow(Delta * (t-dt), 2.0))*sin(w0*(t-dt))+
exp(-0.5*pow(Delta * t, 2.0))*sin(w0*t));
diff = fabs(fabs(step)-fabs(lastStep));
lastStep = step;
ft += step;
fLFIntegral.push_back(ft);
} while ((t <= 20.0) && (fabs(step) > 1.0e-10));
} while ((t <= 20.0) && (diff > 1.0e-10));
}
//--------------------------------------------------------------------------
@ -2760,13 +2762,15 @@ void PTheory::CalculateLorentzLFIntegral(const Double_t *val) const
ft += 0.5*dt*preFactor*(1.0+sin(w0*t)/(w0*t)*exp(-a*t));
fLFIntegral.push_back(ft);
// calculate all the other integral bin values
Double_t step = 0.0;
Double_t step = 0.0, lastStep = 1.0, diff = 0.0;
do {
t += dt;
step = 0.5*dt*preFactor*(sin(w0*(t-dt))/(w0*(t-dt))*exp(-a*(t-dt))+sin(w0*t)/(w0*t)*exp(-a*t));
diff = fabs(fabs(step)-fabs(lastStep));
lastStep = step;
ft += step;
fLFIntegral.push_back(ft);
} while ((t <= 20.0) && (fabs(step) > 1.0e-10));
} while ((t <= 20.0) && (diff > 1.0e-10));
}

View File

@ -762,9 +762,9 @@ int main(int argc, char *argv[])
return 0;
} else if (!strcmp(argv[i], "--version") || !strcmp(argv[i], "-v")) {
#ifdef HAVE_CONFIG_H
cout << endl << "dump_header: version " << PACKAGE_VERSION << ", git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "dump_header version: " << PACKAGE_VERSION << ", git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#else
cout << endl << "dump_header: git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "dump_header git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#endif
return 0;
} else if (!strcmp(argv[i], "-rn") || !strcmp(argv[i], "--runNo")) {

28
src/git_revision.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
echo "Generating header for git hash" $1 $2
GIT_HEADER="$1/$2"
if [ -z "$2" ]; then
GIT_HEADER="$1/git-revision.h"
fi
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
GIT_VERSION=`git log -n 1 --pretty=format:"%ad - %h"`
if grep --quiet "$GIT_VERSION" $GIT_HEADER; then
echo "No need to generate new $GIT_HEADER - git hash is unchanged"
exit 0;
fi
echo "git branch is : " $GIT_BRANCH
echo "git version is : " $GIT_VERSION
echo "#ifndef GIT_VERSION_H" > $GIT_HEADER
echo "#define GIT_VERSION_H" >> $GIT_HEADER
echo "" >> $GIT_HEADER
echo "#define GIT_BRANCH \"$GIT_BRANCH\"" >> $GIT_HEADER
echo "#define GIT_CURRENT_SHA1 \"$GIT_VERSION\"" >> $GIT_HEADER
echo "" >> $GIT_HEADER
echo "#endif //GIT_VERSION_H" >> $GIT_HEADER
echo "file is generated into" $GIT_HEADER

View File

@ -94,7 +94,7 @@ class PStartupHandler : public TObject, public TQObject
PIntVector fColorList; ///< color list
Bool_t StartupFileExists(Char_t *fln);
Bool_t WriteDefaulStartupFile();
Bool_t WriteDefaultStartupFile();
ClassDef(PStartupHandler, 1)
};

View File

@ -516,9 +516,9 @@ int main(int argc, char *argv[])
return 0;
} else if (!strcmp(argv[1], "--version")) {
#ifdef HAVE_CONFIG_H
cout << endl << "msr2data version: " << PACKAGE_VERSION << ", git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "msr2data version: " << PACKAGE_VERSION << ", git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#else
cout << endl << "msr2data git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "msr2data git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#endif
return 0;
} else {

View File

@ -298,9 +298,9 @@ Int_t musrFT_parse_options(Int_t argc, Char_t *argv[], musrFT_startup_param &sta
tstr = argv[i];
if (tstr.BeginsWith("--version")) {
#ifdef HAVE_CONFIG_H
cout << endl << "musrFT version: " << PACKAGE_VERSION << ", git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "musrFT version: " << PACKAGE_VERSION << ", git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#else
cout << endl << "musrFT git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "musrFT git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#endif
return 1;
} else if (tstr.BeginsWith("--help")) {

View File

@ -575,9 +575,9 @@ int main(int argc, char *argv[])
} else if (argc==2) {
if (!strcmp(argv[1], "--version")) {
#ifdef HAVE_CONFIG_H
cout << endl << "musrRootValidation version: " << PACKAGE_VERSION << ", git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "musrRootValidation version: " << PACKAGE_VERSION << ", git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#else
cout << endl << "musrRootValidation git-rev: " << GIT_REVISION << endl << endl;
cout << endl << "musrRootValidation git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << endl << endl;
#endif
return 0;
} else {

View File

@ -53,7 +53,7 @@ int main( int argc, char ** argv )
cout << endl << endl;
return 0;
} else if (!strcmp(argv[1], "--version") || !strcmp(argv[1], "-v")) {
cout << endl << "musredit git-rev: " << GIT_REVISION;
cout << endl << "musredit git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1;
cout << endl << endl;
return 0;
}

View File

@ -1,291 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PGetDefaultDialog</class>
<widget class="QDialog" name="PGetDefaultDialog">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>168</height>
</rect>
</property>
<property name="windowTitle">
<string>Run</string>
</property>
<property name="windowIcon">
<iconset resource="../musredit.qrc">
<normaloff>:/images/musrfit.xpm</normaloff>:/images/musrfit.xpm</iconset>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<width>381</width>
<height>27</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="fHelp_pushButton">
<property name="text">
<string>&amp;Help</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>118</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="fOk_pushButton">
<property name="text">
<string>&amp;OK</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="fCancel_pushButton">
<property name="text">
<string>&amp;Cancel</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>12</x>
<y>12</y>
<width>84</width>
<height>111</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="fRunFileName_label">
<property name="text">
<string>Run File Name</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="fBeamline_label">
<property name="minimumSize">
<size>
<width>68</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Beamline</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="fInstitute_label">
<property name="minimumSize">
<size>
<width>68</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Institute</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="fFileFormat_label">
<property name="minimumSize">
<size>
<width>68</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>File Format</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>99</x>
<y>12</y>
<width>291</width>
<height>111</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLineEdit" name="fRunFileName_lineEdit"/>
</item>
<item>
<widget class="QLineEdit" name="fBeamline_lineEdit"/>
</item>
<item>
<widget class="QComboBox" name="fInstitute_comboBox">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>PSI</string>
</property>
</item>
<item>
<property name="text">
<string>RAL</string>
</property>
</item>
<item>
<property name="text">
<string>TRIUMF</string>
</property>
</item>
<item>
<property name="text">
<string>JPARC</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="fFileFormat_comboBox">
<item>
<property name="text">
<string>NeXuS</string>
</property>
</item>
<item>
<property name="text">
<string>ROOT-NPP</string>
</property>
</item>
<item>
<property name="text">
<string>ROOT-PPC</string>
</property>
</item>
<item>
<property name="text">
<string>PSI-BIN</string>
</property>
</item>
<item>
<property name="text">
<string>MDU</string>
</property>
</item>
<item>
<property name="text">
<string>MDU-ASCII</string>
</property>
</item>
<item>
<property name="text">
<string>MUD</string>
</property>
</item>
<item>
<property name="text">
<string>WKM</string>
</property>
</item>
<item>
<property name="text">
<string>ASCII</string>
</property>
</item>
<item>
<property name="text">
<string>DB</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</widget>
<tabstops>
<tabstop>fOk_pushButton</tabstop>
<tabstop>fCancel_pushButton</tabstop>
<tabstop>fHelp_pushButton</tabstop>
</tabstops>
<resources>
<include location="../musredit.qrc"/>
</resources>
<connections>
<connection>
<sender>fCancel_pushButton</sender>
<signal>clicked()</signal>
<receiver>PGetDefaultDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>337</x>
<y>272</y>
</hint>
<hint type="destinationlabel">
<x>355</x>
<y>225</y>
</hint>
</hints>
</connection>
<connection>
<sender>fOk_pushButton</sender>
<signal>clicked()</signal>
<receiver>PGetDefaultDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>286</x>
<y>265</y>
</hint>
<hint type="destinationlabel">
<x>243</x>
<y>227</y>
</hint>
</hints>
</connection>
<connection>
<sender>fHelp_pushButton</sender>
<signal>clicked()</signal>
<receiver>PGetDefaultDialog</receiver>
<slot>helpContent()</slot>
<hints>
<hint type="sourcelabel">
<x>50</x>
<y>273</y>
</hint>
<hint type="destinationlabel">
<x>115</x>
<y>221</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>helpContent()</slot>
</slots>
</ui>

View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
musrStep_qt5
Copyright (C) 2016 Andreas Suter
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
musrStep_qt5 Copyright (C) 2016 Andreas Suter
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

View File

@ -0,0 +1,605 @@
/***************************************************************************
PMusrStep.cpp
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include <QMessageBox>
#include <QString>
#include <QStringList>
#include <QFile>
#include <QByteArray>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QInputDialog>
#include <QLineEdit>
#include <QDoubleValidator>
#include <QTextStream>
#include <QPixmap>
#include <QDebug>
#include "PMusrStep.h"
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
*
*/
PModSelect::PModSelect(QWidget *parent) :
QDialog(parent)
{
setWindowTitle("Modify Selected");
fScaleByFactor = new QPushButton("Scale by &Factor");
fScaleByFactor->setWhatsThis("if pressed it will use the Factor value, and the absolut value selection to change the selected parameter steps.");
fFactorLabel = new QLabel("Factor");
fFactorLineEdit = new QLineEdit("0.01");
fFactorLineEdit->setValidator(new QDoubleValidator);
fAbsVal = new QCheckBox("Absolute Value");
fAbsVal->setWhatsThis("if checked, the factor is used as an absolut value rather than a multiplication factor for the selected steps.");
QHBoxLayout *top = new QHBoxLayout;
top->addWidget(fScaleByFactor);
top->addWidget(fFactorLabel);
top->addWidget(fFactorLineEdit);
top->addWidget(fAbsVal);
fScaleAutomatic = new QPushButton("Scale &Automatically");
fScaleAutomatic->setWhatsThis("Will try to reset the step size of the selected items based on some crude rules");
fCancel = new QPushButton("&Cancel");
QHBoxLayout *bottom = new QHBoxLayout;
bottom->addWidget(fScaleAutomatic);
bottom->addWidget(fCancel);
QVBoxLayout *main = new QVBoxLayout;
main->addLayout(top);
main->addLayout(bottom);
setLayout(main);
connect(fScaleAutomatic, SIGNAL(pressed()), this, SLOT(scaleAuto()));
connect(fScaleByFactor, SIGNAL(pressed()), this, SLOT(getFactor()));
connect(fCancel, SIGNAL(pressed()), this, SLOT(reject()));
}
//-------------------------------------------------------------------------
/**
*
*/
void PModSelect::scaleAuto()
{
emit scale(true, 0.01, false);
done(1);
}
//-------------------------------------------------------------------------
/**
*
*/
void PModSelect::getFactor()
{
double factor = fFactorLineEdit->text().toDouble();
bool state = fAbsVal->isChecked();
emit scale(false, factor, state);
done(1);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
*
*/
PMusrStep::PMusrStep(const char *fln, QWidget *parent) :
QDialog(parent),
fMsrFileName(fln)
{
setWindowTitle("musrStep");
QString str = QIcon::themeName();
bool isDarkTheme = false;
if (str.contains("dark", Qt::CaseInsensitive))
isDarkTheme = true;
if (isDarkTheme)
str = QString(":/icons/musrStep-22x22-dark.svg");
else
str = QString(":/icons/musrStep-22x22.svg");
setWindowIcon(QIcon(QPixmap(str)));
fValid = false;
QString title = QString("<b><font size=""14"">%1</font></b>").arg(fMsrFileName);
fTitleLabel = new QLabel(title);
QLabel *icon = new QLabel();
if (isDarkTheme)
str = QString(":/icons/musrStep-32x32-dark.svg");
else
str = QString(":/icons/musrStep-32x32.svg");
icon->setPixmap(QPixmap(str));
QHBoxLayout *titleLayout = new QHBoxLayout;
titleLayout->addWidget(fTitleLabel);
titleLayout->addWidget(icon);
titleLayout->insertStretch(1);
int status = 0;
if ((status=readMsrFile()) == 1) {
fValid = true;
} else {
QString msg = QString("Failed to read msr-file: %1 (status=%2)").arg(fMsrFileName).arg(status);
QMessageBox::critical(0, "ERROR", msg);
}
int height;
if (fParamVec.size() < 70)
height = 20*fParamVec.size();
else
height = 900;
setMinimumSize(400, height);
// populate dialog
fParamTable = new QTableWidget(fParamVec.size(), 3);
QStringList strL;
strL << "name" << "value" << "step";
fParamTable->setHorizontalHeaderLabels(strL);
QTableWidgetItem *item;
for (int i=0; i<fParamVec.size(); i++) {
item = new QTableWidgetItem(fParamVec[i].name);
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
item->setCheckState(Qt::Unchecked);
fParamTable->setItem(i, 0, item);
item = new QTableWidgetItem(fParamVec[i].value);
item->setFlags(Qt::ItemIsEnabled);
fParamTable->setItem(i, 1, item);
item = new QTableWidgetItem(fParamVec[i].step);
fParamTable->setItem(i, 2, item);
}
fCheckSpecific = new QPushButton("Check S&pecific");
fCheckSpecific->setWhatsThis("Allows to specify a template name which is used\nto select parameter names fitting to it.");
fCheckAll = new QPushButton("Check A&ll");
fCheckAll->setWhatsThis("Select all parameter names,\nexcept the ones with step == 0");
fUnCheckAll = new QPushButton("&Uncheck All");
fUnCheckAll->setWhatsThis("Unselect all parameter names");
QHBoxLayout *checkLayout = new QHBoxLayout;
checkLayout->addWidget(fCheckSpecific);
checkLayout->addWidget(fCheckAll);
checkLayout->addWidget(fUnCheckAll);
fModifyAuto = new QPushButton("Modify &Automatic");
fModifyAuto->setWhatsThis("Will try to reset the step size,\nbased on some crude rules");
fModifyAuto->setDefault(true);
fModifySelected = new QPushButton("&Modify Selected");
fModifySelected->setWhatsThis("Will call a dialog which all to specify how\nto proceed with the selected parameter steps.");
QHBoxLayout *modifyLayout = new QHBoxLayout;
modifyLayout->addWidget(fModifyAuto);
modifyLayout->addWidget(fModifySelected);
fSave = new QPushButton("&Save&&Quit");
fCancel = new QPushButton("&Cancel");
QHBoxLayout *buttomLayout = new QHBoxLayout;
buttomLayout->addWidget(fSave);
buttomLayout->addWidget(fCancel);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(titleLayout);
mainLayout->addWidget(fParamTable);
mainLayout->addLayout(checkLayout);
mainLayout->addLayout(modifyLayout);
mainLayout->addLayout(buttomLayout);
setLayout(mainLayout);
connect(fParamTable, SIGNAL(cellChanged(int, int)), this, SLOT(handleCellChanged(int, int)));
connect(fCheckSpecific, SIGNAL(pressed()), this, SLOT(checkSpecific()));
connect(fCheckAll, SIGNAL(pressed()), this, SLOT(checkAll()));
connect(fUnCheckAll, SIGNAL(pressed()), this, SLOT(unCheckAll()));
connect(fModifyAuto, SIGNAL(pressed()), this, SLOT(modifyAuto()));
connect(fModifySelected, SIGNAL(pressed()), this, SLOT(modifyChecked()));
connect(fSave, SIGNAL(pressed()), this, SLOT(saveAndQuit()));
connect(fCancel, SIGNAL(pressed()), this, SLOT(reject()));
fModSelect = new PModSelect(this);
connect(fModSelect, SIGNAL(scale(bool,double,bool)), this, SLOT(handleModSelect(bool,double,bool)));
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::handleCellChanged(int row, int column)
{
QString str;
bool ok;
if (column == 0) {
str = fParamTable->item(row, 2)->text();
if ((fParamTable->item(row, column)->checkState() == Qt::Checked) &&
((str == "0") || (str == "0.0"))) {
fParamTable->item(row, column)->setCheckState(Qt::Unchecked);
QMessageBox::warning(0, "WARNING", "You cannot select a fixed value (step == 0).");
}
} else if (column == 2) {
str = fParamTable->item(row, column)->text();
str.toDouble(&ok); // result is of no interest
if (ok) {
fParamVec[row].step = str;
} else {
fParamTable->item(row, column)->setText(fParamVec[row].step);
}
}
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::checkSpecific()
{
bool ok;
QString str = QInputDialog::getText(this, "Enter Param Name Template", "Template:",
QLineEdit::Normal, "", &ok);
if (!ok)
return;
QString step("");
for (int i=0; i<fParamTable->rowCount(); i++) {
if (fParamTable->item(i,0)->text().contains(str)) {
step = fParamTable->item(i,2)->text();
if ((step != "0") && (step != "0.0"))
fParamTable->item(i,0)->setCheckState(Qt::Checked);
}
}
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::checkAll()
{
QString str("");
for (int i=0; i<fParamTable->rowCount(); i++) {
str = fParamTable->item(i,2)->text();
if ((str != "0") && (str != "0.0"))
fParamTable->item(i,0)->setCheckState(Qt::Checked);
}
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::unCheckAll()
{
for (int i=0; i<fParamTable->rowCount(); i++) {
fParamTable->item(i,0)->setCheckState(Qt::Unchecked);
}
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::modifyAuto()
{
QString str;
bool absVal;
double factor;
for (int i=0; i<fParamTable->rowCount(); i++) {
str = fParamTable->item(i,2)->text();
if ((str != "0") && (str != "0.0")) {
factor = lookupTable(fParamTable->item(i,0)->text(), absVal);
str = adoptStep(fParamTable->item(i,1)->text(), factor, absVal);
fParamTable->item(i,2)->setText(str);
fParamVec[i].step = str;
}
}
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::modifyChecked()
{
fModSelect->show();
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::handleModSelect(bool automatic, double factor, bool absVal)
{
QString str;
for (int i=0; i<fParamTable->rowCount(); i++) {
if (fParamTable->item(i,0)->checkState() == Qt::Checked) {
if (automatic) {
factor = lookupTable(fParamTable->item(i,0)->text(), absVal);
}
str = adoptStep(fParamTable->item(i,1)->text(), factor, absVal);
fParamTable->item(i,2)->setText(str);
fParamVec[i].step = str;
}
}
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::saveAndQuit()
{
writeMsrFile();
accept();
}
//-------------------------------------------------------------------------
/**
*
*/
void PMusrStep::initParam(PParam &param)
{
param.number = "";
param.name = "";
param.value = "";
param.step = "";
param.posErr = "";
param.boundLow = "";
param.boundHigh = "";
}
//-------------------------------------------------------------------------
/**
*
*/
double PMusrStep::lookupTable(const QString str, bool &absVal)
{
double factor = 0.01;
absVal = false;
if (str.startsWith("freq", Qt::CaseInsensitive) ||
str.startsWith("frq", Qt::CaseInsensitive) ||
str.startsWith("field", Qt::CaseInsensitive)) {
factor = 1.0e-3;
} else if (str.startsWith("lambda", Qt::CaseInsensitive) ||
str.startsWith("sigma", Qt::CaseInsensitive) ||
str.startsWith("rlx", Qt::CaseInsensitive) ||
str.startsWith("rate", Qt::CaseInsensitive)) {
factor = 0.1;
} else if (str.startsWith("phase", Qt::CaseInsensitive) ||
str.startsWith("phs", Qt::CaseInsensitive)) {
factor = 5.0;
absVal = true;
} else if (str.startsWith("N0", Qt::CaseInsensitive) ||
str.startsWith("Nrm", Qt::CaseInsensitive) ||
str.startsWith("N_bkg", Qt::CaseInsensitive) ||
str.startsWith("Bgr", Qt::CaseInsensitive)) {
factor = 0.01;
}
return factor;
}
//-------------------------------------------------------------------------
/**
*
*/
QString PMusrStep::adoptStep(const QString str, double factor, bool absVal)
{
bool ok;
double dval = str.toDouble(&ok);
QString step("");
if (absVal)
step = QString("%1").arg(factor);
else
step = QString("%1").arg(factor*dval);
return step;
}
//-------------------------------------------------------------------------
/**
*
*/
int PMusrStep::readMsrFile()
{
fParamVec.clear();
QFile fin(fMsrFileName);
if (!fin.open(QIODevice::ReadOnly|QIODevice::Text))
return -1;
bool done = false, parameter = false;
QByteArray line;
QString str;
QStringList strL;
PParam param;
while(!done && !fin.atEnd()) {
line = fin.readLine();
str = line.data();
str = str.trimmed();
if (str.isEmpty() || str.startsWith("#")) {
continue;
} else if (str.startsWith("FITPARAMETER")) {
parameter = true;
continue;
} else if (str.startsWith("THEORY")) {
done = true;
continue;
}
if (parameter) {
strL = str.split(" ", QString::SkipEmptyParts);
if ((strL.size() != 5) && (strL.size() != 7)) {
fin.close();
return -2;
}
initParam(param);
param.number = strL[0];
param.name = strL[1];
param.value = strL[2];
param.step = strL[3];
param.posErr = strL[4];
if (strL.size() == 7) {
param.boundLow = strL[5];
param.boundHigh= strL[6];
}
fParamVec.push_back(param);
}
}
fin.close();
return 1;
}
//-------------------------------------------------------------------------
/**
*
*/
int PMusrStep::writeMsrFile()
{
// read whole msr-file
QFile fin(fMsrFileName);
if (!fin.open(QIODevice::ReadOnly|QIODevice::Text))
return -1;
QByteArray data = fin.readAll();
fin.close();
QFile fileOut(fMsrFileName);
if (!fileOut.open(QIODevice::WriteOnly|QIODevice::Text))
return -2;
QTextStream fout(&fileOut);
int idx = 0;
QString line, paramLine;
bool done = false;
bool paramBlock = false;
do {
line = getLine(data, idx);
if ((idx == -1) || (idx == data.count())) {
done = true;
} else {
if (line.startsWith("FITPARAMETER")) {
paramBlock = true;
} else if (line.startsWith("THEORY")) {
paramBlock = false;
}
if (paramBlock) {
paramLine = updateParamLine(line);
if (paramLine == "") // comment line, etc.
fout << line << "\n";
else
fout << paramLine << "\n";
} else {
fout << line << "\n";
}
}
} while (!done);
fout << "*** FIT DID NOT CONVERGE ***\n";
fileOut.close();
return 1;
}
//-------------------------------------------------------------------------
/**
*
*/
QString PMusrStep::getLine(QByteArray &data, int &idx)
{
int newIdx = data.indexOf('\n', idx);
QString line("");
if (newIdx != -1) {
line = data.mid(idx, newIdx-idx).data();
idx = newIdx+1;
}
return line;
}
//-------------------------------------------------------------------------
/**
*
*/
QString PMusrStep::updateParamLine(const QString str)
{
// find proper parameter index
int idx = -1;
QString paramStr;
for (int i=0; i<fParamVec.size(); i++) {
paramStr = fParamVec[i].name + " ";
if (str.contains(paramStr)) {
idx = i;
break;
}
}
if (idx == -1)
return QString("");
// construct new parameter line
QString result;
QString fstr;
QTextStream ss(&result);
ss.setFieldWidth(10);
ss.setFieldAlignment(QTextStream::AlignRight);
fstr = fParamVec[idx].number + " ";
ss << fstr;
ss.setFieldAlignment(QTextStream::AlignLeft);
int width = 12;
if (fParamVec[idx].name.length() >= 12)
width = fParamVec[idx].name.length()+1;
ss.setFieldWidth(width);
ss << fParamVec[idx].name;
ss.setFieldWidth(11);
ss << fParamVec[idx].value;
ss << fParamVec[idx].step;
ss << fParamVec[idx].posErr;
if (fParamVec[idx].boundLow != "") {
ss << fParamVec[idx].boundLow;
ss << fParamVec[idx].boundHigh;
}
return result;
}

View File

@ -0,0 +1,121 @@
/***************************************************************************
PMusrStep.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PMUSRSTEP_H_
#define _PMUSRSTEP_H_
#include <QDialog>
#include <QWidget>
#include <QVector>
#include <QPushButton>
#include <QTableWidget>
#include <QLabel>
#include <QCheckBox>
typedef struct {
QString number;
QString name;
QString value;
QString step;
QString posErr;
QString boundLow;
QString boundHigh;
} PParam;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class PModSelect : public QDialog
{
Q_OBJECT
public:
PModSelect(QWidget *parent=Q_NULLPTR);
signals:
void scale(bool automatic, double factor, bool absVal);
private slots:
void scaleAuto();
void getFactor();
private:
QCheckBox *fAbsVal;
QLabel *fFactorLabel;
QLineEdit *fFactorLineEdit;
QPushButton *fScaleByFactor;
QPushButton *fScaleAutomatic;
QPushButton *fCancel;
};
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class PMusrStep : public QDialog
{
Q_OBJECT
public:
PMusrStep(const char *fln, QWidget *parent=Q_NULLPTR);
bool isValid() { return fValid; }
private slots:
void handleCellChanged(int row, int column);
void checkSpecific();
void checkAll();
void unCheckAll();
void modifyAuto();
void modifyChecked();
void saveAndQuit();
void handleModSelect(bool automatic, double factor, bool absVal);
private:
QString fMsrFileName;
bool fValid;
QVector<PParam> fParamVec;
QLabel *fTitleLabel;
QTableWidget *fParamTable;
QPushButton *fCheckSpecific;
QPushButton *fCheckAll;
QPushButton *fUnCheckAll;
QPushButton *fModifyAuto;
QPushButton *fModifySelected;
QPushButton *fSave;
QPushButton *fCancel;
PModSelect *fModSelect;
void initParam(PParam &param);
double lookupTable(const QString str, bool &absVal);
QString adoptStep(const QString str, double factor, bool absVal);
int readMsrFile();
int writeMsrFile();
QString getLine(QByteArray &data, int &idx);
QString updateParamLine(const QString str);
};
#endif // _PMUSRSTEP_H_

View File

@ -0,0 +1,2 @@
musrStep helps to intelligently reset the steps of a msr-file after a fit.
Often this is needed for refinement purposes.

View File

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="22"
height="22"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="musrStep-22x22-dark.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective3600"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="29.227273"
inkscape:cx="8.7240614"
inkscape:cy="11"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1640"
inkscape:window-height="901"
inkscape:window-x="112"
inkscape:window-y="269"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2816"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<path
sodipodi:type="arc"
style="fill:#d2d2d2;fill-opacity:1;stroke:#d2d2d2;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="M 5,10.5 A 1.5,1.5 0 0 1 3.5,12 1.5,1.5 0 0 1 2,10.5 1.5,1.5 0 0 1 3.5,9 1.5,1.5 0 0 1 5,10.5 Z"
transform="matrix(1.3333333,0,0,1.3333333,-0.66666667,1027.3622)" />
<path
sodipodi:type="arc"
style="fill:#d2d2d2;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818-2"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="M 5,10.5 A 1.5,1.5 0 0 1 3.5,12 1.5,1.5 0 0 1 2,10.5 1.5,1.5 0 0 1 3.5,9 1.5,1.5 0 0 1 5,10.5 Z"
transform="matrix(1.3333333,0,0,1.3333333,13.333333,1027.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4,2 0,18 0,0"
id="path3635"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18,14 0,-6 0,0"
id="path3637"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2,2 6,2 6,2"
id="path3639"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2,20 4,0"
id="path3641"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16,14 4,0"
id="path3643"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16,8 4,0"
id="path3645"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#da4453;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 14,11 1,-2 -4,-3 0,-2 -4,7 4,7 0,-2 4,-3 -1,-2"
id="path3695"
transform="translate(0,1030.3622)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="22"
height="22"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="musrStep-22x22.png">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective3600"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="29.227273"
inkscape:cx="4.2597201"
inkscape:cy="11"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1640"
inkscape:window-height="901"
inkscape:window-x="112"
inkscape:window-y="269"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2816"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="m 5,10.5 a 1.5,1.5 0 1 1 -3,0 1.5,1.5 0 1 1 3,0 z"
transform="matrix(1.3333333,0,0,1.3333333,-0.66666667,1027.3622)" />
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818-2"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="m 5,10.5 a 1.5,1.5 0 1 1 -3,0 1.5,1.5 0 1 1 3,0 z"
transform="matrix(1.3333333,0,0,1.3333333,13.333333,1027.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4,2 0,18 0,0"
id="path3635"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 18,14 0,-6 0,0"
id="path3637"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2,2 6,2 6,2"
id="path3639"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2,20 4,0"
id="path3641"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16,14 4,0"
id="path3643"
transform="translate(0,1030.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16,8 4,0"
id="path3645"
transform="translate(0,1030.3622)" />
<path
style="fill:#da4453;stroke:#da4453;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 14,11 1,-2 -4,-3 0,-2 -4,7 4,7 0,-2 4,-3 -1,-2"
id="path3695"
transform="translate(0,1030.3622)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="32"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="musrStep-32x32-dark.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective3600"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3770"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="29.227273"
inkscape:cx="4.127327"
inkscape:cy="17.294896"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="2050"
inkscape:window-height="1312"
inkscape:window-x="112"
inkscape:window-y="63"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2816"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1020.3622)">
<path
sodipodi:type="arc"
style="fill:#d2d2d2;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="M 5,10.5 A 1.5,1.5 0 0 1 3.5,12 1.5,1.5 0 0 1 2,10.5 1.5,1.5 0 0 1 3.5,9 1.5,1.5 0 0 1 5,10.5 Z"
transform="matrix(2,0,0,2,-2.0000001,1015.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5,2 0,28 0,0"
id="path3756"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2,2 8,2"
id="path3758"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2,30 6,0"
id="path3760"
transform="translate(0,1020.3622)" />
<path
sodipodi:type="arc"
style="fill:#d2d2d2;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818-7"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="M 5,10.5 A 1.5,1.5 0 0 1 3.5,12 1.5,1.5 0 0 1 2,10.5 1.5,1.5 0 0 1 3.5,9 1.5,1.5 0 0 1 5,10.5 Z"
transform="matrix(2,0,0,2,20,1015.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 27,11 0,10"
id="path3784"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24,21 6,0"
id="path3786"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#d2d2d2;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24,11 6,0"
id="path3788"
transform="translate(0,1020.3622)" />
<path
style="fill:#da4453;fill-opacity:1;stroke:#da4453;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17.568436,1028.3565 -0.06843,-3.9943 -8,12.0171 8.034215,11.9829 0,-3.9943 4.965785,-4.9929 -2.034214,-3.064 1.965785,-2.9616"
id="path3790"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="32"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="musrStep-32x32.png">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective3600"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3770"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="29.227273"
inkscape:cx="15.349722"
inkscape:cy="17.294896"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="2050"
inkscape:window-height="1312"
inkscape:window-x="112"
inkscape:window-y="99"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2816"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1020.3622)">
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="m 5,10.5 a 1.5,1.5 0 1 1 -3,0 1.5,1.5 0 1 1 3,0 z"
transform="matrix(2,0,0,2,-2.0000001,1015.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 5,2 0,28 0,0"
id="path3756"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 2,2 8,2"
id="path3758"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2,30 6,0"
id="path3760"
transform="translate(0,1020.3622)" />
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2818-7"
sodipodi:cx="3.5"
sodipodi:cy="10.5"
sodipodi:rx="1.5"
sodipodi:ry="1.5"
d="m 5,10.5 a 1.5,1.5 0 1 1 -3,0 1.5,1.5 0 1 1 3,0 z"
transform="matrix(2,0,0,2,20,1015.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 27,11 0,10"
id="path3784"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24,21 6,0"
id="path3786"
transform="translate(0,1020.3622)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24,11 6,0"
id="path3788"
transform="translate(0,1020.3622)" />
<path
style="fill:#da4453;fill-opacity:1;stroke:#da4453;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 22.5,1033.3622 -5,-5 0,-4 -8,12 8,12 0,-4 5,-5 -2,-3 2,-3"
id="path3790" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

View File

@ -0,0 +1,57 @@
#include <iostream>
#include <cstring>
#include <QApplication>
#include <QtDebug>
#include "git-revision.h"
#include "PMusrStep.h"
//-------------------------------------------------------------------------
void musrStep_syntax()
{
std::cout << std::endl;
std::cout << "usage: musrStep <fln> | [-v | --version] | [-h | --help]" << std::endl;
std::cout << " <fln>: msr-file name." << std::endl;
std::cout << " -v, --version: print the current git-version to the stdout" << std::endl;
std::cout << " -h, --help: print this help" << std::endl;
std::cout << std::endl << std::endl;
}
//-------------------------------------------------------------------------
int main(int argc, char *argv[])
{
char fln[1024];
if (argc != 2) {
musrStep_syntax();
return 1;
} else {
if (!strcmp(argv[1], "--version") || (!strcmp(argv[1], "-v"))) {
std::cout << std::endl << "musrStep git-rev: " << GIT_CURRENT_SHA1 << std::endl << std::endl;
return 0;
} else if (!strcmp(argv[1], "--help") || (!strcmp(argv[1], "-h"))) {
musrStep_syntax();
return 0;
} else {
strncpy(fln, argv[1], sizeof(fln));
}
}
Q_INIT_RESOURCE(musrStep);
QApplication app(argc, argv);
PMusrStep musrStep(fln);
if (!musrStep.isValid())
return 1;
musrStep.show();
app.exec();
int result = musrStep.result();
return result;
}

View File

@ -0,0 +1,75 @@
TEMPLATE = app
TARGET = musrStep
# install path for musrStep via given prefix
count( PREFIX, 1 ) {
MUSRSTEP_INSTALL_PATH = $${PREFIX}/bin
}
isEmpty( MUSRSTEP_INSTALL_PATH ) {
MUSR_FIT_PATH = $$(MUSRFITPATH)
count( MUSR_FIT_PATH, 1) {
MUSRSTEP_INSTALL_PATH = $$(MUSRFITPATH)
}
}
isEmpty( MUSRSTEP_INSTALL_PATH ) {
ROOT_SYS_PATH = $$(ROOTSYS)
count( ROOT_SYS_PATH, 1) {
MUSRSTEP_INSTALL_PATH = $$(ROOTSYS)/bin
}
}
isEmpty( MUSRSTEP_INSTALL_PATH ) {
MUSRSTEP_INSTALL_PATH = /usr/local/bin
}
exists( /usr/bin/cygwin1.dll ) {
QMAKE_CXXFLAGS += -D_WIN32GCC
QMAKE_LFLAGS_APP = -Wl,--enable-auto-import
}
isEmpty( CC ) {
CC = gcc
}
isEmpty( CXX ) {
CXX = g++
}
QMAKE_CC = $${CC}
QMAKE_CXX = $${CXX}
QMAKE_LINK = $${CXX}
# set proper permission for Mac OSX
macx {
QMAKE_INSTALL_FILE = install -m 6755 -p -o $$(USER) -g staff
}
# install path for the application
unix {
message( "Determined installation path: $${MUSRSTEP_INSTALL_PATH}" )
}
unix:target.path = $${MUSRSTEP_INSTALL_PATH}
macx:target.path = /Applications
win32:target.path = c:/musrfit/bin
INSTALLS += target
CONFIG += qt \
warn_on \
release \
console
QT += widgets
QT += svg
INCLUDEPATH += "../../include"
HEADERS = ../../include/git-revision.h \
PMusrStep.h
SOURCES = PMusrStep.cpp \
musrStep.cpp
RESOURCES = musrStep.qrc
macx:ICON = icons/musrStep.icns

View File

@ -0,0 +1,8 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>icons/musrStep-22x22.svg</file>
<file>icons/musrStep-22x22-dark.svg</file>
<file>icons/musrStep-32x32.svg</file>
<file>icons/musrStep-32x32-dark.svg</file>
</qresource>
</RCC>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,202 @@
/****************************************************************************
PAdmin.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
*****************************************************************************/
/***************************************************************************
* Copyright (C) 2010-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PADMIN_H_
#define _PADMIN_H_
#include <QObject>
#include <QVector>
#include <QtXml>
#include "PTheoTemplate.h"
#include "PMusrfitFunc.h"
#include "PInstrumentDef.h"
class PAdmin;
//---------------------------------------------------------------------------
class PFuncXMLParser : public QXmlDefaultHandler
{
public:
PFuncXMLParser(PAdmin*);
virtual ~PFuncXMLParser() {}
private:
enum EFuncKeyWords {eEmpty,
eTemplateName, eTemplateTheo, eTemplateFunc,
eName, eAbbrv, eNoOfParam, eParam,
eParamName, eParamValue, eParamMap};
bool startDocument();
bool startElement(const QString&, const QString&, const QString& ,
const QXmlAttributes& qAttr);
bool endElement( const QString&, const QString&, const QString& );
bool characters(const QString&);
bool endDocument();
bool warning( const QXmlParseException & exception );
bool error( const QXmlParseException & exception );
bool fatalError( const QXmlParseException & exception );
EFuncKeyWords fKeyWord; ///< key word tag to know how to handle the content
PAdmin *fAdmin; ///< a pointer to the main administration class object
PTheoTemplate fTheoTemplate;
PMusrfitFunc fFunc;
PFuncParam fParam;
};
//---------------------------------------------------------------------------
class PInstrumentDefXMLParser : public QXmlDefaultHandler
{
public:
PInstrumentDefXMLParser(PAdmin*);
virtual ~PInstrumentDefXMLParser() {}
private:
enum EKeyWords {eEmpty, eInstitute, eInstrument, eRunNameTemplate,
eBeamline, eDataFileFormat, eTf, eZf, eLf,
eNoOfDetectors, eFgbOffset, eLgb, eBkgRange,
eLogicDetector};
bool startDocument();
bool startElement(const QString&, const QString&, const QString& ,
const QXmlAttributes& qAttr);
bool endElement( const QString&, const QString&, const QString& );
bool characters(const QString&);
bool endDocument();
bool warning( const QXmlParseException & exception );
bool error( const QXmlParseException & exception );
bool fatalError( const QXmlParseException & exception );
EKeyWords fKeyWord; ///< key word tag to know how to handle the content
PAdmin *fAdmin; ///< a pointer to the main administration class object
QString fInstituteName;
PInstrument *fInstrument;
PSetup *fSetup;
};
//---------------------------------------------------------------------------
class PMusrWizDefault
{
public:
PMusrWizDefault();
~PMusrWizDefault() {}
QString getInstitute() { return fInstitute; }
QString getInstrument() { return fInstrument; }
QString getFitType() { return fFitType; }
void setInstitute(QString str) { fInstitute = str; }
void setInstrument(QString str) { fInstrument = str; }
void setFitType(QString str) { fFitType = str; }
private:
QString fInstitute;
QString fInstrument;
QString fFitType;
};
//---------------------------------------------------------------------------
class PMusrWizDefaultXMLParser : public QXmlDefaultHandler
{
public:
PMusrWizDefaultXMLParser(PAdmin*);
virtual ~PMusrWizDefaultXMLParser() {}
private:
enum EKeyWords {eEmpty, eInstitute, eInstrument, eFitType};
bool startDocument();
bool startElement(const QString&, const QString&, const QString& ,
const QXmlAttributes& );
bool endElement( const QString&, const QString&, const QString& );
bool characters(const QString&);
bool endDocument();
bool warning( const QXmlParseException & exception );
bool error( const QXmlParseException & exception );
bool fatalError( const QXmlParseException & exception );
EKeyWords fKeyWord; ///< key word tag to know how to handle the content
PAdmin *fAdmin; ///< a pointer to the main administration class object
PMusrWizDefault fDefault;
};
//---------------------------------------------------------------------------
class PAdmin : public QObject
{
public:
PAdmin();
~PAdmin() {}
bool IsValid() { return fValid; }
void dump(int tag);
QString getDefaultInstitute() { return fDefault.getInstitute(); }
QString getDefaultInstrument() { return fDefault.getInstrument(); }
QString getDefaultFitType() { return fDefault.getFitType(); }
QStringList getInstituteList();
QStringList getInstrumentList(QString institute);
PInstrument *getInstrument(QString institute, QString instrument);
int getTheoTemplateSize() { return fTheoTemplate.size(); }
QVector<PTheoTemplate> getTheoTemplates() { return fTheoTemplate; }
PTheoTemplate getTheoTemplate(int idx);
int getMusrfitFuncSize() { return fMusrfitFunc.size(); }
QVector<PMusrfitFunc> getMusrfitFunc() { return fMusrfitFunc; }
PMusrfitFunc getMusrfitFunc(QString name);
protected:
int addInstrument(QString institute, PInstrument instrument);
private:
friend class PFuncXMLParser;
friend class PInstrumentDefXMLParser;
friend class PMusrWizDefaultXMLParser;
bool fValid;
PMusrWizDefault fDefault;
QVector<PInstitute> fInstitute;
QVector<PTheoTemplate> fTheoTemplate;
QVector<PMusrfitFunc> fMusrfitFunc;
int loadMusrWizDefault(QString fln);
int loadMusrfitFunc(QString fln);
int loadInstrumentDef(QString path, QString fln);
};
#endif // _PADMIN_H_

View File

@ -0,0 +1,153 @@
/***************************************************************************
PInstrumentDef.cpp
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "PInstrumentDef.h"
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
*
*/
PSetup::PSetup()
{
fName = "";
fNoOfDetectors = -1;
fFgbOffset = -1;
fLgb = -1;
fBkgStartBin = -1;
fBkgEndBin = -1;
}
//--------------------------------------------------------------------------
/**
* @brief PSetup::getDetector
* @param idx
* @return
*/
PDetector* PSetup::getDetector(int idx)
{
if (idx >= fLogicDetectors.size())
return 0;
return &fLogicDetectors[idx];
}
//--------------------------------------------------------------------------
/**
* @brief PSetup::getAsymDetector
* @param idx
* @return
*/
PDetector* PSetup::getAsymDetector(int idx)
{
if (idx >= fLogicAsymDetectors.size())
return 0;
return &fLogicAsymDetectors[idx];
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
*
*/
PInstrument::PInstrument()
{
fRunNameTemplate = "";
fBeamline = "";
fDataFileFormat = "";
fInstitue = "";
fName = "";
}
//--------------------------------------------------------------------------
/**
* @brief PInstrument::getZFSetup
* @param name
* @return
*/
PSetup* PInstrument::getZFSetup(QString name)
{
for (int i=0; i<fZF.size(); i++) {
if (fZF[i].getName() == name)
return &fZF[i];
}
return 0;
}
//--------------------------------------------------------------------------
/**
* @brief PInstrument::getTFSetup
* @param name
* @return
*/
PSetup* PInstrument::getTFSetup(QString name)
{
for (int i=0; i<fTF.size(); i++) {
if (fTF[i].getName() == name)
return &fTF[i];
}
return 0;
}
//--------------------------------------------------------------------------
/**
* @brief PInstrument::getLFSetup
* @param name
* @return
*/
PSetup* PInstrument::getLFSetup(QString name)
{
for (int i=0; i<fLF.size(); i++) {
if (fLF[i].getName() == name)
return &fLF[i];
}
return 0;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
*
*/
PInstitute::PInstitute()
{
fName = "";
}
//--------------------------------------------------------------------------
/**
*
*/
PInstrument *PInstitute::getInstrument(QString name)
{
for (int i=0; i<fInstrument.size(); i++) {
if (fInstrument[i].getName() == name)
return &fInstrument[i];
}
return 0;
}

View File

@ -0,0 +1,163 @@
/***************************************************************************
PInstrumentDef.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PINSTRUMENTDEF_H_
#define _PINSTRUMENTDEF_H_
#include <QString>
#include <QVector>
//---------------------------------------------------------------------------
class PDetector
{
public:
PDetector() {}
~PDetector() {}
void setName(QString str) { fName = str; }
void setRelGeomPhase(double phase) { fRelGeomPhase = phase; }
void setForwards(QVector<int> num) { fForward = num; }
void setBackwards(QVector<int> num) { fBackward = num; }
void setAlpha(double alpha) { fAlpha = alpha; }
QString getName() { return fName; }
double getRelGeomPhase() { return fRelGeomPhase; }
QVector<int> getForwards() { return fForward; }
QVector<int> getBackwards() { return fBackward; }
double getAlpha() { return fAlpha; }
private:
QString fName;
QVector<int> fForward;
QVector<int> fBackward;
double fAlpha;
double fRelGeomPhase;
};
//---------------------------------------------------------------------------
class PSetup
{
public:
PSetup();
~PSetup() {}
void setName(QString str) { fName = str; }
void setNoOfDetectors(int no) { fNoOfDetectors = no; }
void setFgbOffset(int fgbOffset) { fFgbOffset = fgbOffset; }
void setLgb(int lgb) { fLgb = lgb; }
void setBkgRange(int start, int end) { fBkgStartBin = start; fBkgEndBin = end; }
void addDetector(PDetector detector) { fLogicDetectors.push_back(detector); }
void addAsymDetector(PDetector detector) { fLogicAsymDetectors.push_back(detector); }
QString getName() { return fName; }
int getNoOfDetectors() { return fNoOfDetectors; }
int getNoOfLogicalDetectors() { return fLogicDetectors.size(); }
int getNoOfLogicalAsymDetectors() { return fLogicAsymDetectors.size(); }
int getFgbOffset() { return fFgbOffset; }
int getLgb() { return fLgb; }
int getBkgStartBin() { return fBkgStartBin; }
int getBkgEndBin() { return fBkgEndBin; }
PDetector* getDetector(int idx);
PDetector* getAsymDetector(int idx);
private:
QString fName;
int fNoOfDetectors;
int fFgbOffset;
int fLgb;
int fBkgStartBin;
int fBkgEndBin;
QVector<PDetector> fLogicDetectors;
QVector<PDetector> fLogicAsymDetectors;
};
//---------------------------------------------------------------------------
class PInstrument
{
public:
PInstrument();
~PInstrument() {}
void setRunNameTemplate(QString str) { fRunNameTemplate = str; }
void setBeamline(QString str) { fBeamline = str; }
void setDataFileFormat(QString str) { fDataFileFormat = str; }
void setInstitue(QString str) { fInstitue = str; }
void setName(QString str) { fName = str; }
void addSetupZF(PSetup zf) { fZF.push_back(zf); }
void addSetupTF(PSetup tf) { fTF.push_back(tf); }
void addSetupLF(PSetup lf) { fLF.push_back(lf); }
QString getRunNameTemplate() { return fRunNameTemplate; }
QString getBeamline() { return fBeamline; }
QString getDataFileFormat() { return fDataFileFormat; }
QString getInstitute() { return fInstitue; }
QString getName() { return fName; }
QVector<PSetup> getZFSetups() { return fZF; }
QVector<PSetup> getTFSetups() { return fTF; }
QVector<PSetup> getLFSetups() { return fLF; }
PSetup* getZFSetup(QString name="");
PSetup* getTFSetup(QString name="");
PSetup* getLFSetup(QString name="");
private:
QString fRunNameTemplate;
QString fBeamline;
QString fDataFileFormat;
QString fInstitue;
QString fName;
QVector<PSetup> fZF;
QVector<PSetup> fTF;
QVector<PSetup> fLF;
};
//---------------------------------------------------------------------------
class PInstitute
{
public:
PInstitute();
~PInstitute() {}
void setName(QString str) { fName = str; }
void addInstrument(PInstrument instrument) { fInstrument.push_back(instrument); }
QString getName() { return fName; }
QVector<PInstrument> getInstruments() { return fInstrument; }
PInstrument *getInstrument(QString name);
private:
QString fName;
QVector<PInstrument> fInstrument;
};
#endif // _PINSTRUMENTDEF_H_

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,414 @@
/***************************************************************************
PMusrWiz.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PMUSRWIZ_
#define _PMUSRWIZ_
#include <QString>
#include <QStringList>
#include <QWizard>
#include <QWizardPage>
#include <QObject>
#include <QLineEdit>
#include <QComboBox>
#include <QCheckBox>
#include <QPlainTextEdit>
#include <QPushButton>
#include <QLabel>
#include <QFormLayout>
#include "musrWiz.h"
#include "PAdmin.h"
#define INST_UNDEF 0
#define INST_PSI 1
#define INST_TRIUMF 2
#define INST_ISIS 3
#define INST_JPARC 4
#define FIT_TYPE_UNDEF 0
#define FIT_TYPE_SINGLE_HISTO 1
#define FIT_TYPE_SINGLE_HISTO_RRF 2
#define FIT_TYPE_ASYMMETRY 3
#define FIT_TYPE_ASYMMETRY_RRF 4
#define FIT_TYPE_MU_MINUS 5
#define FIT_TYPE_NONE_MUSR 6
#define MEASURE_UNDEF 0
#define MEASURE_ZF 1
#define MEASURE_TF 2
#define MEASURE_LF 3
#define T0_FROM_FILE 0
#define T0_FROM_MUSR_T0 1
#define T0_ENTER_WIZ 2
//-------------------------------------------------------------------
typedef struct {
QLineEdit *paramName;
QLineEdit *paramVal;
QLineEdit *paramStep;
QLineEdit *paramBoundLow;
QLineEdit *paramBoundHigh;
} PParamGui;
//-------------------------------------------------------------------
class PMsrData
{
public:
PMsrData();
~PMsrData();
void clearParam() { fParam.clear(); }
void clearFunc() { fFunc.clear(); }
void clearMap() { fMap.clear(); }
void setMsrPathName(QString str) { fMsrPathName = str; }
void setMsrFileName(QString fileName) { fMsrFileName = fileName; }
void appendMsrFileName(QString str) { fMsrFileName += str; }
void setYear(QString year) { fYear = year; }
void setRunNumber(int runNo) { fRunNumber = runNo; }
void setInstitute(QString institute) { fInstitute = institute; }
void setInstrument(QString instrument) { fInstrument = instrument; }
void setSetup(QString setup) { fSetup = setup; }
void setFitType(int fitType) { fFitType = fitType; }
void setTypeOfMeasurement(int type) { fTypeOfMeasurement = type; }
void setT0Tag(int tag) { fT0Tag = tag; }
void setT0(int t0) { fT0 = t0; }
void setTheory(QString str) { fTheo = str; }
void setParam(QVector<PParam> param) { fParam = param; }
void setParam(int idx, PParam param);
void appendParam(QVector<PParam> param);
void setMap(QVector<PParam> map) { fMap = map; }
void setMap(int idx, PParam map);
void appendMap(QVector<PParam> map);
void setMapTemplateName(int idx, QString name);
void setFunc(int funNo, QString str="??");
void setPacking(int pack) { fPacking = abs(pack); }
void setFitStart(double start) { fFitStart = start; }
void setFitEnd(double end) { fFitEnd = end; }
void setCmd(QString cmd) { fCommands = cmd; }
void setTemplate(int templ) { fTemplate = templ; }
void setTemplate(PTheoTemplate templ) { fTheoTempl = templ; }
QString getMsrPathName() { return fMsrPathName; }
QString getMsrFileName() { return fMsrFileName; }
QString getYear() { return fYear; }
int getRunNumber() { return fRunNumber; }
QString getInstitute() { return fInstitute; }
QString getInstrument() { return fInstrument; }
QString getSetup() { return fSetup; }
int getFitType() { return fFitType; }
QString getFitTypeString();
int getTypeOfMeasurement() { return fTypeOfMeasurement; }
int getT0Tag() { return fT0Tag; }
int getT0() { return fT0; }
QString getTheory() { return fTheo; }
int getNoOfParam() { return fParam.size(); }
PParam getParam(int idx);
int getNoOfMap() { return fMap.size(); }
PParam getMap(int idx);
int getNoOfFunc() { return fFunc.size(); }
int getFuncNo(int idx);
bool isPresent(const QString funStr);
QString getFunc(int funNo);
QString getFuncAll();
int getPacking() { return fPacking; }
double getFitStart() { return fFitStart; }
double getFitEnd() { return fFitEnd; }
QString getCmd() { return fCommands; }
bool isTemplate() { return (fTemplate == -1) ? false : true; }
PTheoTemplate getTemplate() { return fTheoTempl; }
void sort(QString whichVec);
void removeFunc(QVector<int> &funList);
private:
int fTemplate;
QString fMsrPathName;
QString fMsrFileName;
int fRunNumber;
QString fInstitute;
QString fInstrument;
QString fSetup;
int fFitType;
int fTypeOfMeasurement;
int fT0Tag;
int fT0;
QString fYear;
int fPacking;
double fFitStart;
double fFitEnd;
QString fCommands;
QString fTheo;
PTheoTemplate fTheoTempl;
QVector<PParam> fParam;
QVector<PFunc> fFunc;
QVector<PParam> fMap;
};
//-------------------------------------------------------------------
class PShowTheo : public QDialog
{
public:
PShowTheo(QString theo, QString func = QString(""),
QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
};
//-------------------------------------------------------------------
class PIntroPage : public QWizardPage
{
Q_OBJECT
public:
PIntroPage(PAdmin *admin, PMsrData *data, QWidget *parent=0);
int nextId() const Q_DECL_OVERRIDE;
bool validatePage();
private slots:
void handleInstituteChanged(int idx);
void handleFitType(int idx);
void checkSetup(int idx);
void handleT0(int idx);
private:
PAdmin *fAdmin;
PMsrData *fMsrData;
QLineEdit *fMsrFileName;
QLineEdit *fYear;
QLineEdit *fRunNumber;
QComboBox *fInstitute;
QComboBox *fInstrument;
QComboBox *fFitType;
QComboBox *fMeasurementType;
QComboBox *fT0;
};
//-------------------------------------------------------------------
class PTheoPage : public QWizardPage
{
Q_OBJECT
public:
PTheoPage(PAdmin *admin, PMsrData *data, QWidget *parent=0);
int nextId() const Q_DECL_OVERRIDE;
void initializePage();
bool validatePage();
private slots:
void templateState(int);
void clearAll();
void addTheory();
void checkTheory();
private:
PAdmin *fAdmin;
PMsrData *fMsrData;
bool fTheoValid;
bool fHaveMap;
bool fHaveFunc;
int fTheoBlockNo;
QVector<PParam> fParamList;
QVector<PParam> fMapList;
QVector<int> fFunList;
QPlainTextEdit *fTheo;
QCheckBox *fEditTemplate;
QPushButton *fClearAll;
QComboBox *fTheoSelect;
QPushButton *fTheoAdd;
QPushButton *fCheckTheo;
QString getTheoryFunction(int idx);
bool analyzeTokens(QString str, int noOfTokens);
void dealWithParam(QString theo, int paramNo, int paramIdx);
void dealWithMap(QString theo, int mapNo, int paramIdx);
void dealWithFun(int funNo);
};
//-------------------------------------------------------------------
class PFuncPage : public QWizardPage
{
Q_OBJECT
public:
PFuncPage(PMsrData *data, QWidget *parent=0);
int nextId() const Q_DECL_OVERRIDE;
void initializePage();
void cleanupPage();
bool validatePage();
private slots:
void showTheo();
private:
PMsrData *fMsrData;
QFormLayout *fMapPageLayout;
QPlainTextEdit *fFunc;
QPushButton *fShowTheo;
int getFuncNo(const QString str);
};
//-------------------------------------------------------------------
class PMapPage : public QWizardPage
{
Q_OBJECT
public:
PMapPage(PMsrData *data, QWidget *parent=0);
int nextId() const Q_DECL_OVERRIDE;
void initializePage();
bool validatePage();
private slots:
void showTheo();
private:
PMsrData *fMsrData;
QFormLayout *fMapPageLayout;
QVector<PParamGui> fMapGuiVec;
QPushButton *fShowTheo;
};
//-------------------------------------------------------------------
class PParamPage : public QWizardPage
{
Q_OBJECT
public:
PParamPage(PMsrData *data, QWidget *parent=0);
int nextId() const Q_DECL_OVERRIDE;
void initializePage();
bool validatePage();
private slots:
void showTheo();
private:
PMsrData *fMsrData;
QFormLayout *fParameterPageLayout;
QVector<PParamGui> fParamGuiVec;
QPushButton *fShowTheo;
};
//-------------------------------------------------------------------
class PFitInfoPage : public QWizardPage
{
Q_OBJECT
public:
PFitInfoPage(PMsrData *data, QWidget *parent=0);
int nextId() const Q_DECL_OVERRIDE;
void initializePage();
bool validatePage();
private:
PMsrData *fMsrData;
QLineEdit *fFitRangeStart;
QLineEdit *fFitRangeEnd;
QLineEdit *fPacking;
QPlainTextEdit *fCommands;
};
//-------------------------------------------------------------------
class PConclusionPage : public QWizardPage
{
Q_OBJECT
public:
PConclusionPage(PAdmin *admin, PMsrData *data, QString *msrFilePath, QWidget *parent=0);
private slots:
void saveAsMsrFile();
void saveAsTemplate();
private:
QString *fMsrFilePath;
PAdmin *fAdmin;
PMsrData *fMsrData;
QLabel *fMsrPathFileLabel;
QLineEdit *fMsrFilePathLineEdit;
QPushButton *fSaveAsMsrFile;
QPushButton *fSaveAsTemplate;
};
//-------------------------------------------------------------------
class PMusrWiz : public QWizard
{
Q_OBJECT
friend class PIntroPage;
friend class PTheoPage;
friend class PMapPage;
friend class PFuncPage;
friend class PParamPage;
friend class PFitInfoPage;
public:
PMusrWiz(QWidget *parent=Q_NULLPTR);
PMusrWiz(PAdmin *admin, PMsrData *msrData, QWidget *parent=Q_NULLPTR);
virtual ~PMusrWiz();
private slots:
virtual int writeMsrFile(int result);
virtual void help();
protected:
enum {ePageIntro, ePageTheory, ePageMaps, ePageFunctions, ePageParameters, ePageFitInfo, ePageConclusion};
private:
QString fMsrFilePath;
PAdmin *fAdmin;
PMsrData *fMsrData;
QString getRunName(PInstrument *instru);
virtual int writeMsrFileSingleHisto();
virtual int writeMsrFileAsymmetry();
};
#endif // _PMUSRWIZ_

View File

@ -0,0 +1,56 @@
/***************************************************************************
PMusrfitFunc.cpp
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "PMusrfitFunc.h"
//---------------------------------------------------------------------------
/**
*
*/
void PMusrfitFunc::initFunc()
{
fName = "UnDef";
fAbbrv = "UnDef";
fNoOfParam = -1;
fParam.clear();
}
//---------------------------------------------------------------------------
/**
*
*/
PFuncParam PMusrfitFunc::getFuncParam(int idx)
{
PFuncParam param;
if ((idx >= 0) && (idx < fParam.size()))
param = fParam[idx];
return param;
}

View File

@ -0,0 +1,84 @@
/***************************************************************************
PMusrfitFunc.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PMUSRFITFUNC_H_
#define _PMUSRFITFUNC_H_
#include <QString>
#include <QVector>
//---------------------------------------------------------------------------
class PFuncParam {
public:
PFuncParam() { initParam(); }
~PFuncParam() {}
void initParam() { fName = "UnDef"; fValue = 0.0; fMap = false; }
void setParamName(QString name) { fName = name; }
void setParamValue(double dval) { fValue = dval; }
void setParamMap(bool isMap) { fMap = isMap; }
QString getParamName() { return fName; }
double getParamValue() { return fValue; }
bool isMap() { return fMap; }
private:
QString fName;
double fValue;
bool fMap;
};
//---------------------------------------------------------------------------
class PMusrfitFunc {
public:
PMusrfitFunc() { initFunc(); }
~PMusrfitFunc() {}
void initFunc();
void setName(QString name) { fName = name; }
void setAbbrv(QString abbrv) { fAbbrv = abbrv; }
void setNoOfParam(int ival) { fNoOfParam = ival; }
void addFuncParam(PFuncParam param) { fParam.push_back(param); }
QString getName() { return fName; }
QString getAbbrv() { return fAbbrv; }
int getNoOfParam() { return fNoOfParam; }
PFuncParam getFuncParam(int idx);
QVector<PFuncParam> *getFuncParams() { return &fParam; }
private:
QString fName;
QString fAbbrv;
int fNoOfParam;
QVector<PFuncParam> fParam;
};
#endif // _PMUSRFITFUNC_H_

View File

@ -0,0 +1,156 @@
/***************************************************************************
PTheoTemplate.cpp
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "PTheoTemplate.h"
//---------------------------------------------------------------------------
/**
*
*/
void PTheoTemplate::init()
{
fPreDefName = QString("");
fTheory = QString("");
fParam.clear();
fFunc.clear();
fMap.clear();
}
//---------------------------------------------------------------------------
/**
*
*/
QString PTheoTemplate::getFunc(int idx)
{
if ((idx < 0) || (idx >= fFunc.size()))
return QString("");
return fFunc[idx];
}
//---------------------------------------------------------------------------
/**
*
*/
int PTheoTemplate::getFuncNo(int idx)
{
if ((idx < 0) || (idx >= fFunc.size()))
return -1;
QString funStr = fFunc[idx];
int idxEnd = funStr.indexOf("=");
funStr.remove(idxEnd, funStr.length()-idxEnd);
funStr.remove(0,3);
bool ok;
int ival = funStr.toInt(&ok);
if (!ok)
return -1;
return ival;
}
//---------------------------------------------------------------------------
/**
*
*/
PParam PTheoTemplate::getMap(int idx)
{
PParam map;
if ((idx < 0) || (idx >= fMap.size()))
return map;
return fMap[idx];
}
//---------------------------------------------------------------------------
/**
*
*/
PParam PTheoTemplate::getParam(int idx)
{
PParam param;
if ((idx < 0) || (idx >= fParam.size()))
return param;
return fParam[idx];
}
//---------------------------------------------------------------------------
/**
*
*/
void PTheoTemplate::appendFunc(QString str)
{
// for now just push function string. In the future it might be
// wise to check if the function is already present.
fFunc.push_back(str);
}
//---------------------------------------------------------------------------
/**
*
*/
void PTheoTemplate::appendMap(PParam map)
{
bool found = false;
for (int i=0; i<fMap.size(); i++) {
if (fMap[i].getNumber() == map.getNumber()) {
found = true;
break;
}
}
if (!found)
fMap.push_back(map);
}
//---------------------------------------------------------------------------
/**
*
*/
void PTheoTemplate::appendParam(PParam param)
{
bool found = false;
for (int i=0; i<fParam.size(); i++) {
if (fParam[i].getNumber() == param.getNumber()) {
found = true;
break;
}
}
if (!found)
fParam.push_back(param);
}
//---------------------------------------------------------------------------
// END
//---------------------------------------------------------------------------

View File

@ -0,0 +1,69 @@
/***************************************************************************
PTheoTemplate.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PTHEOTEMPLATE_H_
#define _PTHEOTEMPLATE_H_
#include <QString>
#include <QVector>
#include "musrWiz.h"
class PTheoTemplate {
public:
PTheoTemplate() { init(); }
~PTheoTemplate() {}
void init();
QString getName() { return fPreDefName; }
QString getTheory() { return fTheory; }
int getNoOfFunc() { return fFunc.size(); }
QString getFunc(int idx);
int getFuncNo(int idx);
int getNoOfMap() { return fMap.size(); }
PParam getMap(int idx);
int getNoOfParam() { return fParam.size(); }
PParam getParam(int idx);
void setName(QString str) { fPreDefName = str; }
void setTheory(QString str) { fTheory = str; }
void appendFunc(QString str);
void appendParam(PParam param);
void appendMap(PParam map);
private:
QString fPreDefName;
QString fTheory;
QVector<PParam> fParam;
QVector<QString> fFunc;
QVector<PParam> fMap;
};
#endif // _PTHEOTEMPLATE_H_

View File

@ -0,0 +1 @@
A wizard to create msr-files for a given instrument from scratch

View File

@ -0,0 +1,502 @@
<?xml version="1.0" encoding="UTF-8"?>
<musrfit-functions>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- theory function templates -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<theo_template>
<pre_def_name>T: 1 [exp x cos](TF)</pre_def_name>
<theory>a 1\nse 2\ntf fun1 4</theory>
<theo_fun>fun1=par3+map1</theo_fun>
<theo_map no="1" name="RelPh"/>
<template_param no="1" name="Asy" value="0.2" step="0.02"/>
<template_param no="2" name="Lambda" value="0.5" step="0.02"/>
<template_param no="3" name="Ph" value="0.0" step="10.0"/>
<template_param no="4" name="Frq" value="100.0" step="1.0"/>
</theo_template>
<theo_template>
<pre_def_name>T: 2 [exp x cos](TF)</pre_def_name>
<theory>a 1\nse 2\ntf fun1 4\n+\na 5\nse 6\ntf fun1 7</theory>
<theo_fun>fun1=par3+map1</theo_fun>
<theo_map no="1" name="RelPh"/>
<template_param no="1" name="Asy_0" value="0.1" step="0.02"/>
<template_param no="2" name="Lambda_0" value="0.5" step="0.02"/>
<template_param no="3" name="Ph" value="0.0" step="10.0"/>
<template_param no="4" name="Frq_0" value="100.0" step="1.0"/>
<template_param no="5" name="Asy_1" value="0.1" step="0.02"/>
<template_param no="6" name="Lambda_1" value="0.5" step="0.02"/>
<template_param no="7" name="Frq_1" value="110.0" step="1.0"/>
</theo_template>
<theo_template>
<pre_def_name>T: 3 [exp x cos](TF)</pre_def_name>
<theory>a 1\nse 2\ntf fun1 4\n+\na 5\nse 6\ntf fun1 7\n+\na 8\nse 9\ntf fun1 10</theory>
<theo_fun>fun1=par3+map1</theo_fun>
<theo_map no="1" name="RelPh"/>
<template_param no="1" name="Asy_0" value="0.1" step="0.02"/>
<template_param no="2" name="Lambda_0" value="0.5" step="0.02"/>
<template_param no="3" name="Ph" value="0.0" step="10.0"/>
<template_param no="4" name="Frq_0" value="100.0" step="1.0"/>
<template_param no="5" name="Asy_1" value="0.1" step="0.02"/>
<template_param no="6" name="Lambda_1" value="0.5" step="0.1"/>
<template_param no="7" name="Frq_1" value="110.0" step="1.0"/>
<template_param no="8" name="Asy_2" value="0.1" step="0.02"/>
<template_param no="9" name="Lambda_2" value="1.5" step="0.1"/>
<template_param no="10" name="Frq_2" value="120.0" step="1.0"/>
</theo_template>
<theo_template>
<pre_def_name>T: 1 [gauss x cos](TF)</pre_def_name>
<theory>a 1\nsg 2\ntf fun1 4</theory>
<theo_fun>fun1=par3+map1</theo_fun>
<theo_map no="1" name="RelPh"/>
<template_param no="1" name="Asy" value="0.2" step="0.02"/>
<template_param no="2" name="Sigma" value="0.5" step="0.02"/>
<template_param no="3" name="Ph" value="0.0" step="10.0"/>
<template_param no="4" name="Frq" value="100.0" step="1.0"/>
</theo_template>
<theo_template>
<pre_def_name>T: 2 [gauss x cos](TF)</pre_def_name>
<theory>a 1\nsg 2\ntf fun1 4\n+\na 5\nsg 6\ntf fun1 7</theory>
<theo_fun>fun1=par3+map1</theo_fun>
<theo_map no="1" name="RelPh"/>
<template_param no="1" name="Asy_0" value="0.1" step="0.02"/>
<template_param no="2" name="Sigma_0" value="0.5" step="0.02"/>
<template_param no="3" name="Ph" value="0.0" step="10.0"/>
<template_param no="4" name="Frq_0" value="100.0" step="1.0"/>
<template_param no="5" name="Asy_1" value="0.1" step="0.02"/>
<template_param no="6" name="Sigma_1" value="0.5" step="0.02"/>
<template_param no="7" name="Frq_1" value="110.0" step="1.0"/>
</theo_template>
<theo_template>
<pre_def_name>T: 3 [gauss x cos](TF)</pre_def_name>
<theory>a 1\nsg 2\ntf fun1 4\n+\na 5\nsg 6\ntf fun1 7\n+\na 8\nsg 9\ntf fun1 10</theory>
<theo_fun>fun1=par3+map1</theo_fun>
<theo_map no="1" name="RelPh"/>
<template_param no="1" name="Asy_0" value="0.1" step="0.02"/>
<template_param no="2" name="Sigma_0" value="0.5" step="0.02"/>
<template_param no="3" name="Ph" value="0.0" step="10.0"/>
<template_param no="4" name="Frq_0" value="100.0" step="1.0"/>
<template_param no="5" name="Asy_1" value="0.1" step="0.02"/>
<template_param no="6" name="Sigma_1" value="0.5" step="0.1"/>
<template_param no="7" name="Frq_1" value="110.0" step="1.0"/>
<template_param no="8" name="Asy_2" value="0.1" step="0.02"/>
<template_param no="9" name="Sigma_2" value="1.5" step="0.1"/>
<template_param no="10" name="Frq_2" value="120.0" step="1.0"/>
</theo_template>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- List of all predefined theory functions -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Asymmetry -->
<func>
<name>asymmetry</name>
<abbrv>a</abbrv>
<no_of_parameters>1</no_of_parameters>
<parameter>
<param_name>Asym</param_name>
<param_value>0.2</param_value>
</parameter>
</func>
<!-- Exp -->
<func>
<name>simplExpo</name>
<abbrv>se</abbrv>
<no_of_parameters>1</no_of_parameters>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.5</param_value>
</parameter>
</func>
<!-- Gaussian -->
<func>
<name>simpleGss</name>
<abbrv>sg</abbrv>
<no_of_parameters>1</no_of_parameters>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.5</param_value>
</parameter>
</func>
<!-- Streteched Exp -->
<func>
<name>generExpo</name>
<abbrv>ge</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>Beta</param_name>
<param_value>1.5</param_value>
</parameter>
</func>
<!-- Cos -->
<func>
<name>TFieldCos</name>
<abbrv>tf</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
<param_is_map>y</param_is_map>
</parameter>
<parameter>
<param_name>Freq</param_name>
<param_value>10.0</param_value>
</parameter>
</func>
<!-- internal field -->
<func>
<name>internFld</name>
<abbrv>if</abbrv>
<no_of_parameters>5</no_of_parameters>
<parameter>
<param_name>Weight</param_name>
<param_value>0.66</param_value>
</parameter>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Freq</param_name>
<param_value>10.0</param_value>
</parameter>
<parameter>
<param_name>LambdaT</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>LambdaL</param_name>
<param_value>0.1</param_value>
</parameter>
</func>
<!-- Bessel -->
<func>
<name>Bessel</name>
<abbrv>b</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Freq</param_name>
<param_value>10.0</param_value>
</parameter>
</func>
<!-- internal Bessel -->
<func>
<name>internBsl</name>
<abbrv>ib</abbrv>
<no_of_parameters>5</no_of_parameters>
<parameter>
<param_name>Weight</param_name>
<param_value>0.66</param_value>
</parameter>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Freq</param_name>
<param_value>10.0</param_value>
</parameter>
<parameter>
<param_name>LambdaT</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>LambdaL</param_name>
<param_value>0.1</param_value>
</parameter>
</func>
<!-- GKT ZF -->
<func>
<name>statGssKT</name>
<abbrv>stg</abbrv>
<no_of_parameters>1</no_of_parameters>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- GKT LF -->
<func>
<name>statGssKTLF</name>
<abbrv>sgktlf</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Hopp</param_name>
<param_value>0.1</param_value>
</parameter>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- GKT LF dynamic -->
<func>
<name>dynGssKTLF</name>
<abbrv>dgktlf</abbrv>
<no_of_parameters>3</no_of_parameters>
<parameter>
<param_name>Freq</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.3</param_value>
</parameter>
<parameter>
<param_name>Gamma</param_name>
<param_value>0.5</param_value>
</parameter>
</func>
<!-- expKT ZF -->
<func>
<name>statExpKT</name>
<abbrv>sekt</abbrv>
<no_of_parameters>1</no_of_parameters>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- expKT LF -->
<func>
<name>statExpKTLF</name>
<abbrv>sektlf</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Hopp</param_name>
<param_value>0.1</param_value>
</parameter>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- expKT LF dynamic -->
<func>
<name>dynExpKTLF</name>
<abbrv>dektlf</abbrv>
<no_of_parameters>3</no_of_parameters>
<parameter>
<param_name>Freq</param_name>
<param_value>0.1</param_value>
</parameter>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.3</param_value>
</parameter>
<parameter>
<param_name>Gamma</param_name>
<param_value>0.5</param_value>
</parameter>
</func>
<!-- KT Exp+Gaussian ZF -->
<func>
<name>combiLGKT</name>
<abbrv>lgkt</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.2</param_value>
</parameter>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- KT Stretched -->
<func>
<name>strKT</name>
<abbrv>skt</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.3</param_value>
</parameter>
<parameter>
<param_name>Beta</param_name>
<param_value>2.0</param_value>
</parameter>
</func>
<!-- Spin Glass Function -->
<func>
<name>spinGlass</name>
<abbrv>spg</abbrv>
<no_of_parameters>3</no_of_parameters>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.3</param_value>
</parameter>
<parameter>
<param_name>Gamma</param_name>
<param_value>0.1</param_value>
</parameter>
<parameter>
<param_name>q</param_name>
<param_value>0.8</param_value>
</parameter>
</func>
<!-- Random Anisotropy Hyperfine Fiels -->
<func>
<name>rdAnisoHf</name>
<abbrv>rahf</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Nu</param_name>
<param_value>1.5</param_value>
</parameter>
<parameter>
<param_name>Lambda</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- Abragam -->
<func>
<name>abragam</name>
<abbrv>ab</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Sigma</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>Gamma</param_name>
<param_value>0.2</param_value>
</parameter>
</func>
<!-- skewed Gaussian -->
<func>
<name>skewedGss</name>
<abbrv>skg</abbrv>
<no_of_parameters>4</no_of_parameters>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Freq</param_name>
<param_value>10.0</param_value>
</parameter>
<parameter>
<param_name>SigmaPlus</param_name>
<param_value>1.1</param_value>
</parameter>
<parameter>
<param_name>SigmaMinus</param_name>
<param_value>0.3</param_value>
</parameter>
</func>
<!-- static Noakes Kalvius ZF function -->
<func>
<name>staticNKZF</name>
<abbrv>snkzf</abbrv>
<no_of_parameters>2</no_of_parameters>
<parameter>
<param_name>Delta</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>Rb</param_name>
<param_value>0.2</param_value>
</parameter>
</func>
<!-- static Noakes Kalvius TF function -->
<func>
<name>staticNKTF</name>
<abbrv>snktf</abbrv>
<no_of_parameters>4</no_of_parameters>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Frq</param_name>
<param_value>10.5</param_value>
</parameter>
<parameter>
<param_name>Delta</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>Rb</param_name>
<param_value>0.2</param_value>
</parameter>
</func>
<!-- dynamic Noakes Kalvius ZF function -->
<func>
<name>dynamicNKZF</name>
<abbrv>dnkzf</abbrv>
<no_of_parameters>3</no_of_parameters>
<parameter>
<param_name>Delta</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>Rb</param_name>
<param_value>0.2</param_value>
</parameter>
<parameter>
<param_name>Hopp</param_name>
<param_value>1.0</param_value>
</parameter>
</func>
<!-- dynamic Noakes Kalvius TF function -->
<func>
<name>dynamicNKTF</name>
<abbrv>dnktf</abbrv>
<no_of_parameters>5</no_of_parameters>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Frq</param_name>
<param_value>10.5</param_value>
</parameter>
<parameter>
<param_name>Delta</param_name>
<param_value>0.5</param_value>
</parameter>
<parameter>
<param_name>Rb</param_name>
<param_value>0.2</param_value>
</parameter>
<parameter>
<param_name>Hopp</param_name>
<param_value>1.0</param_value>
</parameter>
</func>
<!-- mu^- exp TF -->
<func>
<name>muMinusExpTF</name>
<abbrv>mmsetf</abbrv>
<no_of_parameters>6</no_of_parameters>
<parameter>
<param_name>N0</param_name>
<param_value>100.0</param_value>
</parameter>
<parameter>
<param_name>Tau</param_name>
<param_value>1.0</param_value>
</parameter>
<parameter>
<param_name>Asym</param_name>
<param_value>0.08</param_value>
</parameter>
<parameter>
<param_name>Lambda</param_name>
<param_value>1.1</param_value>
</parameter>
<parameter>
<param_name>Ph</param_name>
<param_value>0.0</param_value>
</parameter>
<parameter>
<param_name>Frq</param_name>
<param_value>10.2</param_value>
</parameter>
</func>
</musrfit-functions>

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="22"
height="22"
viewBox="0 0 22.000001 22"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="musrWiz-22x22-dark.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333333 : 1"
id="perspective3013" />
<inkscape:perspective
id="perspective3023"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3066"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3088"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="31.054545"
inkscape:cx="-4.212784"
inkscape:cy="11.88778"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="pt"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="0"
inkscape:window-y="-3"
inkscape:window-maximized="1"
inkscape:snap-grids="true"
showguides="true"
borderlayer="true"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid5486" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<rect
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="rect3029"
width="19"
height="3"
x="-741.21826"
y="742.63245"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
rx="0.40000001" />
<rect
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="rect3052"
width="3"
height="3"
x="-720.23883"
y="742.63245"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
rx="0.40000001" />
<path
sodipodi:type="star"
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="path3056"
sodipodi:sides="4"
sodipodi:cx="3"
sodipodi:cy="1"
sodipodi:r1="3"
sodipodi:r2="1.2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="M 6,1 C 6,1.2312754 4.0120646,1.6849918 3.8485282,1.8485282 3.6849918,2.0120646 3.2312754,4 3,4 2.7687246,4 2.3150082,2.0120646 2.1514718,1.8485282 1.9879354,1.6849918 0,1.2312754 0,1 0,0.7687246 1.9879354,0.31500824 2.1514718,0.15147183 2.3150082,-0.01206457 2.7687246,-2 3,-2 3.2312754,-2 3.6849918,-0.01206458 3.8485282,0.15147183 4.0120646,0.31500823 6,0.7687246 6,1 Z"
transform="translate(1.0000003,1036.3622)" />
<path
sodipodi:type="star"
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="path3056-3"
sodipodi:sides="4"
sodipodi:cx="3"
sodipodi:cy="1"
sodipodi:r1="3"
sodipodi:r2="1.2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="M 6,1 C 6,1.2312754 4.0120646,1.6849918 3.8485282,1.8485282 3.6849918,2.0120646 3.2312754,4 3,4 2.7687246,4 2.3150082,2.0120646 2.1514718,1.8485282 1.9879354,1.6849918 0,1.2312754 0,1 0,0.7687246 1.9879354,0.31500824 2.1514718,0.15147183 2.3150082,-0.01206457 2.7687246,-2 3,-2 3.2312754,-2 3.6849918,-0.01206458 3.8485282,0.15147183 4.0120646,0.31500823 6,0.7687246 6,1 Z"
transform="matrix(0.66725213,0,0,0.66725213,7.9964878,1032.6949)" />
<path
sodipodi:type="star"
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="path3056-3-4"
sodipodi:sides="4"
sodipodi:cx="3"
sodipodi:cy="1"
sodipodi:r1="3"
sodipodi:r2="1.2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="M 6,1 C 6,1.2312754 4.0120646,1.6849918 3.8485282,1.8485282 3.6849918,2.0120646 3.2312754,4 3,4 2.7687246,4 2.3150082,2.0120646 2.1514718,1.8485282 1.9879354,1.6849918 0,1.2312754 0,1 0,0.7687246 1.9879354,0.31500824 2.1514718,0.15147183 2.3150082,-0.01206457 2.7687246,-2 3,-2 3.2312754,-2 3.6849918,-0.01206458 3.8485282,0.15147183 4.0120646,0.31500823 6,0.7687246 6,1 Z"
transform="matrix(0.66725213,0,0,0.66725213,14.996488,1044.6949)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="22"
height="22"
viewBox="0 0 22.000001 22"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="musrWiz.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333333 : 1"
id="perspective3013" />
<inkscape:perspective
id="perspective3023"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3066"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3088"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="31.054545"
inkscape:cx="1.6961739"
inkscape:cy="11.952183"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="pt"
inkscape:window-width="2560"
inkscape:window-height="1380"
inkscape:window-x="-4"
inkscape:window-y="-3"
inkscape:window-maximized="1"
inkscape:snap-grids="true"
showguides="true"
borderlayer="true"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid5486" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<rect
style="fill:#000000;fill-opacity:1;stroke:none"
id="rect3029"
width="19"
height="3"
x="-741.21826"
y="742.63245"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
rx="0.40000001" />
<rect
style="fill:#000000;fill-opacity:1;stroke:none"
id="rect3052"
width="3"
height="3"
x="-720.23883"
y="742.63245"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
rx="0.40000001" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3056"
sodipodi:sides="4"
sodipodi:cx="3"
sodipodi:cy="1"
sodipodi:r1="3"
sodipodi:r2="1.2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="M 6,1 C 6,1.2312754 4.0120646,1.6849918 3.8485282,1.8485282 3.6849918,2.0120646 3.2312754,4 3,4 2.7687246,4 2.3150082,2.0120646 2.1514718,1.8485282 1.9879354,1.6849918 0,1.2312754 0,1 0,0.7687246 1.9879354,0.31500824 2.1514718,0.15147183 2.3150082,-0.01206457 2.7687246,-2 3,-2 3.2312754,-2 3.6849918,-0.01206458 3.8485282,0.15147183 4.0120646,0.31500823 6,0.7687246 6,1 z"
transform="translate(1.0000003,1036.3622)" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3056-3"
sodipodi:sides="4"
sodipodi:cx="3"
sodipodi:cy="1"
sodipodi:r1="3"
sodipodi:r2="1.2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="M 6,1 C 6,1.2312754 4.0120646,1.6849918 3.8485282,1.8485282 3.6849918,2.0120646 3.2312754,4 3,4 2.7687246,4 2.3150082,2.0120646 2.1514718,1.8485282 1.9879354,1.6849918 0,1.2312754 0,1 0,0.7687246 1.9879354,0.31500824 2.1514718,0.15147183 2.3150082,-0.01206457 2.7687246,-2 3,-2 3.2312754,-2 3.6849918,-0.01206458 3.8485282,0.15147183 4.0120646,0.31500823 6,0.7687246 6,1 z"
transform="matrix(0.66725213,0,0,0.66725213,7.9964878,1032.6949)" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3056-3-4"
sodipodi:sides="4"
sodipodi:cx="3"
sodipodi:cy="1"
sodipodi:r1="3"
sodipodi:r2="1.2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="M 6,1 C 6,1.2312754 4.0120646,1.6849918 3.8485282,1.8485282 3.6849918,2.0120646 3.2312754,4 3,4 2.7687246,4 2.3150082,2.0120646 2.1514718,1.8485282 1.9879354,1.6849918 0,1.2312754 0,1 0,0.7687246 1.9879354,0.31500824 2.1514718,0.15147183 2.3150082,-0.01206457 2.7687246,-2 3,-2 3.2312754,-2 3.6849918,-0.01206458 3.8485282,0.15147183 4.0120646,0.31500823 6,0.7687246 6,1 z"
transform="matrix(0.66725213,0,0,0.66725213,14.996488,1044.6949)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="32"
viewBox="0 0 32.000001 32"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="musrWiz-32x32-dark.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333333 : 1"
id="perspective3013" />
<inkscape:perspective
id="perspective3023"
inkscape:persp3d-origin="0.49999999 : 0.33333333 : 1"
inkscape:vp_z="0.99999999 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3066"
inkscape:persp3d-origin="0.49999999 : 0.33333333 : 1"
inkscape:vp_z="0.99999999 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3088"
inkscape:persp3d-origin="0.49999999 : 0.33333333 : 1"
inkscape:vp_z="0.99999999 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="26.6875"
inkscape:cx="2.529274"
inkscape:cy="16.822768"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="pt"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="0"
inkscape:window-y="-3"
inkscape:window-maximized="1"
inkscape:snap-grids="true"
showguides="true"
borderlayer="true"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid5486" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1020.3622)">
<path
sodipodi:type="star"
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="path3056"
sodipodi:sides="4"
sodipodi:cx="6"
sodipodi:cy="1029.3622"
sodipodi:r1="4"
sodipodi:r2="2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 10,1029.3622 c 0,0.2947 -2.3773843,1.2058 -2.5857864,1.4142 -0.2084022,0.2084 -1.1194884,2.5858 -1.4142136,2.5858 -0.2947252,0 -1.2058114,-2.3774 -1.4142136,-2.5858 C 4.3773843,1030.568 2,1029.6569 2,1029.3622 c 0,-0.2947 2.3773843,-1.2058 2.5857864,-1.4142 0.2084022,-0.2084 1.1194884,-2.5858 1.4142136,-2.5858 0.2947252,0 1.2058114,2.3774 1.4142136,2.5858 C 7.6226157,1028.1564 10,1029.0675 10,1029.3622 Z" />
<path
sodipodi:type="star"
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="path3056-3"
sodipodi:sides="4"
sodipodi:cx="15"
sodipodi:cy="1024.3622"
sodipodi:r1="3"
sodipodi:r2="1.5"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 18,1024.3622 c 0,0.221 -1.783038,0.9043 -1.93934,1.0606 -0.156301,0.1563 -0.839616,1.9394 -1.06066,1.9394 -0.221044,0 -0.904359,-1.7831 -1.06066,-1.9394 C 13.783038,1025.2665 12,1024.5832 12,1024.3622 c 0,-0.2211 1.783038,-0.9044 1.93934,-1.0607 0.156301,-0.1563 0.839616,-1.9393 1.06066,-1.9393 0.221044,0 0.904359,1.783 1.06066,1.9393 0.156302,0.1563 1.93934,0.8396 1.93934,1.0607 z" />
<path
sodipodi:type="star"
style="fill:#f2f2f2;fill-opacity:1;stroke:none"
id="path3056-3-4"
sodipodi:sides="4"
sodipodi:cx="25"
sodipodi:cy="1042.3622"
sodipodi:r1="3"
sodipodi:r2="1.5"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 28,1042.3622 c 0,0.221 -1.783038,0.9043 -1.93934,1.0606 -0.156301,0.1563 -0.839616,1.9394 -1.06066,1.9394 -0.221044,0 -0.904359,-1.7831 -1.06066,-1.9394 C 23.783038,1043.2665 22,1042.5832 22,1042.3622 c 0,-0.2211 1.783038,-0.9044 1.93934,-1.0607 0.156301,-0.1563 0.839616,-1.9393 1.06066,-1.9393 0.221044,0 0.904359,1.783 1.06066,1.9393 0.156302,0.1563 1.93934,0.8396 1.93934,1.0607 z" />
<rect
style="fill:#f2f2f2;fill-opacity:1;stroke:#f2f2f2;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4712"
width="28"
height="4"
x="-738.83655"
y="742.13245"
rx="0.40000001"
ry="0.40000001"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)" />
<rect
style="fill:#f2f2f2;fill-opacity:1;stroke:#f2f2f2;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4714"
width="4"
height="4"
x="-708.16895"
y="742.12415"
rx="0.40000001"
ry="0.40000001"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

View File

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="32"
viewBox="0 0 32.000001 32"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="musrWiz-32x32.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333333 : 1"
id="perspective3013" />
<inkscape:perspective
id="perspective3023"
inkscape:persp3d-origin="0.49999999 : 0.33333333 : 1"
inkscape:vp_z="0.99999999 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3066"
inkscape:persp3d-origin="0.49999999 : 0.33333333 : 1"
inkscape:vp_z="0.99999999 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3088"
inkscape:persp3d-origin="0.49999999 : 0.33333333 : 1"
inkscape:vp_z="0.99999999 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="26.6875"
inkscape:cx="9.4051522"
inkscape:cy="16.897709"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="pt"
inkscape:window-width="1920"
inkscape:window-height="1021"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-grids="true"
showguides="true"
borderlayer="true"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid5486" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1020.3622)">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3056"
sodipodi:sides="4"
sodipodi:cx="6"
sodipodi:cy="1029.3622"
sodipodi:r1="4"
sodipodi:r2="2"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 10,1029.3622 c 0,0.2947 -2.3773843,1.2058 -2.5857864,1.4142 -0.2084022,0.2084 -1.1194884,2.5858 -1.4142136,2.5858 -0.2947252,0 -1.2058114,-2.3774 -1.4142136,-2.5858 C 4.3773843,1030.568 2,1029.6569 2,1029.3622 c 0,-0.2947 2.3773843,-1.2058 2.5857864,-1.4142 0.2084022,-0.2084 1.1194884,-2.5858 1.4142136,-2.5858 0.2947252,0 1.2058114,2.3774 1.4142136,2.5858 C 7.6226157,1028.1564 10,1029.0675 10,1029.3622 Z" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3056-3"
sodipodi:sides="4"
sodipodi:cx="15"
sodipodi:cy="1024.3622"
sodipodi:r1="3"
sodipodi:r2="1.5"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 18,1024.3622 c 0,0.221 -1.783038,0.9043 -1.93934,1.0606 -0.156301,0.1563 -0.839616,1.9394 -1.06066,1.9394 -0.221044,0 -0.904359,-1.7831 -1.06066,-1.9394 C 13.783038,1025.2665 12,1024.5832 12,1024.3622 c 0,-0.2211 1.783038,-0.9044 1.93934,-1.0607 0.156301,-0.1563 0.839616,-1.9393 1.06066,-1.9393 0.221044,0 0.904359,1.783 1.06066,1.9393 0.156302,0.1563 1.93934,0.8396 1.93934,1.0607 z" />
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3056-3-4"
sodipodi:sides="4"
sodipodi:cx="25"
sodipodi:cy="1042.3622"
sodipodi:r1="3"
sodipodi:r2="1.5"
sodipodi:arg1="0"
sodipodi:arg2="0.78539816"
inkscape:flatsided="false"
inkscape:rounded="0.1"
inkscape:randomized="0"
d="m 28,1042.3622 c 0,0.221 -1.783038,0.9043 -1.93934,1.0606 -0.156301,0.1563 -0.839616,1.9394 -1.06066,1.9394 -0.221044,0 -0.904359,-1.7831 -1.06066,-1.9394 C 23.783038,1043.2665 22,1042.5832 22,1042.3622 c 0,-0.2211 1.783038,-0.9044 1.93934,-1.0607 0.156301,-0.1563 0.839616,-1.9393 1.06066,-1.9393 0.221044,0 0.904359,1.783 1.06066,1.9393 0.156302,0.1563 1.93934,0.8396 1.93934,1.0607 z" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4712"
width="28"
height="4"
x="-738.83655"
y="742.13245"
rx="0.40000001"
ry="0.40000001"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4714"
width="4"
height="4"
x="-708.16895"
y="742.12415"
rx="0.40000001"
ry="0.40000001"
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<instrument_def_isis xmlns="http://www.isis.stfc.ac.uk/instruments/hifi/">
<institute>ISIS</institute>
<!-- +++++++++++++++++++++++++++ H I F I ++++++++++++++++++++++++++++++++++++ -->
<instrument name="HIFI">
<run_name_template>HIFINNNNNNNN</run_name_template>
<beamline>HIFI</beamline>
<data_file_format>NEXUS</data_file_format>
<tf>
<no_of_detectors>128</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>2047</lgb>
<logic_detector name="L" rel_phase="0" forward="5 6 7 8 9 10 11 12 13 52 53 54 55 56 57 58 59 60" note="green"/>
<logic_detector name="R" rel_phase="90" forward="21 22 23 24 25 26 27 28 29 36 37 38 39 40 41 42 43 44" note="green"/>
</tf>
<zf>
<!-- not yet defined -->
</zf>
<lf>
<!-- not yet defined -->
</lf>
</instrument>
</instrument_def_isis>

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<instrument_def_psi xmlns="https://www.psi.ch/lmu/instrumentation">
<institute>PSI</institute>
<!-- +++++++++++++++++++++++++++ H A L 9 5 0 0 ++++++++++++++++++++++++++++++++++++ -->
<instrument name="HAL9500">
<run_name_template>dYYYY/tdc/tdc_hifi_YYYY_NNNNN </run_name_template>
<beamline>PIE3</beamline>
<data_file_format>PSI-MDU</data_file_format>
<tf>
<no_of_detectors>16</no_of_detectors>
<fgb_offset>50</fgb_offset>
<lgb>409500</lgb>
<asym_bkg_range>500 15000</asym_bkg_range>
<logic_detector name="F1" rel_phase="0.0" forward="2"/>
<logic_detector name="F2" rel_phase="45.0" forward="3"/>
<logic_detector name="F3" rel_phase="90.0" forward="4"/>
<logic_detector name="F4" rel_phase="135.0" forward="5"/>
<logic_detector name="F5" rel_phase="180.0" forward="6"/>
<logic_detector name="F6" rel_phase="225.0" forward="7"/>
<logic_detector name="F7" rel_phase="270.0" forward="8"/>
<logic_detector name="F8" rel_phase="315.0" forward="9"/>
<logic_detector name="B1" rel_phase="0.0" forward="10"/>
<logic_detector name="B2" rel_phase="45.0" forward="11"/>
<logic_detector name="B3" rel_phase="90.0" forward="12"/>
<logic_detector name="B4" rel_phase="135.0" forward="13"/>
<logic_detector name="B5" rel_phase="180.0" forward="14"/>
<logic_detector name="B6" rel_phase="225.0" forward="15"/>
<logic_detector name="B7" rel_phase="270.0" forward="16"/>
<logic_detector name="B8" rel_phase="315.0" forward="17"/>
<logic_asym_detector name="F15" rel_phase="0.0" forward="2" backward="6" alpha="1.0"/>
<logic_asym_detector name="F26" rel_phase="45.0" forward="3" backward="7" alpha="1.0"/>
<logic_asym_detector name="F37" rel_phase="90.0" forward="4" backward="8" alpha="1.0"/>
<logic_asym_detector name="F48" rel_phase="135.0" forward="5" backward="9" alpha="1.0"/>
<logic_asym_detector name="B15" rel_phase="0.0" forward="10" backward="14" alpha="1.0"/>
<logic_asym_detector name="B26" rel_phase="45.0" forward="11" backward="15" alpha="1.0"/>
<logic_asym_detector name="B37" rel_phase="90.0" forward="12" backward="16" alpha="1.0"/>
<logic_asym_detector name="B48" rel_phase="135.0" forward="13" backward="17" alpha="1.0"/>
</tf>
<zf>
<!-- not yet defined -->
</zf>
<lf>
<!-- not yet defined -->
</lf>
</instrument>
<!-- +++++++++++++++++++++++++++ L E M +++++++++++++++++++++++++++++++++++++++++++++++++ -->
<instrument name="LEM">
<run_name_template>YYYY/lemYY_his_NNNN</run_name_template>
<beamline>MUE4</beamline>
<data_file_format>MUSR-ROOT</data_file_format>
<tf name="WEW NPP">
<no_of_detectors>8</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_detector name="L" rel_phase="0.0" forward="1 5"/>
<logic_detector name="T" rel_phase="-90.0" forward="2 6"/>
<logic_detector name="R" rel_phase="180.0" forward="3 7"/>
<logic_detector name="B" rel_phase="90.0" forward="4 8"/>
<logic_asym_detector name="LR" rel_phase="0.0" forward="1 5" backward="3 7" alpha="1.0"/>
<logic_asym_detector name="TB" rel_phase="-90.0" forward="2 6" backward="4 8" alpha="1.0"/>
</tf>
<tf name="WEW PPC">
<no_of_detectors>8</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_detector name="L" rel_phase="0.0" forward="21 25"/>
<logic_detector name="T" rel_phase="-90.0" forward="22 26"/>
<logic_detector name="R" rel_phase="180.0" forward="23 27"/>
<logic_detector name="B" rel_phase="90.0" forward="24 28"/>
<logic_asym_detector name="LR" rel_phase="0.0" forward="21 25" backward="23 27" alpha="1.0"/>
<logic_asym_detector name="TB" rel_phase="-90.0" forward="22 26" backward="24 28" alpha="1.0"/>
</tf>
<tf name="Bpar NPP">
<no_of_detectors>4</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_detector name="L" rel_phase="0.0" forward="1 5"/>
<logic_detector name="R" rel_phase="160.0" forward="3 7"/>
<logic_asym_detector name="LR" rel_phase="0.0" forward="1 5" backward="3 7" alpha="1.0"/>
</tf>
<tf name="Bpar PPC">
<no_of_detectors>4</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_detector name="L" rel_phase="0.0" forward="21 25"/>
<logic_detector name="R" rel_phase="160.0" forward="23 27"/>
<logic_asym_detector name="LR" rel_phase="0.0" forward="21 25" backward="23 27" alpha="1.0"/>
</tf>
<zf name="NPP">
<no_of_detectors>4</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_asym_detector name="LR" rel_phase="0.0" forward="1 5" backward="3 7" alpha="1.0"/>
</zf>
<zf name="PPC">
<no_of_detectors>4</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_asym_detector name="LR" rel_phase="0.0" forward="21 25" backward="23 27" alpha="1.0"/>
</zf>
<lf name="NPP">
<no_of_detectors>8</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_asym_detector name="UD" rel_phase="0.0" forward="1 2 3 4" backward="5 6 7 8" alpha="1.0"/>
</lf>
<lf name="PPC">
<no_of_detectors>8</no_of_detectors>
<fgb_offset>0</fgb_offset>
<lgb>63000</lgb>
<asym_bkg_range>200 1500</asym_bkg_range>
<logic_asym_detector name="UD" rel_phase="0.0" forward="21 22 23 24" backward="25 26 27 28" alpha="1.0"/>
</lf>
</instrument>
<!-- +++++++++++++++++++++++++++ G P S +++++++++++++++++++++++++++++++++++++++++++++++++ -->
<instrument name="GPS">
<run_name_template>dYYYY/tdc/deltat_tdc_gps_NNNN</run_name_template>
<beamline>PIM3</beamline>
<data_file_format>PSI-BIN</data_file_format>
<tf name="WEP">
<no_of_detectors>6</no_of_detectors>
<fgb_offset>10</fgb_offset>
<lgb>25600</lgb>
<asym_bkg_range>50 300</asym_bkg_range>
<logic_detector name="B" rel_phase="-45.0" forward="2"/>
<logic_detector name="U" rel_phase="45.0" forward="3"/>
<logic_detector name="F" rel_phase="135.0" forward="1"/>
<logic_detector name="D" rel_phase="225.0" forward="4"/>
<logic_asym_detector name="FB" rel_phase="-45.0" forward="2" backward="1" alpha="0.75"/>
<logic_asym_detector name="UD" rel_phase="45" forward="3" backward="4" alpha="1.0"/>
</tf>
<tf name="WED(L)">
<no_of_detectors>6</no_of_detectors>
<fgb_offset>10</fgb_offset>
<lgb>25600</lgb>
<asym_bkg_range>50 300</asym_bkg_range>
<logic_detector name="U" rel_phase="0.0" forward="3"/>
<logic_detector name="D" rel_phase="180.0" forward="4"/>
<logic_detector name="R" rel_phase="90.0" forward="5"/>
<logic_detector name="L" rel_phase="-90.0" forward="6"/>
<logic_asym_detector name="UD" rel_phase="0.0" forward="3" backward="4" alpha="1.0"/>
<logic_asym_detector name="RL" rel_phase="-90.0" forward="5" backward="6" alpha="1.0"/>
</tf>
<zf>
<no_of_detectors>6</no_of_detectors>
<fgb_offset>10</fgb_offset>
<lgb>25600</lgb>
<asym_bkg_range>50 300</asym_bkg_range>
<logic_asym_detector name="FB" rel_phase="0.0" forward="2" backward="1" alpha="0.5"/>
</zf>
<lf name="WED(L)">
<no_of_detectors>6</no_of_detectors>
<fgb_offset>20</fgb_offset>
<lgb>25600</lgb>
<asym_bkg_range>50 300</asym_bkg_range>
<logic_asym_detector name="FB" rel_phase="0.0" forward="2" backward="1" alpha="0.5"/>
</lf>
</instrument>
</instrument_def_psi>

View File

@ -0,0 +1,140 @@
#include <iostream>
#include <fstream>
#include <QApplication>
#include <QProcess>
#include <QMessageBox>
#include <QObject>
#include "git-revision.h"
#include "musrWiz.h"
#include "PAdmin.h"
#include "PMusrWiz.h"
//-------------------------------------------------------------------
/**
*
*/
void PParam::init()
{
fName = QString("UnDef");
fNumber = -1;
fValue = 0.0;
fStep = 0.0;
fPosErr = QString("UnDef");
fBoundLow = QString("UnDef");
fBoundHigh = QString("UnDef");
}
//-------------------------------------------------------------------
/**
*
*/
void musrWiz_syntax()
{
std::cout << "usage: musrWiz [[--version | -v] | --debug [0|1|2] | --help]" << std::endl << std::endl;
std::cout << " --version | -v : print current git-version." << std::endl;
std::cout << " --debug 0 : dump's the instrument definition(s) at startup." << std::endl;
std::cout << " --debug 1 : dump's the musrfit functions at startup." << std::endl;
std::cout << " --debug 2 : dump's the musrfit functions and instrument definition(s) at startup." << std::endl;
std::cout << " --log : writes a log-file 'musrWiz.log' which contains the path-file-name of" << std::endl;
std::cout << " the created msr-file." << std::endl;
std::cout << " --help : shows this help." << std::endl << std::endl;
}
//-------------------------------------------------------------------
/**
*
*/
int main(int argc, char *argv[])
{
int dump = -1;
bool logFile = false;
if (argc == 2) {
if (!strcmp(argv[1], "--version") || (!strcmp(argv[1], "-v"))) {
std::cout << std::endl << "musrWiz - git-branch: " << GIT_BRANCH << ", git-rev: " << GIT_CURRENT_SHA1 << std::endl << std::endl;
return 0;
} else if (!strcmp(argv[1], "--help")) {
musrWiz_syntax();
return 0;
} else if (!strcmp(argv[1], "--log")) { // thought to be used from within musredit only
logFile = true;
} else {
musrWiz_syntax();
return 0;
}
} else if (argc == 3) {
dump = atoi(argv[2]);
if ((dump < 0) || (dump > 2)) {
musrWiz_syntax();
return 0;
}
}
Q_INIT_RESOURCE(musrWiz);
QApplication app(argc, argv);
PAdmin *admin = new PAdmin();
if (!admin->IsValid()) {
delete admin;
return 1;
}
admin->dump(dump);
PMsrData *info = new PMsrData(); // this content will eventually be set by the xml-handler
PMusrWiz wizard(admin, info);
wizard.show();
app.exec();
int result = wizard.result();
if (result == 1) { // if everything went fine up to this point
// check if a log-file shall be written
QProcessEnvironment procEnv = QProcessEnvironment::systemEnvironment();
QString pathName = procEnv.value("HOME", "");
pathName += "/.musrfit/musredit/musrWiz.log";
if (logFile) {
std::ofstream fout(pathName.toLatin1().data(), std::ofstream::out);
fout << "path-file-name: " << info->getMsrPathName().toLatin1().data() << "/" << info->getMsrFileName().toLatin1().data() << std::endl;
fout.close();
}
// check if musrt0 shall be called. If the option --log is set, only add musrt0 flag to in the musrWiz.log file
if (info->getT0Tag() == T0_FROM_MUSR_T0) {
if (logFile) {
std::ofstream fout(pathName.toLatin1().data(), std::ofstream::app);
fout << "musrt0-tag: yes" << std::endl;
fout.close();
} else {
QString musrt0Path = procEnv.value("MUSRFITPATH", "??");
if (musrt0Path == "??") { // not found hence try ROOTSYS
musrt0Path = procEnv.value("ROOTSYS", "??");
if (musrt0Path != "??") {
musrt0Path += "/bin";
}
}
if (musrt0Path != "??") {
QString musrt0 = musrt0Path + "/musrt0";
QString pathFln = QString("%1/%2").arg(info->getMsrPathName()).arg(info->getMsrFileName());
QStringList arguments;
arguments << pathFln;
QProcess::startDetached(musrt0, arguments, "./");
} else {
QMessageBox::warning(0, "WARNING", "Couldn't find musrt0 :-(.\n Only the msr-file has been generated.");
}
}
}
}
if (info)
delete info;
if (admin)
delete admin;
return result;
}

View File

@ -0,0 +1,75 @@
/***************************************************************************
musrWiz.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007-2016 by Andreas Suter *
* andreas.suter@psi.ch *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _MUSRWIZ_H_
#define _MUSRWIZ_H_
#include <QString>
//-------------------------------------------------------------------
class PParam {
public:
PParam() { init(); }
~PParam() {}
void init();
QString getName() { return fName; }
int getNumber() { return fNumber; }
double getValue() { return fValue; }
double getStep() { return fStep; }
QString getPosErr() { return fPosErr; }
QString getBoundLow() { return fBoundLow; }
QString getBoundHigh() { return fBoundHigh; }
void setName(QString str) { fName = str; }
void setNumber(int ival) { fNumber = ival; }
void setValue(double dval) { fValue = dval; }
void setStep(double dval) { fStep = dval; }
void setPosErr(QString str) { fPosErr = str; }
void setBoundLow(QString str) { fBoundLow = str; }
void setBoundHigh(QString str) { fBoundHigh = str; }
private:
QString fName;
int fNumber;
double fValue;
double fStep;
QString fPosErr;
QString fBoundLow;
QString fBoundHigh;
};
//-------------------------------------------------------------------
typedef struct {
int number;
QString fun;
} PFunc;
#endif // _MUSRWIZ_H_

View File

@ -0,0 +1,66 @@
TEMPLATE = app
TARGET = musrWiz
# install path for musrWiz
count( PREFIX, 1 ) {
MUSRWIZ_INSTALL_PATH = $${PREFIX}/bin
}
isEmpty( MUSRWIZ_INSTALL_PATH ) {
MUSR_FIT_PATH = $$(MUSRFITPATH)
count( MUSR_FIT_PATH, 1 ) {
MUSRWIZ_INSTALL_PATH = $$(MUSRFITPATH)
}
}
isEmpty( MUSRWIZ_INSTALL_PATH ) {
ROOT_SYS_PATH = $$(ROOTSYS)
count( ROOT_SYS_PATH, 1 ) {
MUSRWIZ_INSTALL_PATH = $$(ROOTSYS)/bin
}
}
isEmpty( MUSRWIZ_INSTALL_PATH ) {
MUSRWIZ_INSTALL_PATH = /usr/local/bin
}
unix {
message( "Determined installation path: $${MUSRWIZ_INSTALL_PATH}" )
}
unix:target.path = $${MUSRWIZ_INSTALL_PATH}
macx:target.path = /Applications
win32:target.path = c:/musrfit/bin
INSTALLS += target
CONFIG += qt \
warn_on \
release
QT += widgets
QT += xml
QT += core
QT += svg
# set proper permission for Mac OSX
macx {
QMAKE_INSTALL_FILE = install -m 6755 -p -o $$(USER) -g staff
}
INCLUDEPATH += "../../include"
HEADERS = musrWiz.h \
PTheoTemplate.h \
PMusrfitFunc.h \
PInstrumentDef.h \
PAdmin.h \
PMusrWiz.h
SOURCES = PTheoTemplate.cpp \
PMusrfitFunc.cpp \
PInstrumentDef.cpp \
PAdmin.cpp \
PMusrWiz.cpp \
musrWiz.cpp
RESOURCES = musrWiz.qrc
macx:ICON = icons/musrWiz.icns

View File

@ -0,0 +1,12 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>icons/musrWiz-22x22.svg</file>
<file>icons/musrWiz-22x22-dark.svg</file>
<file>icons/musrWiz-32x32.svg</file>
<file>icons/musrWiz-32x32-dark.svg</file>
<file>musrWiz.xml</file>
<file>func_defs/musrfit_funcs.xml</file>
<file>instrument_defs/instrument_def_psi.xml</file>
<file>instrument_defs/instrument_def_isis.xml</file>
</qresource>
</RCC>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<musrwiz>
<default_settings>
<institute>PSI</institute>
<instrument>LEM</instrument>
<fit_type>Single Histo</fit_type>
</default_settings>
</musrwiz>

View File

@ -1,156 +1,20 @@
TEMPLATE = app
TEMPLATE = subdirs
TARGET = musredit
# install path for musredit
count( PREFIX, 1 ) {
MUSREDIT_INSTALL_PATH = $${PREFIX}/bin
}
isEmpty( MUSREDIT_INSTALL_PATH ) {
MUSR_FIT_PATH = $$(MUSRFITPATH)
count( MUSR_FIT_PATH, 1 ) {
MUSREDIT_INSTALL_PATH = $$(MUSRFITPATH)
}
}
isEmpty( MUSREDIT_INSTALL_PATH ) {
ROOT_SYS_PATH = $$(ROOTSYS)
count( ROOT_SYS_PATH, 1 ) {
MUSREDIT_INSTALL_PATH = $$(ROOTSYS)/bin
}
}
isEmpty( MUSREDIT_INSTALL_PATH ) {
MUSREDIT_INSTALL_PATH = /usr/local/bin
}
SUBDIRS = \
musrStep \
musrWiz \
musredit
unix {
message( "Determined installation path: $${MUSREDIT_INSTALL_PATH}" )
}
# where to find the sub-projects - give the folders
musrStep.subdir = musrStep
musrWiz.subdir = musrWiz
musredit.subdir = musredit
unix:target.path = $${MUSREDIT_INSTALL_PATH}
macx:target.path = /Applications
win32:target.path = c:/musrfit/bin
# what sub-project depends on others
musredit.depends = musrStep musrWiz
INSTALLS += target
# This is only needed for SL5.1
exists ( /opt/fontconfig-2.8.0/lib/libfontconfig.so ) {
unix:LIBS += -L/opt/fontconfig-2.8.0/lib/ -lfontconfig
}
exists( /usr/bin/cygwin1.dll ) {
QMAKE_CXXFLAGS += -D_WIN32GCC
QMAKE_LFLAGS_APP = -Wl,--enable-auto-import
}
isEmpty( CC ) {
CC = gcc
}
isEmpty( CXX ) {
CXX = g++
}
QMAKE_CC = $${CC}
QMAKE_CXX = $${CXX}
QMAKE_LINK = $${CXX}
# set proper permission for Mac OSX
macx {
QMAKE_INSTALL_FILE = install -m 6755 -p -o $$(USER) -g staff
QMAKE_INSTALL_PROGRAM = install -m 6755 -p -o root -g admin
}
# install path for the XML configuration file
unix:xml.path = $$(HOME)/.musrfit/musredit
macx:xml.path = $$(HOME)/.musrfit/musredit
win32:xml.path = c:/musrfit/bin
CONFIG += qt \
warn_on \
release
QT += widgets
QT += xml
QT += webkitwidgets
QT += network
QT += printsupport
QT += svg
INCLUDEPATH += "../include"
HEADERS = musredit.h \
musrfit-info.h \
PHelp.h \
PTextEdit.h \
PSubTextEdit.h \
PAdmin.h \
PFindDialog.h \
PReplaceDialog.h \
PReplaceConfirmationDialog.h \
PFitOutputHandler.h \
PDumpOutputHandler.h \
PPrefsDialog.h \
PGetMusrFTOptionsDialog.h \
PGetDefaultDialog.h \
PGetTitleBlockDialog.h \
PGetParameterBlockDialog.h \
PGetTheoryBlockDialog.h \
PGetFunctionsBlockDialog.h \
PGetAsymmetryRunBlockDialog.h \
PGetSingleHistoRunBlockDialog.h \
PGetNonMusrRunBlockDialog.h \
PGetFourierBlockDialog.h \
PGetPlotBlockDialog.h \
PMsr2DataDialog.h \
PChangeDefaultPathsDialog.h \
PMusrEditAbout.h \
../include/git-revision.h
SOURCES = PHelp.cpp \
PTextEdit.cpp \
PSubTextEdit.cpp \
PAdmin.cpp \
PFindDialog.cpp \
PReplaceDialog.cpp \
PReplaceConfirmationDialog.cpp \
PFitOutputHandler.cpp \
PDumpOutputHandler.cpp \
PPrefsDialog.cpp \
PGetMusrFTOptionsDialog.cpp \
PGetDefaultDialog.cpp \
PGetTitleBlockDialog.cpp \
PGetParameterBlockDialog.cpp \
PGetTheoryBlockDialog.cpp \
PGetFunctionsBlockDialog.cpp \
PGetAsymmetryRunBlockDialog.cpp \
PGetSingleHistoRunBlockDialog.cpp \
PGetNonMusrRunBlockDialog.cpp \
PGetFourierBlockDialog.cpp \
PGetPlotBlockDialog.cpp \
PMsr2DataDialog.cpp \
PChangeDefaultPathsDialog.cpp \
PMusrEditAbout.cpp \
main.cpp
FORMS = forms/PFindDialog.ui \
forms/PReplaceDialog.ui \
forms/PReplaceConfirmationDialog.ui \
forms/PGetDefaultDialog.ui \
forms/PMusrEditAbout.ui \
forms/PPrefsDialog.ui \
forms/PGetMusrFTOptionsDialog.ui \
forms/PGetTitleBlockDialog.ui \
forms/PGetParameterBlockDialog.ui \
forms/PGetTheoryBlockDialog.ui \
forms/PGetFunctionsBlockDialog.ui \
forms/PGetAsymmetryRunBlockDialog.ui \
forms/PGetSingleHistoRunBlockDialog.ui \
forms/PGetNonMusrRunBlockDialog.ui \
forms/PGetFourierBlockDialog.ui \
forms/PGetPlotBlockDialog.ui \
forms/PMsr2DataDialog.ui \
forms/PChangeDefaultPathsDialog.ui
RESOURCES = musredit.qrc
macx:ICON = icons/musredit.icns
# build the project sequentially as listed in SUBDIRS !
CONFIG += ordered

View File

@ -38,6 +38,7 @@ using namespace std;
#include <QVector>
#include <QDir>
#include <QProcessEnvironment>
#include <QSysInfo>
#include "musrfit-info.h"
#include "PAdmin.h"
@ -114,8 +115,6 @@ bool PAdminXMLParser::startElement( const QString&, const QString&,
fKeyWord = eFileFormat;
} else if (qName == "lifetime_correction") {
fKeyWord = eLifetimeCorrection;
} else if (qName == "msr_default_file_path") {
fKeyWord = eMsrDefaultFilePath;
} else if (qName == "musr_web_main") {
fKeyWord = eHelpMain;
} else if (qName == "musr_web_title") {
@ -327,9 +326,6 @@ bool PAdminXMLParser::characters(const QString& str)
flag = false;
fAdmin->setLifetimeCorrectionFlag(flag);
break;
case eMsrDefaultFilePath:
fAdmin->setMsrDefaultFilePath(QString(str.toLatin1()).trimmed());
break;
case eHelpMain:
fAdmin->setHelpUrl("main", str);
break;
@ -493,12 +489,6 @@ bool PAdminXMLParser::endDocument()
fAdmin->setDefaultSavePath(str);
}
if (fAdmin->getMsrDefaultFilePath().indexOf('$') >= 0) {
str = expandPath(fAdmin->getMsrDefaultFilePath());
if (!str.isEmpty())
fAdmin->setMsrDefaultFilePath(str);
}
if (fAdmin->getTheoFuncPixmapPath().indexOf('$') >=0) {
str = expandPath(fAdmin->getTheoFuncPixmapPath());
if (!str.isEmpty())
@ -628,7 +618,6 @@ PAdmin::PAdmin() : QObject()
fPrefPathName = QString("");
fExecPath = QString("");
fDefaultSavePath = QString("");
fMsrDefaultFilePath = QString("");
fTheoFuncPixmapPath = QString("");
fBeamline = QString("");
@ -683,7 +672,7 @@ PAdmin::PAdmin() : QObject()
path = procEnv.value("ROOTSYS", "");
pathFln = path + "/bin/" + fln;
if (!QFile::exists(pathFln)) {
// 5th: not found anyware hence create it
// 5th: not found anywhere hence create it
path = procEnv.value("HOME", "");
pathFln = path + "/.musrfit/musredit/" + fln;
createMusreditStartupFile();
@ -1012,280 +1001,52 @@ void PAdmin::createMusreditStartupFile()
// create default musredit_startup.xml file in $HOME/.musrfit/musredit
pathName += "/musredit_startup.xml";
// get the default musredit_startup.xml.in from the internal resources
QFile fres(":/musredit_startup.xml.in");
if (!fres.exists()) {
QString msg = QString("Neither couldn't find nor create musredit_startup.xml. Things are likely not to work.");
QMessageBox::critical(0, "ERROR", msg);
return;
}
if (!fres.open(QIODevice::ReadOnly | QIODevice::Text)) {
QString msg = QString("Couldn't open internal resource file musredit_startup.xml.in. Things are likely not to work.");
QMessageBox::critical(0, "ERROR", msg);
return;
}
// text stream for fres
QTextStream fin(&fres);
// musredit_startup.xml default file
QFile file(pathName);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
// text stream for file
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;
QString line;
while (!fin.atEnd()) {
line = fin.readLine();
line.replace("@prefix@", MUSRFIT_PREFIX);
line.replace("@DOCDIR@", MUSRFIT_DOC_DIR);
if (line.contains("<font_name>")) { // defaults: linux: Monospace, macOS: Courier New
if (QSysInfo::macVersion() != QSysInfo::MV_None) {
line.replace("Monospace", "Courier New");
}
}
if (line.contains("<font_size>")) { // defaults: linux: 12, macOS: 16
if (QSysInfo::macVersion() != QSysInfo::MV_None) {
line.replace("12", "16");
}
}
fout << line << endl;
}
file.close();
fres.close();
}
//--------------------------------------------------------------------------

View File

@ -72,7 +72,7 @@ class PAdminXMLParser : public QXmlDefaultHandler
eTitleFromDataFile, eChisqPreRunBlock, eEstimateN0,
eMusrviewShowFourier, eMusrviewShowAvg, eEnableMusrT0,
eFontName, eFontSize, eExecPath, eDefaultSavePath,
eRecentFile, eBeamline, eInstitute, eFileFormat, eLifetimeCorrection, eMsrDefaultFilePath,
eRecentFile, eBeamline, eInstitute, eFileFormat, eLifetimeCorrection,
eTheoFuncPixmapPath, eFunc, eFuncName, eFuncComment, eFuncLabel,
eFuncPixmap, eFuncParams, eHelpMain, eHelpTitle, eHelpParameters, eHelpTheory, eHelpFunctions,
eHelpRun, eHelpCommand, eHelpFourier, eHelpPlot, eHelpStatistic, eHelpMsr2Data, eHelpMusrFT,
@ -131,7 +131,6 @@ class PAdmin : public QObject
QString getInstitute() { return fInstitute; }
QString getFileFormat() { return fFileFormat; }
bool getLifetimeCorrectionFlag() { return fLifetimeCorrection; }
QString getMsrDefaultFilePath() { return fMsrDefaultFilePath; }
QString getHelpUrl(QString tag);
QString getTheoFuncPixmapPath() { return fTheoFuncPixmapPath; }
unsigned int getTheoryCounts() { return fTheory.size(); }
@ -166,7 +165,6 @@ class PAdmin : public QObject
void setInstitute(const QString str) { fInstitute = str; }
void setFileFormat(const QString str) { fFileFormat = str; }
void setLifetimeCorrectionFlag(const bool flag) { fLifetimeCorrection = flag; }
void setMsrDefaultFilePath(const QString str) { fMsrDefaultFilePath = str; }
void setHelpUrl(const QString tag, const QString url);
void setTheoFuncPixmapPath (const QString str) { fTheoFuncPixmapPath = str; }
void addTheoryItem(const PTheory theo) { fTheory.push_back(theo); }
@ -182,7 +180,6 @@ class PAdmin : public QObject
QString fPrefPathName; ///< path-name of the musredit_startup.xml
QString fExecPath; ///< system path to the musrfit executables
QString fDefaultSavePath; ///< default path where the msr-file should be saved
QString fMsrDefaultFilePath; ///< path where to find musredit source
QString fTheoFuncPixmapPath; ///< path where the default pixmaps can be found
QVector<QString> fRecentFile; ///< keep vector of recent path-file names

Some files were not shown because too many files have changed in this diff Show More