Merged muonspin/musrfit:root6 into master
@ -5,7 +5,7 @@ if (CMAKE_VERSION GREATER_EQUAL 3.12)
|
||||
cmake_policy(SET CMP0075 NEW)
|
||||
endif (CMAKE_VERSION GREATER_EQUAL 3.12)
|
||||
|
||||
project(musrfit VERSION 1.5.2 LANGUAGES C CXX)
|
||||
project(musrfit VERSION 1.6.0 LANGUAGES C CXX)
|
||||
|
||||
#--- musrfit specific options -------------------------------------------------
|
||||
option(nexus "build optional NeXus support. Needed for ISIS" OFF)
|
||||
@ -182,8 +182,7 @@ endif (qt_based_tools)
|
||||
#--- if NeXus check also for HDF4, HDF5, and MXML -----------------------------
|
||||
if (nexus)
|
||||
find_package(HDF5 COMPONENTS CXX REQUIRED )
|
||||
#//as35 - STILL SUPPORTED BY NEXUS ?? -> find_package(HDF4 REQUIRED)
|
||||
#//as35 - STILL SUPPORTED BY NEXUS ?? -> find_package(MXML REQUIRED)
|
||||
find_package(HDF4 REQUIRED)
|
||||
find_package(NeXus REQUIRED)
|
||||
add_definitions(-DPNEXUS_ENABLED)
|
||||
endif (nexus)
|
||||
@ -230,7 +229,7 @@ endif (OpenMP_FOUND)
|
||||
|
||||
if (nexus)
|
||||
message("")
|
||||
#//as35 message(" HDF4 found in ${HDF4_INCLUDE_DIRS}")
|
||||
message(" HDF4 found in ${HDF4_INCLUDE_DIRS}")
|
||||
message(" HDF5 found in ${HDF5_INCLUDE_DIRS}")
|
||||
message(" NeXus found in ${NEXUS_INCLUDE_DIR}")
|
||||
endif (nexus)
|
||||
|
@ -12,6 +12,13 @@ or
|
||||
|
||||
https://bitbucket.org/muonspin/musrfit/commits/all
|
||||
|
||||
Release of V1.6.0, 2020/05/16
|
||||
=============================
|
||||
|
||||
Allow to transform parameter vectors of run collections for mupp.
|
||||
This allows for instance to calculate the superfluid density directly from the
|
||||
depolarization rate and plot it.
|
||||
|
||||
Release of V1.5.2, 2020/02/03
|
||||
=============================
|
||||
|
||||
|
97
cmake/FindHDF4.cmake
Normal file
@ -0,0 +1,97 @@
|
||||
## Process this file with cmake
|
||||
#=============================================================================
|
||||
# NeXus - Neutron & X-ray Common Data Format
|
||||
#
|
||||
# CMakeLists for building the NeXus library and applications.
|
||||
#
|
||||
# Copyright (C) 2011 Stephen Rankin
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This library 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 Lesser General Public License
|
||||
# for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this library; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# For further information, see <http://www.nexusformat.org>
|
||||
#
|
||||
#
|
||||
#=============================================================================
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# find the runtime binaries of the HDF4 library
|
||||
#------------------------------------------------------------------------------
|
||||
find_library(HDF4_DF_LIBRARY NAMES df hdf
|
||||
HINTS ENV HDF4_ROOT
|
||||
PATH_SUFFIXES hdf)
|
||||
|
||||
|
||||
if(HDF4_DF_LIBRARY MATCHES HDF4_DF_LIBRARY-NOTFOUND)
|
||||
message(FATAL_ERROR "Could not find HDF4 DF library!")
|
||||
else()
|
||||
get_filename_component(HDF4_LIBRARY_DIRS ${HDF4_DF_LIBRARY} PATH)
|
||||
message(STATUS "Found HDF4 DF library: ${HDF4_DF_LIBRARY}")
|
||||
message(STATUS "HDF4 libary path: ${HDF4_LIBRARY_DIRS}")
|
||||
endif()
|
||||
|
||||
find_library(HDF4_MFHDF_LIBRARY NAMES mfhdf
|
||||
HINTS ENV HDF4_ROOT
|
||||
PATH_SUFFIXES hdf)
|
||||
|
||||
if(HDF4_MFHDF_LIBRARY MATCHES HDF4_MFHDF_LIBRARY-NOTFOUND)
|
||||
message(FATAL_ERROR "Could not find HDF5 MFHDF library!")
|
||||
else()
|
||||
message(STATUS "Found HDF4 MFHDF library: ${HDF4_MFHDF_LIBRARY}")
|
||||
endif()
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# find the HDF4 header file
|
||||
#------------------------------------------------------------------------------
|
||||
find_path(HDF4_INCLUDE_DIRS mfhdf.h
|
||||
HINTS ENV HDF4_ROOT
|
||||
PATH_SUFFIXES hdf)
|
||||
|
||||
if(HDF4_INCLUDE_DIRS MATCHES HDF4_INCLUDE_DIRS-NOTFOUND)
|
||||
message(FATAL_ERROR "Could not find HDF4 header files")
|
||||
else()
|
||||
message(STATUS "Found HDF4 header files in: ${HDF4_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# search for additional packages required to link against HDF4
|
||||
#------------------------------------------------------------------------------
|
||||
find_package(JPEG REQUIRED)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# add libraries to the link list for NAPI
|
||||
#------------------------------------------------------------------------------
|
||||
get_filename_component(LIB_EXT ${HDF4_DF_LIBRARY} EXT)
|
||||
if(LIB_EXT MATCHES .a)
|
||||
message(STATUS "HDF4 DF library is static")
|
||||
list(APPEND NAPI_LINK_LIBS "-Wl,-whole-archive" ${HDF4_DF_LIBRARY} "-Wl,-no-whole-archive")
|
||||
else()
|
||||
list(APPEND NAPI_LINK_LIBS ${HDF4_DF_LIBRARY})
|
||||
endif()
|
||||
|
||||
|
||||
get_filename_component(LIB_EXT ${HDF4_MFHDF_LIBRARY} EXT)
|
||||
if(LIB_EXT MATCHES .a)
|
||||
message(STATUS "HDF4 MFHDF library is static")
|
||||
list(APPEND NAPI_LINK_LIBS "-Wl,-whole-archive" ${HDF4_MFHDF_LIBRARY} "-Wl,-no-whole-archive")
|
||||
else()
|
||||
list(APPEND NAPI_LINK_LIBS ${HDF4_MFHDF_LIBRARY})
|
||||
endif()
|
||||
|
||||
list(APPEND NAPI_LINK_LIBS jpeg)
|
||||
|
||||
include_directories ( SYSTEM ${HDF4_INCLUDE_DIRS} )
|
||||
link_directories(${HDF4_LIBRARY_DIRS})
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2016 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2016 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: 08712e994533f427d7efeeb2574ca61a
|
||||
config: 90c2680fff90669033f1bce5f6912272
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
|
950
doc/html/_images/mupp-add-var.svg
Normal file
@ -0,0 +1,950 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<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:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="mupp-add-var.svg"
|
||||
viewBox="0 0 734 524"
|
||||
height="524"
|
||||
width="734"
|
||||
id="svg1566"
|
||||
version="1.1">
|
||||
<metadata
|
||||
id="metadata1572">
|
||||
<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>
|
||||
<defs
|
||||
id="defs1570" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="g1574"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="35"
|
||||
inkscape:window-x="349"
|
||||
inkscape:cy="262"
|
||||
inkscape:cx="367"
|
||||
inkscape:zoom="1"
|
||||
showgrid="false"
|
||||
id="namedview1568"
|
||||
inkscape:window-height="961"
|
||||
inkscape:window-width="1831"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<g
|
||||
id="g1574"
|
||||
inkscape:label="Image"
|
||||
inkscape:groupmode="layer">
|
||||
<image
|
||||
id="image1576"
|
||||
xlink:href="data:image/png;base64,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
|
||||
wbtlixb8uNzWq5DEx8eHwIO/kzdvHrJnz860KZPZtmUzu3du57uF8yldqpS9bbWqVVm/dg1du3Rm
|
||||
2Q9LmT93TrI12WTOnJl8+fKyYuVPhISEYDKZuHL1qsOB1XmoSelSpfh+yWL27NrBwvnz6PBRe375
|
||||
6Ud7/dIli+jUsQOzZ83g9317WLHsB/z8/GjY4E3WrV3N7p3bGTJ4EKr66KUYNnQIG9evZc+unaz6
|
||||
eSVNmzS21xUtWgSLxcLyFT8SFRVFbGwsJ0+d4tdNm+1tBg8cyKbNm/j6m4lcvnKFuLg4rl27xoyZ
|
||||
s/h10yZ7u9SYTCaWLV/B0aPH7L1Jyfnmzk3lSpWY+u233H/wgCtXr/LdosW0eOst56bPRZ/evZg4
|
||||
4Wu+HPs5ixYu4MflP9Dq7ZYObeq88QYrlv3Anl07WL7se2rXrmWvW/b9Eho2bACA0Whg/97djP18
|
||||
tL1+8qRv+Kh9OwBq1qhO4B+BaJpmr3+n1dv8tHIFe3bt5NcN6+jbpzcGg8FeD7ZwMW/ubPbs2sGy
|
||||
H5ZSrmxZe135//2P75csZuf2bezYvo2F8+fZX+vUtrd0ySL69e3DzOnfsmTRQpYs/s5hfTqdji6d
|
||||
O7Fu7Wp2bt/G7FkzKFyoEACZvLwIPPg7Pj4+ALz2WjkOBx7krebNAFBVlZ3bt9l/L1Lb/rChQwi5
|
||||
G8LI0aOZv2AhH/fqzdlz5+z1Jf392bJ1KxcvXsJkMnPnzh3Wrd/A7eBgIOVQE4PBwKf9+7Fty2Y2
|
||||
/7qBjh0+YuWKZdSrZwtNSb+X7737Dls2bWTPrh30+qQn3t7eTJzwNfv27OKnlSsoWdLfvs70vCbJ
|
||||
fT72SwID/yAsLIygs2f5+edfKFumjHMzu9q1aqJTVWbNnkNMTAx79+1jx86dtEz2Ho+KiuLcufNU
|
||||
r1Y12ZKOqlWtyoZ1a+jZozsL5s1l5YplDBo4AKPRaG9TpHBh5syayc7t21i3ZhWdO3VEp9MB0K9v
|
||||
H0YMG2pvO2fWTDZtfPShpvWHHzD926mA7cP2/fv3uXXrlr0+PY/D2br1G9i7bx+RkanfZvnAwYNs
|
||||
3bqN27dvO1elauvWbSxf8SOXr1zh/v37LPxuEdHR0ZT0L+HcFEj/8eVQYCA1a1Z3KDt4KJAa1auh
|
||||
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
|
||||
jKRRE1sr7D/l5MlT//h7/J2ioq5Tq45zQv7/i7HvjXMs+tsNfHuwY5HdszycxXE+Dhw8yMaNG+3K
|
||||
0rNYMnex8/1UqVyJX7dsISUllWqvVeXpp55m5MjbZ0Hl0aTg/Rc9WawYo0aOwN3Njaio63z22YI7
|
||||
HiTwMAkICGD+3DmOxYDtVkITJtrujCH/XfPmf+ZY9Kc8jNu+4wMp/ixXV1f69u1NaEgIqampHD58
|
||||
hH79BvxtBy0i8uj6/IsvHYvsDBs+0rHoT6lZowZDhw4BbBfG9+s/wGlnTP+MShUr0u8uT7ye+vHH
|
||||
dteI/D9TVxMRERER+U95WLuaPPjl8iIiIiIi8sAUvEVEREREnEDBW0RERETECRS8RUREREScQMFb
|
||||
RERERMQJFLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJ
|
||||
FLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERE
|
||||
RJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtE
|
||||
RERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkU
|
||||
vEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVERERE
|
||||
nEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RE
|
||||
RETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8
|
||||
RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RURERESc
|
||||
QMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERE
|
||||
RMQJFLxFRERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxF
|
||||
RERERJxAwVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxA
|
||||
wVtERERExAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERE
|
||||
xAkUvEVEREREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVE
|
||||
REREnEDBW0RERETECRS8RUREREScQMFbRERERMQJFLxFRERERJxAwVtERERExAkUvEVEREREnOCh
|
||||
DN7W5CS8nn3NsVhERERE5J48S1eHpETH4oeCq2PBwyBuWieydp9JtsZvOw4SEREREbm7pJvEfvKG
|
||||
Y+lD4aEM3iRGEze+uWOpiIiIiMgj66HsaiIiIiIi8l+j4C0iIiIi4gQK3iIiIiIiTqDgLSIiIiLi
|
||||
BAreIiIiIiJOoOAtIiIiIuIECt4iIiIiIk6g4C0iIiIi4gQK3iIiIiIiTqDgLSIiIiLiBAreIiIi
|
||||
IiJOoOAtIiIiIuIECt4iIiIiIk6g4C0iIiIi4gQK3iIiIiIiTqDgLSIiIiLiBP/Z4D1l4kfUrlUD
|
||||
gGefKcXSxQsdavx92rdtzTtDBjkWi4iIiPwrXFxcMJv/szHvkeXqWPCwKFK4EC1fb07xJ4vh6enB
|
||||
lfBwtmzdzpKvl3L9xg3H6k7zRod2BAUFMnbch0bZtu078Pb2TldLRERE5N9htVr56vN5JCcn071n
|
||||
X6KuX8dkMjlWk3/BQ3ko9OwzpZgy8SMiIiLo3f8t6jVqxtB3R2KxWChT5jnH6v+6I0ePsXvPXsdi
|
||||
EREREaeyWq1YrVYeL1iAgwf2M2PaZPx8fbFarY5V5V/wULZ49+7ZnXU/bWDKtOlG2bnz55k9d75x
|
||||
xJYta1a6de3Es6VKAbB7z16mzfiU6OhoY5y78fDwoEPb1lQoXw4VZidoAAAgAElEQVQvL08OHznK
|
||||
5KmfcPnKFQC8PD1p26YlFcqXI6ufH1fCwxk/cQqBgYHUrlkDFxczX8yfA0CHzt1o0bwpuXLlZNSY
|
||||
ccD9523GtCns2buPQo8XJDAwAIDJUz/h9/0HAChZ4mm6du5IaEgoVqyEhZ2jZ5/+WK1WSpZ4mqef
|
||||
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
|
||||
o4AtPM/4ZBrh4eE0aNSEl199jclTp5KamgLAoUOHaNm6DZWqvMz7H37EwLcGUKxo0fSTp2TJknTs
|
||||
1JmGjZty/vz/2rvv8KiqxI3j771Tkkky9Al1F0RFCOIu4NrL2unYBZFiQREBey/Iuj9XXdeOBbvY
|
||||
EAs2OtioKp3EAgur1CSEljLJlHt/f4QZkoHABJIZwO/nee6T5Jwzd2Yyc07eOTn33nUaPmxopfqK
|
||||
/u+f/1Bpaam69eilq68ZrB7du1eqD4fD+s8TT+qc87rqggsvliTdfXf5f8imz5ihjz+ZoG++/Vbn
|
||||
X3iRzr/wIkI3AKDWHTTBW5JeGvOyJKksENBrMbNbknTfPXdr6uSJ+nrmdD3+70f1xJNPac2atZKk
|
||||
+vXrK38vy0Tq16+vvLy82GJJUm5enurVqxdbXMmdd9yu8R9+pN/XrImtUnp6uiSpqKioUnlhYWG0
|
||||
TpK+/+F7ZWeXB621a9dp9er/qV3bttH6UCikZ58brZISv3799VctX56tZUuXacGChQoEAvpkwgQd
|
||||
fnhrud3u6G125/zevTRj2pTodtqpp0iK7/dUlVatWlXa54xpU3TG3/8erd+8ebP69uuvQVderZdf
|
||||
eVXz58+vtKY6GAzqnXffq/D9u+rZo2e0fvr0GTr5pBP13TdfacqkL2Uapl59bec6a6n89/z0U0+o
|
||||
fv16unbI9dq8ZYskqc9ll+rlV17Vr7/+Ksuy9N2sWVqwcKHOPKN8Df7SZcu0atVq9exRHnwbNGig
|
||||
0049RR9//El037vzwbj3NHXyRH33zVfq3auXRj74j13Wie/Jy6+8qtvuuENDrr9Bn372uW679VZd
|
||||
duklkuJ/zyxatFjTps9QIBDQZ59/odTUFE347DOtWbNWxcXFmjhpsrKyKgfcfRUMBJSenq42bdrI
|
||||
5XJp8+bNWrV6tSTptFNPk8Pp0BNPPqWioiKFw2EtXbpMJSV+SdInEz7Vli1bZVmW5s//XrPnzNWx
|
||||
xx5bcfcaO/ZthULlQf3bb79V+6z2leojmjZtomM7d9ZTTz0tv9+vLVu2aswrldfPL168RMuWL1co
|
||||
FNL2wkK9NOZl/S3m/gAASKSDYqlJRCgU0qrVqxUIlO023Dz9zLP6btZsOZ1OHX54az048gFt375d
|
||||
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
|
||||
fXXu1FGybXXq+FctWLgoel+ffzFRZ591hlLcbsm21bN7Vy1eslRr165Tfn6+vvtulkr9foWCQb37
|
||||
3jg5nQ4d1qpl9HEGAgG9P2585ecpSXb5czi6fTsdu+O+K76v49l3KBTWy6+8Jn9JiVau/K9++vln
|
||||
5eTkaPHiJQqUlenLiZN0WKuWcrtckm3rwvN7aezYd7Vy5X9lW5bmzpuvJUuW6rRTTq78+NgOnS1e
|
||||
sbdjY6upTVK3LudqwofvV9ratT0q+t47+cTjJUmvvPq6ykpLVbh9u1597U2dfdaZlfZT8ftQKKTx
|
||||
4z+SbFuhYFDjP/xYXc47Z9f7Z2OrqS3JkrzUxE76WhvUnh8WLNQPCxZKkpo1a6o7br1ZD95/r64d
|
||||
Ojz6uuflb4p+X+IvVZrHI1uSz9dItm1rw8bcaP269RskSY0yfcrNz9eChYvUqVNH5W8q0E8//6K5
|
||||
87/X0OuvU0pqqo5u317PvzgmetvZc+eptLRMZ/z9dM38+mudfdZZ+s9Tz8hW+RlWBl89SJ07dZQn
|
||||
1SPLspSWlqa6devKlmRL2rp1q0Lh8I697WRL2rJtm955b5yGXDdYQ4ffFC3f132XlpYqf1NB9LH7
|
||||
S0tlGIZSPakqCwTUtGkTDRp4hfr2uTR6G4/Ho1WrV9OfDlnxvLKMp6hdM7/+Rq+98Valsn+MvF9S
|
||||
+Tu0SZMmql+vnt587eVovWEaCoWCSktPjy43iYx9tqTt2wsVrHDsz6aCzapXt66cLpeCwWC0HKg5
|
||||
yR0pkxu8k/vckUDr12/Q519O0j133ibDMGKrd5GXv0mGYahxZqY25uZKUnRZSX5e+RrwBQsXqXfP
|
||||
7iooKNCPCxdp67Zt2pibq0suukAlJcVatfp/kd0pHA5r0pQp6t6tiyzbUigc0qzZcyRJgwb0U8s/
|
||||
/1k33ny7tm7bJkma8OG4So9zbx+SP/x4gnr37K5uXc6rVB7PvqtrY26uXn9zrGZ+9U1sFQ5Ve3n/
|
||||
SYqvDbAfSktLlZ+/qVJZxQPmN+bmKS8vXwOuGlyhxU4OhyO2SPXq1VVaWppKSkokSc2bN9PWbdsI
|
||||
3ag9SR4rk7/UBIeknj266ZyzzlSmzyeXy6WWLf+s3j27KzvnJ9l7S7GS8vLytGjxEg29/lplZKTL
|
||||
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
|
||||
"
|
||||
preserveAspectRatio="none"
|
||||
height="524"
|
||||
width="734" />
|
||||
<ellipse
|
||||
style="fill:none;fill-opacity:0;stroke:#ff9900;stroke-width:1.74924;stroke-opacity:1"
|
||||
id="path1087"
|
||||
cx="124"
|
||||
cy="176"
|
||||
rx="18.125381"
|
||||
ry="18.125383" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:27.4347px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9900;fill-opacity:1;stroke:none;stroke-width:0.685868"
|
||||
x="115.03148"
|
||||
y="186"
|
||||
id="text1091"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1089"
|
||||
x="115.03148"
|
||||
y="186"
|
||||
style="fill:#ff9900;fill-opacity:1;stroke-width:0.685868">1</tspan></text>
|
||||
<ellipse
|
||||
ry="18.125383"
|
||||
rx="18.125381"
|
||||
cy="348"
|
||||
cx="129"
|
||||
id="path1087-6"
|
||||
style="fill:none;fill-opacity:0;stroke:#ff9900;stroke-width:1.74924;stroke-opacity:1" />
|
||||
<text
|
||||
id="text1091-5"
|
||||
y="358"
|
||||
x="120.03148"
|
||||
style="font-style:normal;font-weight:normal;font-size:27.4347px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9900;fill-opacity:1;stroke:none;stroke-width:0.685868"
|
||||
xml:space="preserve"><tspan
|
||||
style="fill:#ff9900;fill-opacity:1;stroke-width:0.685868"
|
||||
y="358"
|
||||
x="120.03148"
|
||||
id="tspan1089-6"
|
||||
sodipodi:role="line">2</tspan></text>
|
||||
<ellipse
|
||||
ry="18.125383"
|
||||
rx="18.125381"
|
||||
cy="431"
|
||||
cx="283"
|
||||
id="path1087-9"
|
||||
style="fill:none;fill-opacity:0;stroke:#ff9900;stroke-width:1.74924;stroke-opacity:1" />
|
||||
<text
|
||||
id="text1091-3"
|
||||
y="441"
|
||||
x="274.03149"
|
||||
style="font-style:normal;font-weight:normal;font-size:27.4347px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9900;fill-opacity:1;stroke:none;stroke-width:0.685868"
|
||||
xml:space="preserve"><tspan
|
||||
style="fill:#ff9900;fill-opacity:1;stroke-width:0.685868"
|
||||
y="441"
|
||||
x="274.03149"
|
||||
id="tspan1089-7"
|
||||
sodipodi:role="line">3</tspan></text>
|
||||
<ellipse
|
||||
style="fill:none;fill-opacity:0;stroke:#ff9900;stroke-width:1.74924;stroke-opacity:1"
|
||||
id="path1087-9-4"
|
||||
cx="428"
|
||||
cy="470"
|
||||
rx="18.125381"
|
||||
ry="18.125383" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:27.4347px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9900;fill-opacity:1;stroke:none;stroke-width:0.685868"
|
||||
x="419.03149"
|
||||
y="480"
|
||||
id="text1091-3-5"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1089-7-2"
|
||||
x="419.03149"
|
||||
y="480"
|
||||
style="fill:#ff9900;fill-opacity:1;stroke-width:0.685868">4</tspan></text>
|
||||
<ellipse
|
||||
ry="18.125383"
|
||||
rx="18.125381"
|
||||
cy="470"
|
||||
cx="650"
|
||||
id="path1087-9-4-5"
|
||||
style="fill:none;fill-opacity:0;stroke:#ff9900;stroke-width:1.74924;stroke-opacity:1" />
|
||||
<text
|
||||
id="text1091-3-5-4"
|
||||
y="480"
|
||||
x="641.03149"
|
||||
style="font-style:normal;font-weight:normal;font-size:27.4347px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9900;fill-opacity:1;stroke:none;stroke-width:0.685868"
|
||||
xml:space="preserve"><tspan
|
||||
style="fill:#ff9900;fill-opacity:1;stroke-width:0.685868"
|
||||
y="480"
|
||||
x="641.03149"
|
||||
id="tspan1089-7-2-7"
|
||||
sodipodi:role="line">5</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 65 KiB |
1303
doc/html/_images/mupp-gui-0-new.png.svg
Normal file
After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 31 KiB |
@ -1,22 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: acknowledgment
|
||||
|
||||
.. _acknowledgment:
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
|
||||
|
||||
**Bastian M. Wojek**
|
||||
I am very much indebted to BMW for his rigorous testing of ``musrfit``, his many useful suggestions, contributions, and for the
|
||||
largest part of the user manual of ``musrfit`` which makes it accessible to a broader audience! Many thanks Bastian!
|
||||
|
||||
**Uldis Locans**
|
||||
I am very much indebted to Uldis work on :ref:`DKS <setup-dks>` enabling the GPU support for ``musrfit``. His kind, calm, and
|
||||
extremely competent way to deal with his projects as well as to deal with the chaos of physicists way to think is admirable. Many thanks Uldis!
|
||||
|
||||
**Zaher Salman**
|
||||
Thanks for his beta-NMR and web-interface contributions to ``musrfit``!
|
||||
|
||||
**Robert Scheuermann**
|
||||
Thanks for his constant contructive input on ``musrfit``!
|
@ -1,8 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: any2many
|
||||
|
||||
any2many - a Universal |mgr|\SR-file-format converter
|
||||
=====================================================
|
||||
|
||||
``any2many`` allows to convert most |mgr|\SR-file-formats from one to the other.
|
||||
For a detailed description see :ref:`here <any2many>`.
|
@ -1,9 +0,0 @@
|
||||
.. index:: bugtracking
|
||||
.. _bugtracking:
|
||||
|
||||
Bugtracking
|
||||
===========
|
||||
|
||||
For reporting bugs or requesting new features and improvements please use
|
||||
the `bitbucket-repo <https://bitbucket.org/muonspin/musrfit/issues>`_ (preferred)
|
||||
or send an e-mail to A. Suter at PSI.
|
@ -1,18 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: cite
|
||||
.. _cite:
|
||||
|
||||
How to Cite ``musrfit``?
|
||||
========================
|
||||
|
||||
Since quite some effort is going into the development and maintenance of the ``musrfit`` package, you should at least acknowledge it in your publication if you have used it to analyze your data. Even better of course is to cite it properly by the reference given beneath
|
||||
|
||||
* A.\ Suter, B.M. Wojek, "Musrfit: A Free Platform-Independent Framework for |mgr|\SR Data Analysis", Physics Procedia **30**, 69 (2012). `<http://dx.doi.org/10.1016/j.phpro.2012.04.042>`_
|
||||
|
||||
The GPU high speed ``musrfit`` version is utilizing ``DKS``. In case you are using this version, please also add the following citations
|
||||
|
||||
* A.\ Adelmann, U. Locans, A. Suter, "The Dynamic Kernel Scheduler—Part 1", Computer Physics Communications **207**, 83 (2016). `<https://doi.org/10.1016/j.cpc.2016.05.013>`_
|
||||
* U.\ Locans, *et al.*, "Real-time computation of parameter fitting and image reconstruction using graphical processing units", Computer Physics Communications **215**, 71 (2017). `<https://doi.org/10.1016/j.cpc.2017.02.007>`_
|
||||
* U.\ Locans and A.\ Suter, "Musrfit – Real Time Parameter Fitting Using GPUs", JPS Conf. Proc. *21*, 011051 (2018). `<http://dx.doi.org/10.7566/JPSCP.21.011051>`_
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
.. musrfit docu documentation master file, created by
|
||||
sphinx-quickstart on Sun Jun 17 11:00:32 2018.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to the musrfit documentation!
|
||||
=====================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
cite
|
||||
tutorial
|
||||
user-manual
|
||||
user-libs
|
||||
setup-standard
|
||||
setup-dks
|
||||
musredit
|
||||
mupp
|
||||
msr2data
|
||||
any2many
|
||||
musr-root
|
||||
acknowledgement
|
||||
bugtracking
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`search`
|
@ -1,374 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: msr2data
|
||||
|
||||
.. _msr2data:
|
||||
|
||||
msr2data - A Program for Automatically Processing Multiple ``musrfit`` msr Files
|
||||
================================================================================
|
||||
|
||||
``msr2data`` (originally written by B. M. Wojek) is a program implemented in ``C++``. Its purpose is
|
||||
to process multiple msr files (input files for ``musrfit``) with the same parameters and summarize the fitting
|
||||
results either in a *TRIUMF DB* [#f1]_ or a *column ASCII* file. This allows essentially to
|
||||
|
||||
#. Collect the fit parameters.
|
||||
#. Generate *new* input msr files based on old ones.
|
||||
|
||||
.. [#f1] For an abridged description of this format see `here <http://musr.org/xyfit/dbformat.html>`_. The DB files
|
||||
produced by ``msr2data`` can be viewed for instance with :ref:`mupp <mupp>` or |mgr|\View `see here <http://musr.org/muview/>`_, however,
|
||||
they are not completely backward-compatible to the original ``db language`` since the parameter names can be longer than five or
|
||||
six characters! In order to establish this backward compatibility (if needed) the user has to ensure the correct length of the
|
||||
parameter names in the msr files!
|
||||
|
||||
.. _msr2data-basic-usage:
|
||||
|
||||
Basic Types of Usage
|
||||
--------------------
|
||||
|
||||
Apart from numerous :ref:`optional parameters <msr2data-opt-param>` that might be set, in principle there are four different ways of calling ``msr2data``.
|
||||
These differ in how the list of runs which should be processed is supplied:
|
||||
|
||||
**msr2data <run> <extension> [optional parameters]**
|
||||
A single run number.
|
||||
**msr2data <firstRunNo> <lastRunNo> <extension> [optional parameters]**
|
||||
An interval of run numbers is specified through the first and the last run number. The condition ``<firstRunNo>`` < ``<lastRunNo>`` is not necessary.
|
||||
**msr2data \[ <runList> \] <extension> [optional parameters]**
|
||||
Where ``<runList>`` is one or a combination of the following:
|
||||
|
||||
#. ``<run0>, <run1>, <run2>, ... <runN>`` : run numbers, *e.g.* 123 124,
|
||||
#. ``<run0>-<runN>`` : a range, *e.g.* 123-125 -> 123 124 125,
|
||||
#. ``<run0>:<runN>:<step>`` : a sequence, *e.g.* 123:127:2 -> 123 125 127. ``<step>`` has to be a positive integer.
|
||||
#. A ``<runList>`` can also combine (1)-(3), *e.g.* 123 128-130 133, etc.
|
||||
|
||||
**msr2data <runListFileName> <extension> [optional parameters]**
|
||||
An ASCII file containing a list of run numbers and optional external parameters is passed to ``msr2data``. For the structure of the ASCII file
|
||||
see :ref:`below <run-list-file_structure>`.
|
||||
|
||||
All four basic types of calling ``msr2data`` contain the *mandatory* file-name ``<extension>`` passed right after the list of runs. The meaning of
|
||||
this ``<extension>`` should become clear after giving examples for all four cases:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8472 _tf_h13
|
||||
|
||||
generates the DB file ``out.db`` (can be changed by using the -o option) from ``8472_tf_h13.msr``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8472 8474 _tf_h13
|
||||
|
||||
generates the DB file ``out.db`` (can be changed by using the -o option) from ``8472_tf_h13.msr``, ``8473_tf_h13.msr``, and ``8474_tf_h13.msr``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data [8472 8470] _tf_h13
|
||||
|
||||
generates the DB file ``out.db`` (can be changed by using the -o option) from ``8472_tf_h13.msr`` and ``8470_tf_h13.msr``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data [8470:8474:2] _tf_h13
|
||||
|
||||
generates the DB file ``out.db`` (can be changed by using the -o option) from ``8470_tf_h13.msr``, ``8472_tf_h13.msr``, and ``8474_tf_h13.msr``.
|
||||
|
||||
.. _run-list-file_structure:
|
||||
|
||||
Run List File Structure
|
||||
+++++++++++++++++++++++
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data run.list _tf_h13
|
||||
|
||||
generates the DB file ``out.db`` (can be changed by using the -o option) from all runs listed in the ASCII file ``run.list`` in the working directory.
|
||||
In this file it is also possible to include *external* parameters which should be put in the resulting DB file. The structure of the ``run.list`` is the following:
|
||||
|
||||
::
|
||||
|
||||
RUN VAR1 VAR2 VAR3 ...
|
||||
8460 200 27.1 46.2 ...
|
||||
8472 205 27.1 46.3 ...
|
||||
8453 210 27.2 45.9 ...
|
||||
· · · ·
|
||||
· · · ·
|
||||
· · · ·
|
||||
|
||||
*The first not commented and not empty line determines the parameter names and labels and has to be present!*
|
||||
|
||||
It is allowed to add comments (with a preceding '#') or empty lines to the run-list file.
|
||||
|
||||
The following should be mentioned together with the above examples:
|
||||
|
||||
* The output files in the examples above are only newly created if they did *not* exist before invoking ``msr2data``.
|
||||
If the files were already present the msr file data would be appended!
|
||||
* If the files have been newly created, also the DB file header is written. If the files were present before, only
|
||||
the data blocks are appended. The output of the header can either be forced or completely suppressed with the ``header``
|
||||
and ``noheader`` options as shall be seen later.
|
||||
* If the ``musrfit`` output files do not have an ``<extension>`` as specified above like ``8472.msr`` one has to call ``msr2data`` like in the following example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8472 8460 ""
|
||||
|
||||
.. _msr2data-opt-param:
|
||||
|
||||
Optional Parameters
|
||||
-------------------
|
||||
|
||||
As mentioned already above there are some optional parameters which change the behavior of ``msr2data`` and can be passed in any order. Here is a complete list:
|
||||
|
||||
**data**
|
||||
The output file format is changed to a simple column ASCII file (default output file name: out.dat).
|
||||
**new**
|
||||
An existing output file is deleted before new information is written to it.
|
||||
**header**
|
||||
Force the output of the file header even if the output file was present before.
|
||||
**noheader**
|
||||
The output of the file header is suppressed—also if the output file is newly created.
|
||||
If either both or none of the header options are given, ``msr2data`` writes the file header only to new files
|
||||
and it solely appends the data blocks to an existing output file assuming that the header is present already.
|
||||
**nosummary**
|
||||
There will be no attempt to read additional information like the temperature or the applied magnetic field from
|
||||
the data files even if these information were present there.
|
||||
**paramList <param>**
|
||||
option used to select the parameters which shall be exported. ``<param>`` is a list of parameter numbers to be exported.
|
||||
Allowed lists are: ``<startNo>-<endNo>``, *e.g.* ``1-16`` will export parameters 1 to 16. Space separated numbers, *e.g.:* ``1 3 5``.
|
||||
A combination of both is possible, *e.g.* ``1-16 19 31 62``, and so on.
|
||||
**-o<outputFileName>, -o <outputFileName>**
|
||||
The processed data will be written to the file ``<outputFileName>`` instead of the default ``out.db`` or ``out.dat``.
|
||||
If ``<outputFileName>`` is equal to none (case-insensitive) the parameter data are not appended to any output file.
|
||||
**fit**
|
||||
Additionally to the final data collection ``msr2data`` will invoke ``musrfit`` to fit the specified runs.
|
||||
All msr files are assumed to be present, none is newly generated!
|
||||
**fit-<template>[!]**
|
||||
Additionally to the final data collection ``msr2data`` will generate msr files for the runs specified in the list
|
||||
of runs and invoke :ref:`musrfit <musrfit>` for performing fits of the data. As template for the first run the file
|
||||
``<template><extension>.msr`` (or if not available: ``<template><extension>.mlog``) is used; the subsequent input
|
||||
files will be created using the msr output of the last processed runs ("chain fit"). However, if for all runs only
|
||||
the given template should be used one has to append an exclamation mark (**!**) to the ``<template>``.
|
||||
**msr-<template>**
|
||||
The same as ``fit-<template>[!]``, *without* calling ``musrfit`` and the final data collection, *i.e.* only the msr files for the given runs are generated.
|
||||
**-k**
|
||||
If specified together with the ``fit-<template>`` option, the :ref:`- -keep-mn2-output <musrfit>` option is passed to ``musrfit``.
|
||||
In the case no fits should be done, this option is ignored.
|
||||
**-t**
|
||||
In case this option is given additionally to the ``fit-<template> option``, ``musrfit`` is called with
|
||||
the :ref:`- -title-from-data-file <musrfit>` option. If no fitting is done, this option is ignored.
|
||||
|
||||
**Examples:**
|
||||
|
||||
In order to illustrate the usage of these parameters a few examples with explanations are given below:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8400 8460 _tf_h13 -oABC.db fit-8472
|
||||
|
||||
Using ``8472_tf_h13.msr`` as first template, ``msr2data`` generates subsequent msr input files ``8400_tf_h13.msr`` through ``8460_tf_h13.msr``,
|
||||
calls ``musrfit`` to perform a fit of these files and collects the results of the fits together with the DB header in the new file ``ABC.db``.
|
||||
Additionally, some information about external parameters like the temperature will be passed to ``ABC.db`` if it is present in the data files.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data [8500 8502-8504 8507] _zf fit-8472 noheader nosummary -o DEF.db
|
||||
|
||||
Using ``8472_zf.msr`` as first template, ``msr2data`` generates subsequent msr input files ``8500_zf.msr``, ``8502_zf.msr``, ``8503_zf.msr``,
|
||||
``8504_zf.msr``, and ``8507_zf.msr``, calls ``musrfit`` to perform a fit of these files and collects the results of the fits in the file ``DEF.db``
|
||||
*without* writing the DB file header or attempting to read additional information from the data files.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8595 8585 "" noheader fit-8472! -oGHI.dat data nosummary -k
|
||||
|
||||
Using ``8472.msr`` as template for all runs, ``msr2data`` generates the msr input files ``8595.msr`` through ``8585.msr``, calls ``musrfit`` with
|
||||
the option ``--keep-mn2-ouput`` to perform a fit of these files and collects the results of the fits in the column-structured ASCII file ``GHI.dat``
|
||||
*without* writing any file header or attempting to read additional information from the data files.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8472 8475 "" fit -o none
|
||||
|
||||
Take the *given* msr files ``8472.msr`` through ``8475.msr`` and call ``musrfit`` *without* finally summarizing the results.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8472 8475 _tf_h13 msr-8471!
|
||||
|
||||
Using ``8471_tf_h13.msr`` as template for all runs, ``msr2data`` generates the msr input files ``8472_tf_h13.msr`` through ``8475_tf_h13.msr``.
|
||||
*No fitting will be performed and no DB or ASCII output will be generated!*
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data [8472 8475-8479] _tf_h13 paramList 1-16 data -o bestData.dat
|
||||
|
||||
Will collect the parameters 1 to 16 from the msr-files ``8472_tf_h13.msr``, ``8475_tf_h13.msr``, ``8476_tf_h13.msr``, ``8477_tf_h13.msr``, ``8478_tf_h13.msr``,
|
||||
and ``8479_tf_h13.msr`` and write these parameters into a column like output file ``bestData.dat``.
|
||||
|
||||
.. index:: msr2-data-global-mode
|
||||
|
||||
The Global Mode
|
||||
---------------
|
||||
|
||||
Apart from all the options described :ref:`above <msr2data-opt-param>` there is another program option: **global**.
|
||||
This option changes the general behavior of ``msr2data`` in that way that instead of processing one msr file for each
|
||||
run it combines all specified runs in *one single msr file* with the possibility to define common parameters for all
|
||||
runs as well as run-specific parameters. When writing the obtained parameters to a DB file or a column-structured
|
||||
ASCII file that single msr file is read and the parameters valid for each run are extracted. The global option can be
|
||||
used in conjunction with any of the described invocations of ``msr2data`` and together with all options stated :ref:`above <msr2data-opt-param>`.
|
||||
|
||||
File Generation
|
||||
+++++++++++++++
|
||||
|
||||
The general idea of this mode is to generate a global msr file on the basis of a working single-run msr file. For this
|
||||
purpose a single-run template containing information about common and run-specific parameters should be created. These
|
||||
parameters are identified through their parameter names:
|
||||
|
||||
**run-specific parameters**
|
||||
these parameters are tagged with the current run number in the format ``%0Xu``, *i.e.* ``X`` digits with leading zeros,
|
||||
at the end of the parameter name, *e.g.* for a 4-digit-formatted run number ``alpha0123`` if the run number was 123 or
|
||||
for a 8-digit-formatted run number ``alpha00123456`` if the run number was 123456. ``X`` has to be at least 4.
|
||||
**common parameters**
|
||||
all parameters that are not run specific
|
||||
|
||||
The :ref:`FITPARAMETER block <msr-fitparameter-block>` of an exemplary template file ``8472_example.msr`` could therefore look like:
|
||||
|
||||
::
|
||||
|
||||
FITPARAMETER
|
||||
# No Name Value Step Pos_Error Boundaries
|
||||
1 Phase 35.8359 -3.94496 3.93749
|
||||
2 Asy8472 0.04501 -0.00208 0.00211 0 0.33
|
||||
3 Field 143.212 -0.27960 0.27885 100 200
|
||||
4 Rate8472 0.14245 -0.02501 0.02279 0 1
|
||||
|
||||
Here the parameters **2** and **4** would be treated as *run-specific* whereas the parameters **1** and **3** would be *common* to the original and all newly added runs.
|
||||
|
||||
Normally, within the template file there should *not* appear explicitly any run-specific parameters in the :ref:`THEORY <msr-theory-block>` and
|
||||
:ref:`FUNCTIONS <msr-functions-block>` blocks. If however, those parameters are met, ``msr2data`` will try to substitute them by mapped parameters
|
||||
and add them accordingly to the map contained in each :ref:`RUN block <msr-run-block>`.
|
||||
|
||||
When ``msr2data`` is called to generate a global msr file, *e.g.*
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8471 8470 _example msr-8472 global
|
||||
|
||||
a new msr file ``8471+global_example.msr`` is created. As can be seen in the example, the name of the global msr file always starts with the
|
||||
first specified run number followed by the ``+global`` identifier and the template ``<extension>``. The example's global FITPARAMETER block would be:
|
||||
|
||||
::
|
||||
|
||||
FITPARAMETER
|
||||
# No Name Value Step Pos_Error Boundaries
|
||||
|
||||
# Common parameters for all runs
|
||||
|
||||
1 Phase 35.8359 -3.94496 3.93749
|
||||
2 Field 143.212 -0.27960 0.27885 100 200
|
||||
|
||||
# Specific parameters for run 8471
|
||||
|
||||
3 Asy8471 0.04501 -0.00208 0.00211 0 0.33
|
||||
4 Rate8471 0.14245 -0.02501 0.02279 0 1
|
||||
|
||||
# Specific parameters for run 8470
|
||||
|
||||
5 Asy8470 0.04501 -0.00208 0.00211 0 0.33
|
||||
6 Rate8470 0.14245 -0.02501 0.02279 0 1
|
||||
|
||||
This shows that the fit parameters are reorganized in a way that the common parameters appear at the beginning of the parameter list and they are
|
||||
followed by copies of the parameters specific to each run (in the specified order!). Additionally, for each specified run new RUN blocks are
|
||||
created — for each run as many as found for the template run.
|
||||
|
||||
During this reorganization all the affected parameter occurrences are changed accordingly!
|
||||
|
||||
.. note::
|
||||
|
||||
Please be aware of the fact that comments in the template msr file are *not* propagated to the newly generated global msr file!
|
||||
|
||||
.. index:: msr2data-global-param-extraction
|
||||
|
||||
Parameter Extraction
|
||||
++++++++++++++++++++
|
||||
|
||||
After fitting some model to the specified data the fit parameters can be extracted from the global msr file to a DB or column-structured ASCII file;
|
||||
as usual this includes also parameters stored in the run data files or externally specified parameters given in a :ref:`run-list file <run-list-file_structure>`.
|
||||
In order to reach this goal the global msr file has to obey certain rules:
|
||||
|
||||
* The order of the parameters has to match the one described above, meaning the common parameters are listed first followed by
|
||||
the same number of parameters specific to each run tagged by the according run numbers at the end of the parameter names and
|
||||
having the same order as the specified list of runs.
|
||||
* The RUN blocks have to be ordered according to the list of runs to be processed.
|
||||
|
||||
Following these rules -- which is achieved most easily by generating the global msr file using ``msr2data`` as shown above -- the parameters can be extracted *e.g.* like
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8471 8470 _example global data -o globalFit.dat
|
||||
|
||||
This will read in the file ``8471+global_example.msr``, extract for each run all relevant parameters from the msr file as well as
|
||||
from the according data files (if available) and append all of them in columns to the ASCII file ``globalFit.dat``.
|
||||
|
||||
.. index:: msr2data-global-extended
|
||||
|
||||
The Extended Global Mode
|
||||
++++++++++++++++++++++++
|
||||
|
||||
If a new global input file is generated, it is also possible to do an automatic pre-analysis for each single run using the specified template first;
|
||||
afterwards the run-specific parameters of these single-run msr files are collected into the global msr file. In special cases this might be useful
|
||||
to obtain a better set of starting values for the parameters, however, in most cases it will not replace the "manual review" of the generated global
|
||||
input file. The option is activated by choosing the keyword **global+**. For example
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8471 8470 _example global+ msr-8472
|
||||
|
||||
Here, ``8472_example.msr`` is first used as template to generate the file ``8471-OneRunFit_example.msr``, then ``musrfit`` is called for it, the result
|
||||
is used to generate ``8470-OneRunFit_example.msr`` and ``musrfit`` is called for that file. Finally, the global fit file ``8471+global_example.msr`` is
|
||||
produced — including the fit results of the ``OneRunFit`` files for the run-specific parameters.
|
||||
|
||||
By appending an exclamation mark **!** to the **global+** option, the given template will be used for every new file generation (similar to the fit option
|
||||
explained before). The **+[!]** extension will be ignored, if no new global input file is generated.
|
||||
The single run msr files are *not* deleted at the moment. The information contained in them might be useful for some people. Of course the data can also
|
||||
be collected by ``msr2data``. *E.g.* in order to produce a DB file ``OneRunFits.db`` one could call
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 8471 8470 -OneRunFit_example -o OneRunFits.db
|
||||
|
||||
.. note::
|
||||
|
||||
Please be aware that the program in this mode *always* generates new single-run msr files and *always* calls ``musrfit`` for them. In case there are
|
||||
already single-run fits present, these cannot be used in conjunction with this option. The program on purpose behaves in this way in order to ensure
|
||||
the file integrity and correct parameter order within these files.
|
||||
|
||||
Known Limitations
|
||||
-----------------
|
||||
|
||||
* The indexing run number of the msr file has to be at the begin of every filename.
|
||||
* Within the data file name the ``RUN#`` has the format ``%0Xu``, *i.e.* ``X`` digits with leading zeros, and has to be the rightmost number given in this
|
||||
format in the file name. ``X`` has to be at least 4. The highest treatable run number is :math:`2^{32}-1 = 4294967295`.
|
||||
* In order to keep ``msr2data`` working properly the msr files should only contain *one* STATISTIC block at the end of the file and *one* FITPARAMETER block
|
||||
right after the TITLE — ``musrfit`` itself allows to have more creative msr files...
|
||||
* The msr-file generation from a template takes only care of runs given on the *first* line of a ``RUN block``. :ref:`ADDRUN <msr-addrun>` statements are simply
|
||||
copied! Since this is most probably *not* what one likes to do, it is suggested *not* to use the ``fit-<template>`` and ``msr-<template>`` options if
|
||||
ADDRUN statements were present in the template file.
|
||||
* ``msr2data`` will write only up to two successive empty lines in newly generated msr files. In case more subsequent empty lines are encountered in a template file,
|
||||
these are not copied! Actually, this measure is not a limitation but has been introduced to keep the msr files in a reasonable shape.
|
||||
|
||||
The Graphical User Interface for msr2data Provided by musredit
|
||||
--------------------------------------------------------------
|
||||
|
||||
:ref:`musredit <musredit-sec>`, designed especially for the manipulation of ``musrfit`` msr files and graphical front ends to ``musrfit``, offer an almost
|
||||
self-explanatory graphical user interface to ``msr2data`` depicted below:
|
||||
|
||||
.. image:: ../images/msr2data-GUI.*
|
||||
|
||||
1. and 2. Choose one of the ways to specify your list of runs as described under :ref:`basic usage <msr2data-basic-usage>`.
|
||||
|
||||
3. Give the file extension here, *e.g.* ``_zf`` for files like ``8472_zf.msr``. If the files do not have an extension this
|
||||
field stays empty. ``musredit`` takes care of passing the "" to ``msr2data`` as mentioned above.
|
||||
4. Activates the ``fit-<template>`` option if ``<template>`` is entered. In case the option ``Chain Fit`` is *not* set the
|
||||
given template will be used for the input-file generation for all runs to be fitted — otherwise the output of the first
|
||||
fit serves as template for the second and so on. The template field stays empty if *no* fits should be performed!
|
||||
5. Activates the ``-o <outputFileName>`` option if ``<outputFileName>`` is entered. If nothing is entered the default output file ``out.db`` or ``out.dat`` is used.
|
||||
|
||||
The options tags correspond essentially to the description in :ref:`optional parameters <msr2data-opt-param>`.
|
@ -13,6 +13,11 @@ Also a collection of ``msr``-files can be invoked. ``mupp`` is heavily inspired
|
||||
``mupp`` can be operated from within as graphical user interface or via a command line scripting interface.
|
||||
The ``mupp`` GUI can be invoked either directly from the command line or from within :ref:`musredit <musredit-sec>`.
|
||||
|
||||
Each collection bundles a number of runs, where a run is a single |mgr|\SR measurement.
|
||||
A run is analyzed by a number of parameters (defined in the msr-files), and complemented by
|
||||
additional physical parameters as the temperature, magnetic field, implantation energy, etc.
|
||||
Hence parameters can be seen as vectors and can be plot against each other.
|
||||
|
||||
.. index:: mupp-gui
|
||||
|
||||
The Graphical User Interface
|
||||
@ -52,10 +57,30 @@ A typical setting could look like this
|
||||
11. ``Remove Collection``: will remove the selected collection
|
||||
12. ``Refresh Collection``: will reload the collection (``db``- or ``dat``-file). This is often useful
|
||||
during beamtime where the collection is growing run-by-run.
|
||||
13. This is the script command line. Currently it allows to perform the tasks without mouse gambling.
|
||||
13. Command history window.
|
||||
14. This is the script command line. Currently it allows to perform the tasks without mouse gambling.
|
||||
In the future much more commands are planed. See the ``Help / Cmd's`` for the currently available
|
||||
commands.
|
||||
|
||||
Define Variable Dialog
|
||||
++++++++++++++++++++++
|
||||
|
||||
.. image:: ../images/mupp-add-var.*
|
||||
|
||||
1. Variable text edit window.
|
||||
2. Collection link window.
|
||||
3. Shows the parameters of the selected collection.
|
||||
4. Check if the variable/error variable from the edit window is valid.
|
||||
5. Add the variable to the selected collection(s) if the parsing is successful.
|
||||
|
||||
A variable defined here is a mathematical expression defined by parameters of loaded collections.
|
||||
Since a parameter also has an associated error, also newly defined variables **always** need
|
||||
to be defined together with a corresponding error variable. If the name of a variable is defined
|
||||
as ``SigmaSC_10`` (see the above snapshot), the error variable need to be named as ``SigmaSC_10Err``.
|
||||
|
||||
Currently the following mathematical functions are defined: ``max``, ``min``, ``abs``, ``sin``, ``cos``,
|
||||
``tan``, ``exp``, ``log``, ``ln``, ``pow``.
|
||||
|
||||
.. index:: mupp-scripting
|
||||
|
||||
The Scripting Interface
|
||||
@ -78,11 +103,14 @@ or web-based interaction which requests figures. A script is invoked by the comm
|
||||
selects collection ``<nn>``, where ``<nn>`` is either the *number* of the collections, or its *name*, *e.g.*
|
||||
select YBCO-40nm-T5K-FC150mT-Escan.db.
|
||||
|
||||
**addX <label>**
|
||||
**x <label>**
|
||||
add ``<label>`` as a *x*-variable. Only *one* is allowed.
|
||||
|
||||
**addY <label(s)>**
|
||||
add ``<label(s)>`` as *y*-variable. *Multiple* labels are possible.
|
||||
**y <label(s)>**
|
||||
add ``<label(s)>`` as *y*-variable. *Multiple* labels are possible.
|
||||
|
||||
**norm**
|
||||
this will normalize all the *y*-variables by their maximum.
|
||||
|
||||
**savePath <dir>**
|
||||
set the save path to ``<dir>``. The place where the macros, and/or the plot output will be saved.
|
||||
@ -93,32 +121,71 @@ or web-based interaction which requests figures. A script is invoked by the comm
|
||||
**macro <fln>**
|
||||
where ``<fln>`` is the file name under which the root macro should be saved.
|
||||
|
||||
An example script file ``field-vs-energy.txt`` might look like this:
|
||||
**var <var_name> = <expr>**
|
||||
defines a variable.
|
||||
<expr> is a mathematical expression where collection variables are addressed
|
||||
via the '$', e.g. ``dataT`` is addressed by ``$dataT``, etc. An example:
|
||||
|
||||
``var invT = 1000.0 / $dataT``
|
||||
|
||||
Each variable has to be accompanied by its error variable. An error variable
|
||||
is defined by the ``<var_name>`` followed by ``Err``
|
||||
For the above example the error variable is
|
||||
|
||||
``var invTErr = $invT * $dataTErr / $dataT``
|
||||
|
||||
**col <nn> : <var_name>**
|
||||
links <var_name> to the collection <nn>, where <nn> is the number of the
|
||||
collection as defined by the order of load, starting with 0.
|
||||
|
||||
An example script file ``sigmaSC-vs-temp.txt`` might look like this:
|
||||
|
||||
::
|
||||
|
||||
# This is a comment
|
||||
# Script: sigmaSC-vs-temp.txt
|
||||
|
||||
loadPath ./
|
||||
|
||||
load YBCO-40nm-T5K-FC150mT-Escan.db
|
||||
load YBCO-40nm-T30K-FC150mT-Escan.db
|
||||
load YBCO-40nm-T60K-FC150mT-Escan.db
|
||||
load YBCO-40nm-T120K-FC150mT-Escan.db
|
||||
load YBCO-40nm-FC-E3p8keV-B10mT-Tscan.db # collection 0
|
||||
load YBCO-40nm-FC-E3p8keV-B150mT-Tscan.db # collection 1
|
||||
|
||||
selectAll
|
||||
# define variables: for each variable an associated error variable is needed.
|
||||
# B=10mT
|
||||
var SigmaSC_10 = pow(abs(pow($Sigma,2.0)-pow(0.11,2.0)), 0.5) # 0.11 (1/us) is the nuclear contribution (T>Tc)
|
||||
var SigmaSC_10Err = pow(pow($Sigma*$SigmaErr,2.0)+pow(0.11*0.0025,2.0), 0.5)/$SigmaSC_10
|
||||
# B=150mT
|
||||
var SigmaSC_150 = pow(abs(pow($Sigma,2.0)-pow(0.075,2.0)), 0.5) # 0.075 (1/us) is the nuclear contribution (T>Tc)
|
||||
var SigmaSC_150Err = pow(pow($Sigma*$SigmaErr,2.0)+pow(0.075*0.0025,2.0), 0.5)/$SigmaSC_150
|
||||
|
||||
addX dataE
|
||||
addY Field
|
||||
# link variables to collections
|
||||
col 0 : SigmaSC_10 # error variable SigmaSC_10Err doesn't need to be given, it is automatically linked to SigmaSC_10
|
||||
col 1 : SigmaSC_150
|
||||
|
||||
norm # normalize the plot to the maximum of each y-data-set
|
||||
|
||||
# the next 3 cmds means the following: use collection 0, add dataT to the x-axis,
|
||||
# and SigmaSC_10 to the y-axis
|
||||
select 0
|
||||
x dataT
|
||||
y SigmaSC_10
|
||||
|
||||
select 1
|
||||
x dataT
|
||||
y SigmaSC_150
|
||||
|
||||
# where to save the output
|
||||
savePath ./
|
||||
plot FieldVsEnergy.pdf
|
||||
|
||||
# create a pdf output file of the above defined xy-data sets. Currently also
|
||||
# other file formats are supported, like png, jpg, etc.
|
||||
plot SigmaSCVsTemp.pdf
|
||||
|
||||
macro FieldVsEnergy.C
|
||||
# creates a ROOT macro which can be used for further refinement
|
||||
macro SigmaSCVsTemp.C
|
||||
|
||||
# end
|
||||
|
||||
|
||||
.. index:: mupp-usage
|
||||
.. _mupp-usage:
|
||||
|
||||
@ -137,30 +204,35 @@ The Usage Summary
|
||||
<fit-param-file-names>: list of file name(s) to be loaded.
|
||||
allowed formats are: db, dat, msr
|
||||
|
||||
|
||||
SCRIPT COMMANDS:
|
||||
Lines starting with '#', '%', or '//' are comments and will be ignored.
|
||||
The same is true for empty lines. Comments are also allowed at the end
|
||||
for a command, i.e. loadPath ./ # the best place ever.
|
||||
|
||||
loadPath <dir> : set the load path to <dir>. Bash variables like
|
||||
$HOME are accepted.
|
||||
load <coll> : will load a collection <coll>. Currently *.db and *.dat
|
||||
are handled.
|
||||
selectAll : will select all loaded collections. Thie means every plot
|
||||
of variable x/y will be carried out to ALL collections.
|
||||
select <nn> : selects collection <nn>, where <nn> is either the number
|
||||
of the collections, or its name, e.g.
|
||||
select YBCO-40nm-T5K-FC150mT-Escan.db
|
||||
addX <label> : add <label> as a x-variable. Only one is allowed.
|
||||
addY <label(s)>: add <label(s)> as y-variable. Multiple labls are possible.
|
||||
savePath <dir> : set the save path to <dir>. The place where the macros,
|
||||
and/or the plot output will be saved.
|
||||
plot <fln> : where <fln> is the file name with extension under which
|
||||
the plot should be saved.
|
||||
macro <fln> : where <fln> is the file name under which the root macro
|
||||
should be saved.
|
||||
|
||||
|
||||
|
||||
|
||||
Lines starting with '#', '%', or '//' are comments and will be ignored.
|
||||
The same is true for empty lines. Comments are also allowed at the end
|
||||
for a command, i.e. loadPath ./ # the best place ever.
|
||||
|
||||
load <coll> : load a collection. <coll> is the filename of the
|
||||
collection (*.db, *.dat)
|
||||
loadPath <path> : set the load path to <path>; accepting bash variables
|
||||
like $HOME, etc.
|
||||
x <var-name> : set a x-axis variable. <var-name> is a data tag of
|
||||
the db/dat-file.
|
||||
y <var-name> : set a y-axis variable. <var-name> is a data tag of
|
||||
the db/dat-file.
|
||||
select <nn> : select collection <nn>, where <nn> is the row-number
|
||||
or the name of the collection to be selected.
|
||||
selectAll : i.e. already set 'x', 'y' will apply to ALL collections
|
||||
present.
|
||||
savePath <path> : sets the save path to <path>; accepting bash variables
|
||||
like $HOME, etc.
|
||||
plot <fln> : where <fln> is the file name with extension under which
|
||||
the plot should be saved.
|
||||
macro <fln> : where <fln> is the file name under which the root macro
|
||||
should be saved.
|
||||
var <var_name> = <expr> : defines a variable.
|
||||
<expr> is a mathematical expression where
|
||||
collection variables are addressed via the '$',
|
||||
e.g. dataT is addressed by $dataT, etc.
|
||||
col <nn> : <var_name> : links <var_name> to the collection <nn>, where
|
||||
<nn> is the number of the collection as defined
|
||||
by the order of load, starting with 0.
|
||||
|
||||
|
@ -1,166 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: mupp
|
||||
.. _mupp:
|
||||
|
||||
mupp - |mgr|\SR Parameter Plotter
|
||||
=================================
|
||||
|
||||
``mupp`` is a little helper program which allows to quickly plot a collection of msr-file parameters,
|
||||
as for instance generated by :ref:`msr2data <msr2data>`. It can handle ``db``- and ``dat``-files.
|
||||
Also a collection of ``msr``-files can be invoked. ``mupp`` is heavily inspired by |mgr|\View (see
|
||||
`here <http://musr.org/muview/>`_).
|
||||
|
||||
``mupp`` can be operated from within as graphical user interface or via a command line scripting interface.
|
||||
The ``mupp`` GUI can be invoked either directly from the command line or from within :ref:`musredit <musredit-sec>`.
|
||||
|
||||
.. index:: mupp-gui
|
||||
|
||||
The Graphical User Interface
|
||||
----------------------------
|
||||
|
||||
A typical setting could look like this
|
||||
|
||||
.. image:: ../images/mupp-gui-0.*
|
||||
|
||||
1. shows the list of loaded collections. A collection is defined as ``db``- or ``dat``-file (typically the
|
||||
output from :ref:`msr2data <msr2data>`). If you call the open-dialog and select a collection of
|
||||
``msr``-files, ``mupp`` will call ``msr2data`` and tries to generate a collection on-the-fly.
|
||||
2. in this list, the data-tags of the currently selected collection is presented. The data-tags can be
|
||||
directly dragged over to the ``x``- and ``y``-axis list. Another way is to select the data-tag
|
||||
wished and click ``add X`` to add the selected data-tag to the ``x``-axis list. Analogous it is done
|
||||
for the ``y``-axis.
|
||||
3. ``x``-axis list. The labels are followed by ``(-X-)`` where the number ``X`` corresponds to the
|
||||
selection it corresponds to. The numbering of the collection is as given in the collection list.
|
||||
4. ``y``-axis list. The labels are followed by ``(-X-)`` where the number ``X`` corresponds to the
|
||||
selection it corresponds to. The numbering of the collection is as given in the collection list.
|
||||
5. ``add X`` allows to add the currently selected data-tag to the ``x``-axis list.
|
||||
6. ``add Y`` allows to add the currently selected data-tag to the ``y``-axis list.
|
||||
7. ``remove X`` will remove the selected ``x``-axis tag.
|
||||
8. ``remove Y`` will remove the selected ``y``-axis tag.
|
||||
9. Often one would like to compare trends of different settings. In the above example each collections
|
||||
holds an energy scans for a given temperature. Each collection is measured at a different temperature.
|
||||
Now, instead of adding ``x``- and ``y``-axis tags for each collection, you can do the following:
|
||||
you add ``x``- and ``y``-axis data-tags for the first collection. Afterwards you select all the other
|
||||
collections of interest and click on ``Add Ditto``. ``mupp`` will then add the corresponding
|
||||
``x``- and ``y``-axis data-tags accordingly. This is less error prone and quicker!
|
||||
10. Clicking the ``Plot`` button will invoke ``mupp_plot`` (a ``ROOT`` based application) which will
|
||||
present the data, as shown here
|
||||
|
||||
.. image:: ../images/mupp-plot-0.*
|
||||
:height: 600px
|
||||
|
||||
11. ``Remove Collection``: will remove the selected collection
|
||||
12. ``Refresh Collection``: will reload the collection (``db``- or ``dat``-file). This is often useful
|
||||
during beamtime where the collection is growing run-by-run.
|
||||
13. This is the script command line. Currently it allows to perform the tasks without mouse gambling.
|
||||
In the future much more commands are planed. See the ``Help / Cmd's`` for the currently available
|
||||
commands.
|
||||
|
||||
.. index:: mupp-scripting
|
||||
|
||||
The Scripting Interface
|
||||
-----------------------
|
||||
|
||||
``mupp`` can also be operated in a scripting like manner. The use cases are plot updates during run time,
|
||||
or web-based interaction which requests figures. A script is invoked by the command line option ``-s`` (see
|
||||
:ref:`mupp command line summary <mupp-usage>`. Currently the following scripting commands are available:
|
||||
|
||||
**loadPath <dir>**
|
||||
set the load path to ``<dir>``. Bash variables like $HOME are accepted. This is the path where to look for collection files (``db``- and ``dat``-files).
|
||||
|
||||
**load <coll>**
|
||||
will load the collection ``<coll>``.
|
||||
|
||||
**selectAll**
|
||||
will select all loaded collections. This means every plot of variable x/y will be carried out to *ALL* collections.
|
||||
|
||||
**select <nn>**
|
||||
selects collection ``<nn>``, where ``<nn>`` is either the *number* of the collections, or its *name*, *e.g.*
|
||||
select YBCO-40nm-T5K-FC150mT-Escan.db.
|
||||
|
||||
**addX <label>**
|
||||
add ``<label>`` as a *x*-variable. Only *one* is allowed.
|
||||
|
||||
**addY <label(s)>**
|
||||
add ``<label(s)>`` as *y*-variable. *Multiple* labels are possible.
|
||||
|
||||
**savePath <dir>**
|
||||
set the save path to ``<dir>``. The place where the macros, and/or the plot output will be saved.
|
||||
|
||||
**plot <fln>**
|
||||
where ``<fln>`` is the file name with extension under which the plot should be saved.
|
||||
|
||||
**macro <fln>**
|
||||
where ``<fln>`` is the file name under which the root macro should be saved.
|
||||
|
||||
An example script file ``field-vs-energy.txt`` might look like this:
|
||||
|
||||
::
|
||||
|
||||
# This is a comment
|
||||
|
||||
loadPath ./
|
||||
|
||||
load YBCO-40nm-T5K-FC150mT-Escan.db
|
||||
load YBCO-40nm-T30K-FC150mT-Escan.db
|
||||
load YBCO-40nm-T60K-FC150mT-Escan.db
|
||||
load YBCO-40nm-T120K-FC150mT-Escan.db
|
||||
|
||||
selectAll
|
||||
|
||||
addX dataE
|
||||
addY Field
|
||||
|
||||
savePath ./
|
||||
plot FieldVsEnergy.pdf
|
||||
|
||||
macro FieldVsEnergy.C
|
||||
|
||||
# end
|
||||
|
||||
|
||||
.. index:: mupp-usage
|
||||
.. _mupp-usage:
|
||||
|
||||
The Usage Summary
|
||||
-----------------
|
||||
|
||||
::
|
||||
|
||||
usage: mupp [OPTIONS] [[--path <fit-param-path>] <fit-param-file-names>]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help: this help
|
||||
-v, --version: current mupp version
|
||||
-s <fln>, --script <fln>: <fln> being a mupp script.
|
||||
--path <fit-param-path>: path where to look for the <fit-param-file-names>
|
||||
<fit-param-file-names>: list of file name(s) to be loaded.
|
||||
allowed formats are: db, dat, msr
|
||||
|
||||
SCRIPT COMMANDS:
|
||||
Lines starting with '#', '%', or '//' are comments and will be ignored.
|
||||
The same is true for empty lines. Comments are also allowed at the end
|
||||
for a command, i.e. loadPath ./ # the best place ever.
|
||||
|
||||
loadPath <dir> : set the load path to <dir>. Bash variables like
|
||||
$HOME are accepted.
|
||||
load <coll> : will load a collection <coll>. Currently *.db and *.dat
|
||||
are handled.
|
||||
selectAll : will select all loaded collections. Thie means every plot
|
||||
of variable x/y will be carried out to ALL collections.
|
||||
select <nn> : selects collection <nn>, where <nn> is either the number
|
||||
of the collections, or its name, e.g.
|
||||
select YBCO-40nm-T5K-FC150mT-Escan.db
|
||||
addX <label> : add <label> as a x-variable. Only one is allowed.
|
||||
addY <label(s)>: add <label(s)> as y-variable. Multiple labls are possible.
|
||||
savePath <dir> : set the save path to <dir>. The place where the macros,
|
||||
and/or the plot output will be saved.
|
||||
plot <fln> : where <fln> is the file name with extension under which
|
||||
the plot should be saved.
|
||||
macro <fln> : where <fln> is the file name under which the root macro
|
||||
should be saved.
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,681 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: MusrRoot
|
||||
|
||||
.. _MusrRoot:
|
||||
|
||||
MusrRoot - an Extensible Open File Format for |mgr|\SR
|
||||
======================================================
|
||||
|
||||
Until 2011 different |mgr|\SR file formats were used within PSI. The bulk-|mgr|\SR instruments were
|
||||
writing their data in the ``PSI-BIN`` file format, which is a fixed binary format with rather stringent
|
||||
limitations. The LE-|mgr|\SR (LEM) instrument was using a ROOT (CERN) based file format which was tightly
|
||||
tailored to the special needs of the LEM instrument. This situation was unsatisfactorily and hence it
|
||||
was decided to move forward to a open file format called ``MusrRoot`` to be described in the following.
|
||||
|
||||
Some Basics Concerning ROOT Files
|
||||
---------------------------------
|
||||
|
||||
The |mgr|\SR data acquisition systems at PSI are utilizing MIDAS (see `Midas Home Page <https://midas.triumf.ca/MidasWiki/index.php/Main_Page>`_).
|
||||
The MIDAS analyzer, which is responsible to build histograms, especially the |mgr|\SR decay histograms, makes
|
||||
it very easy to build ROOT (see `ROOT/CERN home page <https://root.cern.ch>`_ ) histogram objects (these
|
||||
are ``TH1F`` objects for |mgr|\SR decay histograms). ROOT is a ``C++`` object-oriented data mining and
|
||||
analysis frame work. These histograms can be collected and saved in ROOT files (``TFile``). In order to ease
|
||||
the understanding of the upcoming definitions, a few ROOT related things shall be summaries here. For details
|
||||
concerning the ROOT frame work documentation please check `ROOT/CERN Users Guide(s) <https://root.cern.ch/root-user-guides-and-manuals>`_
|
||||
and `ROOT/CERN Reference Guide <https://root.cern.ch/guides/reference-guide>`_.
|
||||
|
||||
ROOT files (``TFile``) are binary files which can hold any kind of objects. A ``TFile`` is organized similarly
|
||||
to a directory structure of an operating system. Within the ROOT framework, there is a ``TFile`` browser available
|
||||
which allows to inspect these files. This browser (``TBrowser``) will show all object saved in the ``TFile`` directly,
|
||||
if they derive from ``TObject``.
|
||||
|
||||
The ``MusrRoot`` file format to be described below is only using a small subset of possible ROOT objects, namely:
|
||||
|
||||
* ``TFolder``: this are the top level objects in the ``MusrRoot`` file.
|
||||
* ``TH1F``: Hold the |mgr|-decay-histograms.
|
||||
* ``TObjArray``: Holding collection of header information.
|
||||
* ``TObjString``: Holding the content of any header information.
|
||||
|
||||
Since all these objects are deriving form ``TObject``, they will be directly accessible via the ``TBrowser``-object.
|
||||
For instance, the |mgr|-decay-histograms can be directly plotted, are even fitted, out of the box.
|
||||
|
||||
MusrRoot an Extensible Open File Format for |mgr|\SR
|
||||
----------------------------------------------------
|
||||
|
||||
As mentioned before, ROOT files are open-file-format files meaning that they can contain more entries (and most probably will) than the ones specified in the following. The specified ones will be the mandatory ones for all instruments. Before defining all mandatory entries, the MusrRoot file structure shall be sketched.
|
||||
|
||||
The MusrRoot file structure looks like:
|
||||
|
||||
::
|
||||
|
||||
histos ---|
|
||||
|- DecayAnaModule ---|
|
||||
| |- hDecay001
|
||||
| |- hDecay002
|
||||
| ...
|
||||
|
|
||||
|- SCAnaModule ---|
|
||||
... |- hSampleTemperature
|
||||
|- hSampleMagneticField
|
||||
...
|
||||
RunHeader ---|
|
||||
|- RunInfo
|
||||
|- DetectorInfo ---|
|
||||
| |- Detector001
|
||||
| |- Detector002
|
||||
| ...
|
||||
|
|
||||
|- SampleEnvironmentInfo
|
||||
|- MagneticFieldEnvironmentInfo
|
||||
|- BeamlineInfo
|
||||
...
|
||||
|
||||
where ``hDecay001``, etc. are ROOT histograms (to be more specific: ``TH1F``), containing the |mgr|\SR decay histograms. There can be as many as needed, especially there is no limitation about their length. The histogram object names will be ``hDecayXXX``, where ``XXX`` (leading zero int, *i.e.* ``%03d``
|
||||
in ``C/C++`` notation, starting with '1') is the histogram number. The title and name of the histogram (see description of the ``TH1F`` ROOT class) contains the label of the histogram, like 'top', 'forward', etc. How many of these histograms are present is accessible through the ``RunInfo`` folder in which the necessary header information are found (details see next sections). The folder ``SCAnaModule`` contains histograms of some of the slow-control parameters, as for instance the sample temperature versus time, the applied field versus time, etc. Again the label of the histogram will give more specific information about its content.
|
||||
|
||||
Run Information Contained in ``RunHeader``
|
||||
++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
The ``RunHeader`` contains all needed meta-information to describe a |mgr|\SR-run. The list of the minimal number of required "folders" of the ``RunHeader`` is given in the following structure:
|
||||
|
||||
::
|
||||
|
||||
RunHeader (TFolder) ---|
|
||||
|- RunInfo (TObjArray)
|
||||
|- DetectorInfo (TObjArray)
|
||||
|- SampleEnvironmentInfo (TObjArray)
|
||||
|- MagneticFieldEnvironmentInfo (TObjArray)
|
||||
|- BeamlineInfo (TObjArray)
|
||||
|
||||
In brackets the object type is given. ``RunInfo`` contains most information relevant for the user and will be itemized in :ref:`RunInfo Overview <musr-root-overview>` and :ref:`RunInfo Required <run-info-required>`. ``DetectorInfo`` contains detector specific information, like detector name, time zero bin, etc. (details is found under :ref:`DetectorInfo Required <detector-info-required>`). ``SampleEnvironmentInfo`` (details under :ref:`SampleEnvironmentInfo Required <sample-environment-info-required>`), and ``MagneticFieldEnvironmentInfo`` (details under :ref:`MagneticFieldEnvironmentInfo Required <magnetic-field-environment-info-required>`) store additional, more detailed information concerning the sample environment. ``BeamlineInfo`` stores beamline relevant information (details under :ref:`BeamlineInfo Required <beamline-info-required>`).
|
||||
|
||||
Before elaborating more on the required items within this structure, a few words on the ROOT types used here: ``RunHeader`` is a ``TFolder`` object. All the "sub-directory" entries are of type ``TObjArray`` and collect items of type ``TObjString`` or other ``TObjArray`` (*i.e.* sub-directories and sub-sub-directories, etc.).
|
||||
|
||||
.. index:: MusrRoot-Overview
|
||||
.. _musr-root-overview:
|
||||
|
||||
``RunInfo`` Overview
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
======================== ============================ =====================================================
|
||||
Name Internal Type Comment
|
||||
======================== ============================ =====================================================
|
||||
Version ``TString`` GIT version of ``TMusrRunHeader``
|
||||
Generic Validator URL ``TString`` URL of the generic ``MusrRoot`` validation xsd-file.
|
||||
Specific Validator URL ``TString`` URL of the instrument specific validation xsd-file.
|
||||
Generator ``TString`` Program which wrote the ``MusrRoot`` file, *e.g.* ``nemu_analyzer``
|
||||
File Name ``TString`` File name of the ``MusrRoot`` file, *e.g.* ``deltat_tdc_gps_4295.root``
|
||||
Run Title ``TString``
|
||||
Run Number ``Int_t``
|
||||
Run Start Time ``TString`` ISO 8601 date time
|
||||
Run Stop Time ``TString`` ISO 8601 date time
|
||||
Run Duration ``TMusrRunPhysicalQuantity`` run duration in sec
|
||||
Laboratory ``TString`` *e.g.* PSI
|
||||
Instrument ``TString`` *e.g.* GPS
|
||||
Muon Beam Momentum ``TMusrRunPhysicalQuantity`` *e.g.* 28.1 MeV/c
|
||||
Muon Species ``TString`` positive, or negative muon
|
||||
Muon Source ``TString`` *e.g.* Target E - Low Energy Muons or "Target M" ...
|
||||
Setup ``TString``
|
||||
Comment ``TString``
|
||||
Sample Name ``TString``
|
||||
Sample Temperature ``TMusrRunPhysicalQuantity`` *e.g.* 3.21 +- 0.05 K; SP: 3.2; CF1
|
||||
Sample Magnetic Field ``TMusrRunPhysicalQuantity`` *e.g.* 350.002 +- 0.005 G; SP: 350; WXY
|
||||
No of Histos ``Int_t``
|
||||
Time Resolution ``TMusrRunPhysicalQuantity`` *e.g.* 0.1953125 ns
|
||||
RedGreen Offsets ``TIntVector`` *e.g.* 0; 20
|
||||
======================== ============================ =====================================================
|
||||
|
||||
These entries should be clear except for the ``RedGreen Offsets`` and the column "Internal Type" which shortly will be discussed before specifying the content of the other required folders.
|
||||
|
||||
#. ``RedGreen Offsets``: in case experiments are performed with external stimuli, there will be a collection of related histograms.
|
||||
For instance for electrical field experiments, there will be histograms for field on/off, doubling the number of needed histograms.
|
||||
In order to distinguish them easier in the data file, the ``RedGreen Offsets`` were introduced. One selection of histograms
|
||||
(assuming for the moment 8 detectors) will be numbered from 1 to 8 (lets say the field off ones). The other set of histograms
|
||||
(field on in this example) will then start with 21 through 28 (see table above). The same will be true for the detector information
|
||||
(see :ref:`DetectorInfo Required <detector-info-required>`). The entry ``No of Histos`` will only give 8 for the given example,
|
||||
meaning that red/green multiplication is defined rather via ``RedGreen Offsets`` than the number of histograms.
|
||||
#. Internal Types: in order to ease the handling of the ``MusrRoot`` run header, a class ``TMusrRunHeader`` is available which deals
|
||||
with it. The "Internal Type" specified, corresponds to the internal representation in within this class. In the ``MusrRoot`` file
|
||||
these entries are all saved as browsable ROOT strings (``TObjStringv). The only special type is ``TMusrRunPhysicalQuantity`` which
|
||||
is introduced to deal with physical quantities. They always can be represented in the following way:
|
||||
|
||||
::
|
||||
|
||||
<property name> <value> +- <estimated error> <unit>; SP: <demand>; <description>
|
||||
|
||||
Not all of these values are needed to be given and depending on which are given, the representation in the ``MusrRootv file will be different (handled by ``TMusrRunHeader``). Examples are given in the comment column of the table above. For details see :ref:`TMusrRunPhysicalQuantity - Possible Representations <musr-run-physical-quantity>`.
|
||||
|
||||
A mock-up ``TBrowser`` print-out would look like the one shown in the following figure. You might notice, that at the end of each entry you find a ``-@X``, where ``X`` is a number. This is an encoding of the internal type of the entry and is the price to be payed not using derived types. The next section will explain this in much more detail.
|
||||
|
||||
.. image:: ../images/MusrRoot-RunInfo.*
|
||||
|
||||
``TMusrRunHeader`` mock up. The red shaded entries are of type ``TMusrRunPhysicalQuantity``
|
||||
|
||||
.. _musr-run-header-concept:
|
||||
|
||||
TMusrRunHeader Concept
|
||||
----------------------
|
||||
|
||||
The different |mgr|\SR instruments need different information to be written into the data file (next to the most important ones: the histograms). The above defined properties are the *minimal number of required* ones. There are different possible approaches to deal with it on the implementation level.
|
||||
|
||||
* A base class dealing with *minimal* required standard is defined. Afterwards for each instrument a class
|
||||
is derived which is extending the base class to the needs of the instrument.
|
||||
* The base class is defined in a more abstract way, and some external, text-based description is given which defines the details of the instrument.
|
||||
|
||||
Even though the first approach is very clean, it would mean a lot of maintenance work. The 2nd approach is slightly more demanding for the handling class (``TMusrRunHeader`` and helper classes), but having the advantage of easy maintainability and expandability. The idea is that all header information can be classified into 7 groups (see previous and following section(s))
|
||||
|
||||
#. Strings, represented by ``TString``
|
||||
#. Integers, represented by ``Int_t``
|
||||
#. Floating point numbers, represented by ``Double_t``
|
||||
#. Physical quantities, represented by :ref:`TMusrRunPhysicalQuantity - Possible Representations <musr-run-physical-quantity>`
|
||||
#. Collection of strings, represented by ``TStringVector``
|
||||
#. Collection of integers, represented by ``TIntVector``
|
||||
#. Collection of floating point numbers, represented by ``TDoubleVector``
|
||||
|
||||
These properties can be collected by themselves in form of vectors. This way any needed information can be written into the ROOT file. The class ``TMusrRunHeader`` is implementing this run header concept. In following section code snippets will be discussed, showing how this is used on level of the ``MIDAS`` analyzer, ``musrfit`` reader routine, and ``any2many`` conversion routines. The section :ref:`Validation <musr-root-validation>` will discuss how to validate ``MusrRoot`` files.
|
||||
|
||||
|
||||
User Interface for MusrRoot Run Header
|
||||
++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
There are two things needed to deal with the ``MusrRoot`` run header, namely writing it and reading it. I will start with the writing as will be done in the ``MIDAS`` analyzer.
|
||||
|
||||
Writing a MusrRoot Run Header
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
An example program ``write_musrRoot_runHeader`` which is writing a full run header is part of the ``musrfit`` package. Here I will concentrate just on the most essential parts. First one needs an instance of ``TMusrRunHeader``
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
TMusrRunHeader *header = new TMusrRunHeader();
|
||||
TMusrRunPhysicalQuantity prop;
|
||||
|
||||
``header`` is the instance of ``TMusrRunHeader``. ``prop`` is an instance of ``TMusrRunPhysicalQuantity`` which will be needed further down in the description. In the next step some run header entries will be added
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
header->Set("RunInfo/File Name", "deltat_tdc_gps_2871.root");
|
||||
header->Set("RunInfo/Run Title", "here comes the run title");
|
||||
header->Set("RunInfo/Run Number", 2871);
|
||||
|
||||
Adding information is done via the multiple overloaded ``Set(<pathName>,<value>)`` method. Here ``<pathName>`` is a string representing the "path" like representation in the ``MusrRoot`` file structure, followed by the "value" to be set, *e.g.* "=File Name=". ``<value>`` can be any of the types listed at the beginning of :ref:`Sec. TMusrRunHeader Concept <musr-run-header-concept>`. Here a few examples how to set ``TMusrRunPhysicalQuantity``.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
prop.Set("Sample Temperature", 3.2, 3.21, 0.05, "K", "CF1");
|
||||
header->Set("RunInfo/Sample Temperature", prop);
|
||||
|
||||
prop.Set("Time Resolution", 0.1953125, "ns", "TDC 9999");
|
||||
header->Set("RunInfo/Time Resolution", prop);
|
||||
|
||||
prop.Set("CF3", MRH_UNDEFINED, 3.27, 0.09, "K", "strange temperature");
|
||||
header->Set("SampleEnvironmentInfo/CF3", prop);
|
||||
|
||||
Here ``TMusrRunPhysicalQuantity`` objects are fed via the use of the overloaded set-method. For details see :ref:`TMusrRunPhysicalQuantity - Possible Representations <musr-run-physical-quantity>`.
|
||||
|
||||
To set some property within "sub-sub-directories" it would like this:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
header->Set("DetectorInfo/Detector001/Time Zero Bin", 3419.0);
|
||||
|
||||
To write the whole run header into a file would look something like this:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
TFile *f = new TFile(fileName, "RECREATE", "write_musrRoot_runHeader");
|
||||
if (f->IsZombie()) {
|
||||
delete f;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// create the needed TFolder object
|
||||
TFolder *runHeader = new TFolder("RunHeader", "MusrRoot Run Header Info");
|
||||
|
||||
// create the "directory" structure
|
||||
if (header->FillFolder(runHeader)) {
|
||||
runHeader->Write(); // write run header to file
|
||||
}
|
||||
|
||||
f->Close();
|
||||
|
||||
Reading a MusrRoot Run Header
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The following code snippet shows how the extract the full run header from the ``MusrRoot`` file.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
TFile *f = new TFile(fileName, "READ", "read_musrRoot_runHeader");
|
||||
if (f->IsZombie()) {
|
||||
delete f;
|
||||
return -1;
|
||||
}
|
||||
|
||||
TFolder *runHeader = 0;
|
||||
f->GetObject("RunHeader", runHeader);
|
||||
if (runHeader == 0) {
|
||||
cerr << endl << ">> **ERROR** Couldn't get top folder RunHeader";
|
||||
closeFile(f);
|
||||
return -1;
|
||||
}
|
||||
|
||||
TMusrRunHeader *header = new TMusrRunHeader(fileName);
|
||||
|
||||
if (!header->ExtractAll(runHeader)) {
|
||||
cerr << endl << ">> **ERROR** couldn't extract all RunHeader information";
|
||||
closeFile(f);
|
||||
return -1;
|
||||
}
|
||||
|
||||
f->Close();
|
||||
delete f;
|
||||
|
||||
|
||||
The routine ``ExtractAll(TFolder *runHeader)`` decodes all the ``TObjString`` objects and fills internal data structures. This means when reading a MusrRoot -file the above handling is always needed. After the ``ExtractAll`` call, parameters can be extracted via the getter routines available. For instance to read the Run Number, the code would look like
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
Bool_t ok;
|
||||
Int_t ival;
|
||||
header->Get("RunInfo/Run Number", ival, ok);
|
||||
if (ok)
|
||||
cout << endl << "Run Number: " << ival;
|
||||
else
|
||||
cout << endl << "**ERROR** Couldn't obtain the 'Run Number'.";
|
||||
|
||||
Reading a ``TMusrRunPhysicalQuantity`` object, *e.g.* the sample temperature looks like this
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
TMusrRunPhysicalQuantity prop;
|
||||
|
||||
header->Get("RunInfo/Sample Temperature", prop, ok);
|
||||
if (ok) {
|
||||
cout << endl << "Sample Temperature: " << prop.GetValue() << " +- ";
|
||||
cout << prop.GetError() << " " << prop.GetUnit().Data();
|
||||
cout << "; SP: " << prop.GetDemand() << "; " << prop.GetDescription().Data();
|
||||
} else {
|
||||
cout << endl << "**ERROR** Couldn't obtain the 'Sample Temperature'.";
|
||||
}
|
||||
|
||||
.. index:: MusrRoot-Validation
|
||||
.. _musr-root-validation:
|
||||
|
||||
Validation of a MusrRoot File
|
||||
+++++++++++++++++++++++++++++
|
||||
|
||||
Since ``MusrRoot`` is an open and extensible file format a mechanism is needed to validate that a given file is indeed holding the minimum of required entries. To check this the following scheme is implemented in the program ``musrRootValidation``:
|
||||
|
||||
.. image:: ../images/MusrRootValidationScheme.*
|
||||
|
||||
``MusrRoot`` validation scheme
|
||||
|
||||
In the following this validation scheme will be discussed as it is implemented in ``musrRootValidation``:
|
||||
|
||||
#. It is checked if the given file name is a ``TFile``
|
||||
#. The file structure is recursively parsed and mapped into an temporary XML file. XML is used
|
||||
since there are ample of parser and validation frameworks at hand. For details check any decent
|
||||
book about XML. Here the ``libxml2`` is used, because also ROOT is requiring it.
|
||||
#. In a next step the XML file (holding the structure of the supposed ``MusrRoot`` file is validated
|
||||
against a XML schema. The minimum of required entries is described by ``MusrRoot.xsd`` which is
|
||||
part of ``musrfit`` but also available from the PSI/LMU web-page.
|
||||
#. If the schema validation is successful additional semantic checks (like is the number of decay
|
||||
histograms the same as the number of detector entries, etc.) will be preformed.
|
||||
|
||||
This validation scheme is useful for people which define instrument specific extensions of the base ``MusrRoot``, as for instance the LEM instrument at PSI. It is also useful for people writing file converters in order to cross check if the generated file is valid.
|
||||
|
||||
.. _run-info-required:
|
||||
|
||||
RunInfo (Required)
|
||||
------------------
|
||||
|
||||
========================== ============================= =====================================================
|
||||
Name Internal Type Comment
|
||||
========================== ============================= =====================================================
|
||||
Version ``TString`` GIT version of ``TMusrRunHeader``
|
||||
Generic Validator URL ``TString`` URL of the generic ``MusrRoot`` validation xsd-file.
|
||||
*e.g.* `<http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRoot.xsd>`_
|
||||
Specific Validator URL ``TString`` URL of the instrument specific validation xsd-file.
|
||||
*e.g.* for LEM: `<http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRootLEM.xsd>`_
|
||||
Generator ``TString`` Program which wrote the ``MusrRoot`` file, *e.g.* ``nemu_analyzer``
|
||||
File Name ``TString`` File name of the ``MusrRoot`` file, *e.g.* ``deltat_tdc_gps_4295.root``
|
||||
Run Title ``TString``
|
||||
Run Number ``Int_t``
|
||||
Run Start Time ``TString`` ISO 8601 date time
|
||||
Run Stop Time ``TString`` ISO 8601 date time
|
||||
Run Duration ``TMusrRunPhysicalQuantity`` run duration in sec
|
||||
Laboratory ``TString`` *e.g.* PSI
|
||||
Instrument ``TString`` *e.g.* GPS
|
||||
Muon Beam Momentum ``TMusrRunPhysicalQuantity`` *e.g.* 28.1 MeV/c
|
||||
Muon Species ``TString`` poitive or negative muon
|
||||
Muon Source ``TString`` *e.g.* "Target E - Low Energy Muons" or "Target M" ...
|
||||
Setup ``TString``
|
||||
Comment ``TString``
|
||||
Sample Name ``TString``
|
||||
Sample Temperature ``TMusrRunPhysicalQuantity`` *e.g.* 3.21 +- 0.05 K; SP: 3.2; CF1
|
||||
Sample Magnetic Field ``TMusrRunPhysicalQuantity`` *e.g.* 350.002 +- 0.005 G; SP: 350; WEW
|
||||
No of Histos ``Int_t``
|
||||
Time Resolution ``TMusrRunPhysicalQuantity`` *e.g.* 0.1953125 ns
|
||||
RedGreen Offsets ``TIntVector`` *e.g.* 0; 20
|
||||
========================== ============================= =====================================================
|
||||
|
||||
.. _detector-info-required:
|
||||
|
||||
DetectorInfo (Required)
|
||||
-----------------------
|
||||
|
||||
The ``DetectorInfo`` is organized in a sub-tree like
|
||||
|
||||
::
|
||||
|
||||
DetectorInfo ---|
|
||||
|- Detector001
|
||||
|- Detector002
|
||||
...
|
||||
|
||||
|
||||
|
||||
For each histogram in the ``histos/DecayAnaModule`` corresponds detector entry here.
|
||||
|
||||
The numbering of the detectors has to correspond the its histogram, *e.g.* ``hDecay023 <=> Detector023``, *i.e.* potentially discontinuous to show red / green breaks.
|
||||
|
||||
``Detector<XXX>`` has the elements
|
||||
|
||||
========================== ============================= =====================================================
|
||||
Name Internal Type Comment
|
||||
========================== ============================= =====================================================
|
||||
Name ``TString`` detector name, *e.g.* Left-NPP
|
||||
Histo Number ``Int_t`` histogram number. This number corresponds to the histogram
|
||||
number in the ``histos/DecayAnaModule`` sub-tree.
|
||||
Histo Length ``Int_t`` length of the histogram (in bins)
|
||||
Time Zero Bin ``Double_t`` The type is ``Double_t`` since for the high-field spectrometer
|
||||
at PSI an ``Int_t`` representation would be not good enough.
|
||||
First Good Bin ``Int_t``
|
||||
Last Good Bin ``Int_t``
|
||||
========================== ============================= =====================================================
|
||||
|
||||
.. _sample-environment-info-required:
|
||||
|
||||
SampleEnvironmentInfo (Required)
|
||||
--------------------------------
|
||||
|
||||
Here only a single entry is required, namely
|
||||
|
||||
========================== ============================= =====================================================
|
||||
Name Internal Type Comment
|
||||
========================== ============================= =====================================================
|
||||
Cryo ``TString`` name of the used cryostat/oven, *e.g.* ``Konti-2``
|
||||
========================== ============================= =====================================================
|
||||
|
||||
.. _magnetic-field-environment-info-required:
|
||||
|
||||
MagneticFieldEnvironmentInfo (Required)
|
||||
---------------------------------------
|
||||
|
||||
Here only a single entry is required, namely
|
||||
|
||||
========================== ============================= =====================================================
|
||||
Name Internal Type Comment
|
||||
========================== ============================= =====================================================
|
||||
Magnet Name ``TString`` name of the used magnet, *e.g.* ``WEW``.
|
||||
In case of ZF measurements, there might be an entry like ZF.
|
||||
========================== ============================= =====================================================
|
||||
|
||||
.. _beamline-info-required:
|
||||
|
||||
BeamlineInfo (Required)
|
||||
-----------------------
|
||||
|
||||
Here only a single entry is required, namely
|
||||
|
||||
========================== ============================= =====================================================
|
||||
Name Internal Type Comment
|
||||
========================== ============================= =====================================================
|
||||
Name ``TString`` name of the beamline, *e.g.* ``piM3.2``
|
||||
========================== ============================= =====================================================
|
||||
|
||||
Exhaustive MusrRoot Tree Including Everything Required
|
||||
------------------------------------------------------
|
||||
|
||||
Here it is assumed that there are hypothetical *red / green data* with electric field on/off and light on/off,
|
||||
and hence 4 data sets per detector, and 8 detectors of the instrument: ``left/forward``, ``top/forward``, ``right/forward``,
|
||||
``bottom/forward``, ``left/backward``, ``top/backward``, ``right/backward``, ``bottom/backward``. To show the whole
|
||||
tree structure, it will be split in the representation afterwards, but keep in mind: this will be all part of a
|
||||
single ``MusrRoot`` file. I will add comments in the tree structure by the symbol ``#``. Lets start with the |mgr|\SR data histograms:
|
||||
|
||||
::
|
||||
|
||||
histos -|
|
||||
|- DecayAnaModule -|
|
||||
|- hDecay001 # left/forward, electric field off, light off
|
||||
|- hDecay002 # top/forward, electric field off, light off
|
||||
|- hDecay003 # right/forward, electric field off, light off
|
||||
|- hDecay004 # bottom/forward, electric field off, light off
|
||||
...
|
||||
|- hDecay007 # right/backward, electric field off, light off
|
||||
|- hDecay008 # bottom/backward, electric field off, light off
|
||||
|- hDecay011 # left/forward, electric field on, light off
|
||||
|- hDecay012 # top/forward, electric field on, light off
|
||||
|- hDecay013 # right/forward, electric field on, light off
|
||||
|- hDecay014 # bottom/forward, electric field on, light off
|
||||
...
|
||||
|- hDecay017 # right/backward, electric field on, light off
|
||||
|- hDecay018 # bottom/backward, electric field on, light off
|
||||
|- hDecay021 # left/forward, electric field off, light on
|
||||
|- hDecay022 # top/forward, electric field off, light on
|
||||
|- hDecay023 # right/forward, electric field off, light on
|
||||
|- hDecay024 # bottom/forward, electric field off, light on
|
||||
...
|
||||
|- hDecay027 # right/backward, electric field off, light on
|
||||
|- hDecay028 # bottom/backward, electric field off, light on
|
||||
|- hDecay031 # left/forward, electric field on, light on
|
||||
|- hDecay032 # top/forward, electric field on, light on
|
||||
|- hDecay033 # right/forward, electric field on, light on
|
||||
|- hDecay034 # bottom/forward, electric field on, light on
|
||||
...
|
||||
|- hDecay037 # right/backward, electric field on, light on
|
||||
|- hDecay038 # bottom/backward, electric field on, light on
|
||||
...
|
||||
|
||||
*Comments*: as can be seen the histograms are continuous numbered until there is a red / green mode switch where
|
||||
the histogram number "jumps" (*e.g.* from ``008`` to ``011``). In order to fill in the different red / green
|
||||
histograms an offset is added (here 10, 20, and 30).
|
||||
|
||||
Next the whole ``RunHeader``. Here the information will be grouped in different folders collecting related information,
|
||||
like general run info, detector info, sample and magnetic field environment info, beamline info, etc.
|
||||
|
||||
::
|
||||
|
||||
RunInfo:
|
||||
000 - Version: $Id: TMusrRunHeader.cpp 5092 2012-03-13 07:47:00Z nemu $ -@0
|
||||
001 - Generic Validator URL: http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRoot.xsd -@0
|
||||
002 - Specific Validator URL: http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRootLEM.xsd -@0
|
||||
003 - Generator: nemu_analyzer -@0
|
||||
004 - File Name: lem12_his_0234.root -@0
|
||||
005 - Run Title: here comes the run title -@0
|
||||
006 - Run Number: 234 -@1
|
||||
007 - Run Start Time: 2012-04-19 14:25:22 -@0
|
||||
008 - Run Stop Time: 2012-04-19 19:13:47 -@0
|
||||
009 - Run Duration: 17305 sec -@3
|
||||
010 - Laboratory: PSI -@0
|
||||
011 - Instrument: LEM -@0
|
||||
012 - Muon Beam Momentum: 28.1 MeV/c -@3
|
||||
013 - Muon Species: positive muon -@0
|
||||
014 - Muon Source: target E -@0
|
||||
015 - Setup: a very special setup -@0
|
||||
016 - Comment: nothing more to be said -@0
|
||||
017 - Sample Name: the best ever -@0
|
||||
018 - Sample Temperature: 3.21 +- 0.05 K; SP: 3.2 -@3
|
||||
019 - Sample Magnetic Field: 350.002 +- 0.005 G; SP: 350 -@3
|
||||
020 - No of Histos: 8 -@1
|
||||
021 - Time Resolution: 0.1953125 ns; TDC 9999 -@3
|
||||
022 - RedGreen Offsets: 0; 10; 20; 30
|
||||
DetectorInfo:
|
||||
Detector001:
|
||||
023 - Name: Left/Forward - electric field off, light off -@0
|
||||
024 - Histo Number: 1 -@1
|
||||
025 - Histo Length: 66661 -@1
|
||||
026 - Time Zero Bin: 3419.000000 -@2
|
||||
027 - First Good Bin: 3419 -@1
|
||||
028 - Last Good Bin: 66661 -@1
|
||||
Detector002:
|
||||
029 - Name: Top/Forward - electric field off, light off -@0
|
||||
030 - Histo Number: 2 -@1
|
||||
031 - Histo Length: 66661 -@1
|
||||
032 - Time Zero Bin: 3419.000000 -@2
|
||||
033 - First Good Bin: 3419 -@1
|
||||
034 - Last Good Bin: 66661 -@1
|
||||
|
||||
...
|
||||
|
||||
Detector038:
|
||||
213 - Name: Bottom/Backward - electric field on, light on -@0
|
||||
214 - Histo Number: 38 -@1
|
||||
215 - Histo Length: 66661 -@1
|
||||
216 - Time Zero Bin: 3419.000000 -@2
|
||||
217 - First Good Bin: 3419 -@1
|
||||
218 - Last Good Bin: 66661 -@1
|
||||
|
||||
SampleEnvironmentInfo:
|
||||
219 - Cryo: Konti-1 -@0
|
||||
220 - Insert: X123 -@0
|
||||
221 - Orientation: c-axis perp spin, perp field. spin perp field -@0
|
||||
MagneticFieldEnvironmentInfo:
|
||||
222 - Magnet Name: WEW -@0
|
||||
223 - Current: 17.34 A -@3
|
||||
BeamlineInfo:
|
||||
224 - Name: muE4 -@0
|
||||
ScalerInfo:
|
||||
225 - Ip: 12332123 -@1
|
||||
RunSummary:
|
||||
0000 - Wed Oct 5 01:30:37 2011 Run 2856 started.
|
||||
0001 - Wed Oct 5 02:02:51 2011 Run 2856 stopped.
|
||||
0002 -
|
||||
0003 - LCO, T=170.02(K), wTF ~30(G)/5.18(A), Tr/Sa=15.02/8.50(kV), E=5.63(keV), LEDb off, BP off
|
||||
0004 - =========================================================================================
|
||||
0005 -
|
||||
0006 - #BUC---- B e g i n of User Comment ------ Do not edit this line
|
||||
0007 - #EUC---- E n d of User Comment ------ Do not edit this line
|
||||
0008 -
|
||||
0009 - ====================== E v e n t definition =========================
|
||||
0010 -
|
||||
0011 - Events:
|
||||
0012 - Event_0: (BC)-MCP1-(e+); Event_1:( BC)-TD-MCP2-(e+); Event_2: LEmuSR, (BC)-TD-e
|
||||
...
|
||||
|
||||
|
||||
|
||||
*Comment*: the last sub-tree ``RunSummary`` is not following ``TMusrRunHeader`` rule ``<number> - <label>: <value> -@<type>``.
|
||||
It is added in the instrument analyzer directly by other means than the ``TMusrRunHeader::Set``-method. This is no problem!
|
||||
Since ``RunSummary`` is not part of the required ``MusrRoot``-file. One is quite free in adding any ROOT based information here.
|
||||
|
||||
.. index:: MusrRoot-TMusrRunPhysicalQuantity
|
||||
.. _musr-run-physical-quantity:
|
||||
|
||||
TMusrRunPhysicalQuantity - Possible Representations
|
||||
---------------------------------------------------
|
||||
|
||||
A physical property can be described as
|
||||
|
||||
::
|
||||
|
||||
<property name>: <value> +- <estimated error> <unit>; SP: <demand>; <description>
|
||||
|
||||
where ``<property name>`` is the name of the quantity, *e.g.* Sample Temperature, ``<value>`` the value
|
||||
of the quantity, ``<estimated error>`` the error estimate, *e.g.* the standard deviation, ``<unit>`` the unit,
|
||||
*e.g.* K, ``<demand>`` a demand value, *e.g.* the set point of the temperature. ``<description>`` is a
|
||||
possible additional comment for this quantity.
|
||||
|
||||
.. note::
|
||||
|
||||
Not *all* of these quantities are always needed. The list of handled combination are given
|
||||
hereafter together with the ``C++`` code snipped how to set it. It is assumed that ``TMusrRunPhysicalQuantity prop;``
|
||||
is somewhere defined.
|
||||
|
||||
**Possibility 1**
|
||||
|
||||
::
|
||||
|
||||
<property name>: <value> <unit> [; <description>]
|
||||
|
||||
Code snippet:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
prop.Set("Muon Beam Momentum", 28.1, "MeV/c");
|
||||
header->Set("RunInfo/Muon Beam Momentum", prop);
|
||||
|
||||
prop.Set("Time Resolution", 0.1953125, "ns", "TDC 9999");
|
||||
header->Set("RunInfo/Time Resolution", prop);
|
||||
|
||||
Result in the ``RunHeader/RunInfo``:
|
||||
|
||||
::
|
||||
|
||||
011 - Muon Beam Momentum: 28.1 MeV/c -@3
|
||||
013 - Time Resolution: 0.1953125 ns; TDC 9999 -@3
|
||||
|
||||
The number on front of the token (*e.g.* ``011`` in front of Muon Beam Momentum) will depend on the position where
|
||||
the entry has been added. The last token, ``-@3``, is the encoding of the type: here ``TMusrRunPhysicalQuantity``.
|
||||
|
||||
**Possibility 2**
|
||||
|
||||
::
|
||||
|
||||
<property name>: <val> +- <err> <unit>[; <description>]
|
||||
|
||||
Code snippet:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
prop.Set("CF3", MRH_UNDEFINED, 3.27, 0.09, "K", "strange temperature");
|
||||
header->Set("SampleEnvironmentInfo/CF3", prop);
|
||||
|
||||
Result in the ``RunHeader/SampleEnvironmentInfo``:
|
||||
|
||||
::
|
||||
|
||||
033 - CF3: 3.27 +- 0.09 K; strange temperature -@3
|
||||
|
||||
**Possibility 3**
|
||||
|
||||
::
|
||||
|
||||
<property name>: <val> <unit>; SP: <demand>[; <description>]
|
||||
|
||||
Code snippet:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
prop.Set("CF4", 3.25, 3.28, "K");
|
||||
header->Set("SampleEnvironmentInfo/CF4", prop);
|
||||
|
||||
prop.Set("CF5", 3.26, 3.29, "K", "another strange temperature");
|
||||
header->Set("SampleEnvironmentInfo/CF5", prop);
|
||||
|
||||
Result in the ``RunHeader/SampleEnvironmentInfo``:
|
||||
|
||||
::
|
||||
|
||||
034 - CF4: 3.28 K; SP: 3.25 -@3
|
||||
035 - CF5: 3.29 K; SP: 3.26; another strange temperature -@3
|
||||
|
||||
**Possibility 4**
|
||||
|
||||
::
|
||||
|
||||
<property name>: <value> +- <estimated error> <unit>; SP: <demand>; <description>
|
||||
|
||||
Code snippet:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
prop.Set("Sample Magnetic Field", 350.0, 350.002, 0.005, "G", "WXY");
|
||||
header->Set("RunInfo/Sample Magnetic Field", prop);
|
||||
|
||||
Result in the ``RunHeader/SampleEnvironmentInfo``:
|
||||
|
||||
::
|
||||
|
||||
017 - Sample Magnetic Field: 350.002 +- 0.005 G; SP: 350.0; WXY -@3
|
@ -1,515 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: musredit
|
||||
|
||||
.. _musredit-sec:
|
||||
|
||||
``musredit``: the GUI Based Interface to ``musrfit``
|
||||
====================================================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. _Qt: https://qt.io
|
||||
|
||||
``musredit`` is an editor which also provide a graphical user interface to the programs contained in the ``musrfit`` suite and are intended
|
||||
to help the user handle ``musrfit`` msr files. It is implemented in ``C++`` and use the `Qt`_ framework. ``musredit`` is based on Qt 4.6 or Qt 5.6 (or above).
|
||||
The Qt 5.6 version of ``musredit`` will be actively developed, whereas the Qt 4.x version will only get bug fixing and eventually will be dropped.
|
||||
On this documentation page only the features related to ``musrfit`` are described — the basic editor functions which should be self-explanatory are *not*.
|
||||
``musrgui`` is an outdated early version of ``musredit`` and will not described anymore. If still in use, the user is urged to switch to ``musredit``.
|
||||
|
||||
.. note::
|
||||
|
||||
Before going on using ``musredit`` it is strongly recommended to read the :ref:`manual of musrfit <user-manual>` first!
|
||||
|
||||
Available Executable, Configuration Files and their Basic Usage
|
||||
----------------------------------------------------------------
|
||||
|
||||
musredit (musrgui)
|
||||
++++++++++++++++++
|
||||
|
||||
``musredit`` (``musrgui``) is the editor executable. If called from within a shell it accepts a few optional parameters:
|
||||
|
||||
**<msr-files>**
|
||||
File names of the msr files that should be opened in separate editor tabs on startup of ``musredit``.
|
||||
**- -help**
|
||||
Displays a small help notice in the shell explaining the basic usage of the program.
|
||||
**- -version**
|
||||
Prints the version number of ``musredit``.
|
||||
|
||||
If called without any parameters an empty editor window opens.
|
||||
|
||||
.. index:: musredit_startup
|
||||
|
||||
musredit_startup.xml
|
||||
++++++++++++++++++++
|
||||
|
||||
``musredit_startup.xml`` is the configuration file located under ``$HOME\.musrfit\musredit``. It is also possible to have another version
|
||||
of this file in the working directory which then will be used!
|
||||
|
||||
In this file the following ``XML`` tags are allowed to define settings and might proof useful for all users of ``musredit``:
|
||||
|
||||
**<general></general>**
|
||||
set the default paths to executable and files in this environment
|
||||
|
||||
**<exec_path>PATH_TO_EXEC</exec_path>**
|
||||
set the path ``PATH_TO_EXEC`` where the executable ``musrfit``, ``musrview``, ``musrt0``, etc. can be found (inside the ``<general>`` environment)
|
||||
**<default_save_path>SAVE_PATH</default_save_path>**
|
||||
specify the path ``SAVE_PATH`` where ``musredit`` point by default when opening and saving msr files (inside the ``<general>`` environment). Default is the current directory.
|
||||
**<msr_default_file_path>MSR_DEF_PATH</msr_default_file_path>**
|
||||
set the path ``MSR_DEF_PATH`` where the default msr files provided by ``musredit`` are stored (inside the ``<general>`` environment)
|
||||
**<timeout>3600</timeout>**
|
||||
timeout in seconds after which :ref:`musrview <musrview>` canvas will automatically quit. A value of 0 or
|
||||
a negative number will keep the ``musrview`` canvas open without self-determination.
|
||||
**<keep_minuit2_output>y/n</keep_minuit2_output>**
|
||||
flag indicating if the ``MINUIT2`` output shall be kept per msr-file ('y') or only for the current msr-file ('n').
|
||||
**<dump_ascii>y/n</dump_ascii>**
|
||||
flag indicating if ``musrfit`` shall dump fit data into ascii format. See help of :ref:`musrfit <musrfit>`.
|
||||
**<dump_root>y/n</dump_root>**
|
||||
flag indicating if ``musrfit`` shall dump fit data into root format. See help of :ref:`musrfit <musrfit>`.
|
||||
**<title_from_data_file>y/n</title_from_data_file>**
|
||||
specify if ``musrfit`` should be called with the ``-t`` option by default (inside the ``<general>`` environment)
|
||||
**<chisq_pre_run_block>y/n</chisq_pre_run_block>**
|
||||
flag indicating if per-run chisq shall be written into the msr-output-file.
|
||||
**<estimate_n0>y/n</estimate_n0>**
|
||||
flag indicating if for a single histogram fit :math:`N_0` shall be estimated before the fit procedure starts.
|
||||
**<musrview_show_fourier>y/n</musrview_show_fourier>**
|
||||
flag indicating if ``musrview`` will directly present the Fourier transform rather than the time domain data.
|
||||
**<musrview_show_avg>y/n</musrview_show_avg>**
|
||||
flag indicating if ``musrview`` will directly present averaged data, typically used for Fourier power spectra.
|
||||
**<enable_musrt0>y/n</enable_musrt0>**
|
||||
specify if :ref:`musrt0 <musrt0>` can be called from within ``musredit`` (inside the ``<general>`` environment)
|
||||
|
||||
**<font_settings></font_settings>**
|
||||
set the default font in this environment
|
||||
|
||||
**<font_name>FONT</font_name>**
|
||||
specify the name of the font ``FONT`` to be used by default in ``musredit`` (inside the ``<font_settings>`` environment)
|
||||
**<font_size>N</font_size>**
|
||||
specify the size ``N`` of the font to be used by default in ``musredit`` (inside the ``<font_settings>`` environment)
|
||||
|
||||
**<msr_file_defaults></msr_file_defaults>**
|
||||
put the default settings for newly created msr files in this environment
|
||||
|
||||
**<beamline>BL</beamline>**
|
||||
set the name of the muon beamline ``BL`` here (inside a ``<msr_file_defaults>`` environment)
|
||||
**<institute>INST</institute>**
|
||||
set the name of the facility ``INST`` where the beamline ``BL`` is located. Valid settings are ``PSI``, ``RAL``, ``JPARC``, and ``TRIUMF`` (inside a ``<msr_file_defaults>`` environment)
|
||||
**<file_format>FF</file_format>**
|
||||
specify the default data file format ``FF`` here. Valid formats are ``NEXUS``, ``MUSR-ROOT``, ``ROOT-NPP``, ``ROOT-PPC``, ``PSI-BIN``, ``PSI-MDU``, ``MDU-ASCII``, ``WKM``, ``MUD``, ``ASCII``, and ``DB`` (inside a ``<msr_file_defaults>`` environment)
|
||||
**<lifetime_correction>y/n</lifetime_correction>**
|
||||
choose if by default the ``lifetimecorrection`` option should be set (inside a ``<msr_file_defaults>`` environment)
|
||||
|
||||
**<msr2data_defaults></msr2data_defaults>**
|
||||
define the default options for calling :ref:`msr2data <msr2data>` in this environment; the options set here are ticked by default in the graphical interface of ``musredit``.
|
||||
|
||||
**<chain_fit>y/n</chain_fit>**
|
||||
(un)set the chain fit (!) option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<write_data_header>y/n</write_data_header>**
|
||||
(un)set the noheader option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<ignore_data_header_info>y/n</ignore_data_header_info>**
|
||||
(un)set the nosummary option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<keep_minuit2_output>y/n</keep_minuit2_output>**
|
||||
(un)set the ``-k`` option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<write_column_data>y/n</write_column_data>**
|
||||
(un)set the ``data`` option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<create_msr_file_only>y/n</create_msr_file_only>**
|
||||
(un)set the ``msr`` option in case a template run is specified (inside a ``<msr2data_defaults>`` environment)
|
||||
**<fit_only>y/n</fit_only>**
|
||||
(un)set the ``fit`` option in case no template run is specified (inside a ``<msr2data_defaults>`` environment)
|
||||
**<global>y/n</global>**
|
||||
(un)set the ``global`` option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<global_plus>y/n</global_plus>**
|
||||
(un)set the ``global+`` option (inside a ``<msr2data_defaults>`` environment)
|
||||
**<recreate_data_file>y/n</recreate_data_file>**
|
||||
(un)set the ``musredit`` option for recreating the output file (inside a ``<msr2data_defaults>`` environment)
|
||||
**<open_file_after_fitting>y/n</open_file_after_fitting>**
|
||||
(un)set the ``musredit`` option for opening msr files after fitting (inside a ``<msr2data_defaults>`` environment)
|
||||
|
||||
Additionally, there are some settings defined in this XML file which should be only changed by experienced users who like to add new features to ``musredit``:
|
||||
|
||||
**<help_section></help_section>**
|
||||
define various help messages in this environment
|
||||
|
||||
**<musr_web_X>LINK</musr_web_X>**
|
||||
define the ``LINK`` to the help page ``musr_web_X``, where ``X`` is ``main``, ``title``, ``parameters``, ``theory``, ``functions``, ``run``,
|
||||
``command``, ``fourier``, ``plot``, ``statistics``, ``msr2data``, or ``musrFT`` (inside a ``<help_section>`` environment)
|
||||
|
||||
**<func_pixmap_path>PIX_PATH</func_pixmap_path>**
|
||||
set the path ``PIX_PATH`` to LaTeX pixmaps visualizing the various supported theory functions
|
||||
|
||||
**<theory_functions></theory_functions>**
|
||||
define the functions for a msr file's :ref:`THEORY block <msr-theory-block>` according to the correct syntax in this environment
|
||||
|
||||
**<func></func>**
|
||||
specify a function here (inside a ``<theory_functions>`` environment)
|
||||
|
||||
**<name>NAME</name>**
|
||||
the ``NAME`` of the function in the msr file (inside a ``<func>`` environment)
|
||||
**<comment>COMMENT</comment>**
|
||||
description of the used parameters (inside a ``<func>`` environment)
|
||||
**<label>LABEL</label>**
|
||||
``LABEL`` of the function in the ``musredit`` menu (inside a ``<func>`` environment)
|
||||
**<pixmap>PIXMAP</pixmap>**
|
||||
LaTeX picture used to describe the function and stored in the ``PIX_PATH`` (inside a ``<func>`` environment)
|
||||
**<params>N</params>**
|
||||
number of parameters ``N`` used by the function (inside a ``<func>`` environment)
|
||||
|
||||
An example of the ``musredit_startup.xml`` looks like:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<musredit_startup xmlns="http://lmu.web.psi.ch/musrfit/user/MUSR/MusrGui.html">
|
||||
<comment>
|
||||
This is handling default setting parameters for the musredit.
|
||||
</comment>
|
||||
<general>
|
||||
<exec_path>/usr/local/root/bin</exec_path>
|
||||
<default_save_path>./</default_save_path>
|
||||
<msr_default_file_path>/usr/local/root/share/doc/musrfit/templates</msr_default_file_path>
|
||||
<timeout>3600</timeout>
|
||||
<keep_minuit2_output>n</keep_minuit2_output>
|
||||
<dump_ascii>n</dump_ascii>
|
||||
<dump_root>n</dump_root>
|
||||
<title_from_data_file>y</title_from_data_file>
|
||||
<chisq_per_run_block>n</chisq_per_run_block>
|
||||
<estimate_n0>y</estimate_n0>
|
||||
<musrview_show_fourier>n</musrview_show_fourier>
|
||||
<musrview_show_avg>n</musrview_show_avg>
|
||||
<enable_musrt0>y</enable_musrt0>
|
||||
</general>
|
||||
<recent_files>
|
||||
<path_file_name>/usr/local/root/share/doc/musrfit/examples/test-histo-PSI-BIN.msr</path_file_name>
|
||||
</recent_files>
|
||||
<help_section>
|
||||
<musr_web_main>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html</musr_web_main>
|
||||
<musr_web_title>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheTitle</musr_web_title>
|
||||
<musr_web_parameters>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheFitparameterBlock</musr_web_parameters>
|
||||
<musr_web_theory>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheTheoryBlock</musr_web_theory>
|
||||
<musr_web_functions>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheFunctionsBlock</musr_web_functions>
|
||||
<musr_web_run>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheRunBlock</musr_web_run>
|
||||
<musr_web_command>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheCommandsBlock</musr_web_command>
|
||||
<musr_web_fourier>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheFourierBlock</musr_web_fourier>
|
||||
<musr_web_plot>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#ThePlotBlock</musr_web_plot>
|
||||
<musr_web_statistic>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#TheStatisticBlock</musr_web_statistic>
|
||||
<musr_web_msr2data>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/Msr2Data.html</musr_web_msr2data>
|
||||
<musr_web_musrFT>file:///usr/local/root/share/doc/musrfit/html/user/MUSR/MusrFit.html#A_2.3_musrFT</musr_web_musrFT>
|
||||
</help_section>
|
||||
<font_settings>
|
||||
<font_name>Monospace</font_name>
|
||||
<font_size>12</font_size>
|
||||
</font_settings>
|
||||
<msr_file_defaults>
|
||||
<beamline>mue4</beamline>
|
||||
<institute>psi</institute>
|
||||
<file_format>musr-root</file_format>
|
||||
<lifetime_correction>y</lifetime_correction>
|
||||
</msr_file_defaults>
|
||||
<msr2data_defaults>
|
||||
<chain_fit>y</chain_fit>
|
||||
<write_data_header>y</write_data_header>
|
||||
<ignore_data_header_info>n</ignore_data_header_info>
|
||||
<keep_minuit2_output>n</keep_minuit2_output>
|
||||
<write_column_data>n</write_column_data>
|
||||
<recreate_data_file>n</recreate_data_file>
|
||||
<open_file_after_fitting>y</open_file_after_fitting>
|
||||
<create_msr_file_only>n</create_msr_file_only>
|
||||
<fit_only>n</fit_only>
|
||||
<global>n</global>
|
||||
<global_plus>n</global_plus>
|
||||
</msr2data_defaults>
|
||||
<func_pixmap_path>/usr/local/root/share/doc/musrfit/latex_images</func_pixmap_path>
|
||||
<theory_functions>
|
||||
<func>
|
||||
<name>asymmetry</name>
|
||||
<comment></comment>
|
||||
<label>Asymmetry</label>
|
||||
<pixmap>asymmetry.png</pixmap>
|
||||
<params>1</params>
|
||||
</func>
|
||||
<func>
|
||||
<name>statGssKT</name>
|
||||
<comment>(rate)</comment>
|
||||
<label>static Gauss KT</label>
|
||||
<pixmap>statGssKT.png</pixmap>
|
||||
<params>1</params>
|
||||
</func>
|
||||
</theory_functions>
|
||||
</musredit_startup>
|
||||
|
||||
.. index:: musredit-features
|
||||
|
||||
musredit Features
|
||||
-----------------
|
||||
|
||||
The features of ``musrfit`` which can be accessed by the graphical front ends ``musredit`` will be 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*.
|
||||
|
||||
**musrWiz**
|
||||
|
||||
.. image:: ../images/musrWiz.*
|
||||
|
||||
``musrWiz`` is a helper programs which allows to create a msr-file from scratch without too much a priori knowledge. For details see :ref:`musrWiz <musrWiz>`.
|
||||
|
||||
.. index:: musrWiz
|
||||
.. _musrWiz:
|
||||
|
||||
**Calculate Chisq**
|
||||
|
||||
.. image:: ../images/musrchisq.*
|
||||
|
||||
Calls ``musrfit`` with the option ``-c``, *i.e.* calculates the :math:`\chi^2` or log max-likelihood for the active msr file tab. Shortcut-key: ``Alt+C``.
|
||||
The equivalent call on the command line would be
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrfit -c <msr-file>
|
||||
|
||||
**Fit**
|
||||
|
||||
.. image:: ../images/musrfit.*
|
||||
|
||||
Calls ``musrfit`` for fitting of the active msr file in the currently active tab. Shortcut-key: ``Alt+F``.
|
||||
The equivalent call on the command line could look like
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrfit <msr-file> [optional parameters]
|
||||
|
||||
The optional parameters may be chosen under :ref:`Preferences <musredit-prefs>`. For further information refer to the manual of :ref:`musrfit <user-manual>`.
|
||||
|
||||
**Swap Msr <-> Mlog**
|
||||
|
||||
.. image:: ../images/musrswap.*
|
||||
|
||||
Swap the msr and mlog files. *E.g.*, for a file called ``8472_zf.msr``, this is copied to ``8472_zf.mlog`` and vice versa. Shortcut-key: ``Alt+S``.
|
||||
|
||||
**Set Steps**
|
||||
|
||||
.. image:: ../images/musrStep.*
|
||||
|
||||
``musrStep`` allows to adjust the step size, *i.e.* the initial steps for the fitter. Shortcut-key: ``Alt+P``.
|
||||
|
||||
**Msr2Data**
|
||||
|
||||
.. image:: ../images/msr2data.*
|
||||
|
||||
Opens a graphical interface to the ``msr2data`` program described in detail in its :ref:`own manual <msr2data>`. Shortcut-key: ``Alt+2``.
|
||||
|
||||
**mupp**
|
||||
|
||||
.. image:: ../images/mupp.*
|
||||
|
||||
Application which allows to plot ``*.db`` and ``*.dat`` parameter files. Shortcut-key: ``Alt+U``.
|
||||
For a detailed description see the :ref:`mupp docu <mupp>`.
|
||||
|
||||
**View**
|
||||
|
||||
.. image:: ../images/musrview.*
|
||||
|
||||
Calls ``musrview`` from the active tab of ``musredit``. For more details see the :ref:`musrview <musrview>` docu. Shortcut-key: ``Alt+V``.
|
||||
The equivalent call on the command line could look like
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrview <msr-file> [optional parameters]
|
||||
|
||||
**T0**
|
||||
|
||||
.. image:: ../images/musrt0-icon.*
|
||||
|
||||
Calls ``musrt0`` which allows to set the ``T0`` values for all the runs. For more details see the :ref:`musrt0 <musrt0>` docu.
|
||||
The equivalent call on the command line could look like
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrt0 <msr-file> [optional parameters]
|
||||
|
||||
**Raw Fourier**
|
||||
|
||||
.. image:: ../images/musrFT.*
|
||||
|
||||
Calls ``musrFT`` which allows to perform a Fourier transform of the raw data. For more details see the :ref:`musrFT <musrFT>` docu.
|
||||
The equivalent call on the command line could look like
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrFT <msr-file> [optional parameters]
|
||||
|
||||
.. _musredit-prefs:
|
||||
|
||||
**Preferences**
|
||||
|
||||
.. image:: ../images/musrprefs.*
|
||||
|
||||
Opens a window in which the optional parameters that should be passed to musrfit can be chosen.
|
||||
For further information refer to the manual of :ref:`musrfit <musrfit>`.
|
||||
|
||||
**Dump Header**
|
||||
|
||||
.. image:: ../images/musrdump.*
|
||||
|
||||
Opens a file dialog which allows to select a |mgr|\SR data file. When this file can be read, the run header info is dumped into a dialog window.
|
||||
Essentially this calls ``dump_header`` internally.
|
||||
|
||||
musrWiz
|
||||
-------
|
||||
|
||||
``musrWiz`` is a helper program which allows to easily create the necessary msr-file needed as an 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
|
||||
|
||||
.. image:: ../images/musredit-musrWiz.*
|
||||
|
||||
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.
|
||||
|
||||
.. index:: musrWiz-Introduction
|
||||
|
||||
musrWiz-Introduction
|
||||
++++++++++++++++++++
|
||||
|
||||
The introduction dialogue
|
||||
|
||||
.. image:: ../images/musrWiz-Intro.*
|
||||
|
||||
#. an explicit msr-file name can be provided here. More often the msr-file name is generated out of the run number.
|
||||
#. year of the run data.
|
||||
#. 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.
|
||||
#. from the pull down menu the institute (for which a necessary ``xml``-file is provided) has to be choosen.
|
||||
#. from the pull down menu the the instrument can be chosen.
|
||||
#. the fit type has to be chosen. Possible fit types are: ``Single Histo`` / ``Single Histo RRF`` / ``Asymmetry`` / ``Asymmetry RRF`` / ``Mu Minus`` / ``None muSR``
|
||||
#. type of measurement is essentially needed for the grouping of the detectors. Possible are: ``ZF`` for zero field measurements / ``TF`` for transverse field measurements / ``LF`` for longitudinal field measurements.
|
||||
Depending on the choice and instrument some additional question might be asked, *e.g.* which magnet has been used.
|
||||
#. ``T0``'s: this last menu defines from where to get the t0's. The options are: ``from data file``, *i.e.* the t0 are assumed to be correctly set
|
||||
in the provided data file ``call musrT0``, *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 ``enter here`` will provide a pop-up menu where the t0 parameter can be given explicitly.
|
||||
|
||||
If all this information have been provided ``Next>`` will lead you the the theory dialogue.
|
||||
|
||||
.. index:: musrWiz-Theory
|
||||
|
||||
musrWiz - Theory
|
||||
++++++++++++++++
|
||||
|
||||
The theory dialogue is used to define the fitting function. There are two ways of using it:
|
||||
|
||||
#. 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.
|
||||
#. freely write your theory function. The advantage here is that you can customize your theory function at your needs.
|
||||
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.
|
||||
|
||||
First the template path will be described. The theory dialogue looks like this
|
||||
|
||||
.. image:: ../images/musrWiz-Theory.*
|
||||
|
||||
#. This is a text edit field were you can enter the theory fit function as you would like to have it. In the example
|
||||
given the theory reads :math:`p1 \exp(-p2\, t) \cos(2 \pi\, f1 + m1)`, where ``pX`` stands for parameter, ``fX`` for function,
|
||||
``mX`` for map, and ``X`` for the corresponding number.
|
||||
#. The ``Clear All`` button will clear whatever you entered in the text field above.
|
||||
#. This pull-down menu allows to select a theory function which will be added to the text field above by pressing
|
||||
the ``Add`` button. Pre defined theory function starting with a ``T`` are templates rather than only theory function strings.
|
||||
#. The ``Add`` button is used to add the chosen theory function / template from the pull-down menu to its left.
|
||||
#. The ``Check`` button is used to make a syntactical check of whatever is written in the text edit field.
|
||||
|
||||
.. index:: musrWiz-Functions
|
||||
|
||||
musrWiz - Functions
|
||||
+++++++++++++++++++
|
||||
|
||||
In the Functions dialogue all the necessary functions can be entered. A function operates *only* on fitting parameters.
|
||||
This is different to the theory function which operates on the fitting parameters and the time. The dialogue looks like this
|
||||
|
||||
.. image:: ../images/musrWiz-Functions.*
|
||||
|
||||
|
||||
#. 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 *no* editing will be needed here.
|
||||
#. pressing ``Show Theory`` 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.
|
||||
|
||||
.. image:: ../images/musrWiz-Functions-and-Theory.*
|
||||
|
||||
.. index:: musrWiz-Maps
|
||||
|
||||
musrWiz - Maps
|
||||
++++++++++++++
|
||||
|
||||
.. image:: ../images/musrWiz-Maps.*
|
||||
|
||||
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.
|
||||
|
||||
#. The ``Show Theory`` button allows to show the currently defined theory and the functions.
|
||||
|
||||
.. index:: musrWiz-FitParam
|
||||
|
||||
musrWiz - Fit Parameters
|
||||
++++++++++++++++++++++++
|
||||
|
||||
.. image:: ../images/musrWiz-FitParam.*
|
||||
|
||||
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.
|
||||
|
||||
#. The ``Show Theory`` button allows to show the currently defined theory and the functions.
|
||||
|
||||
.. index:: musrWiz-FitInfo
|
||||
|
||||
musrWiz - Fit Info
|
||||
++++++++++++++++++
|
||||
|
||||
Collects all the ``musrfit`` and ``MINUIT2`` specific fit commands.
|
||||
|
||||
.. image:: ../images/musrWiz-FitInfo.*
|
||||
|
||||
|
||||
#. allows to define the time fit range (start time, end time).
|
||||
#. packing defines how many bins of the original data shall be combined (added, also called re-binning).
|
||||
#. in this text field to fitting commands are given (see the ``MINUIT`` and :ref:`musrfit <msr-commands-block>` manual for details).
|
||||
|
||||
.. index:: musrWiz-Create
|
||||
|
||||
musrWiz - Create
|
||||
++++++++++++++++
|
||||
|
||||
Collects the last necessary information before creating the msr-file.
|
||||
|
||||
.. image:: ../images/musrWiz-Create.*
|
||||
|
||||
|
||||
#. shows the path where the msr-file will be saved. If you would like to save it somewhere else press the ``Save As (msr-file path)`` button.
|
||||
#. pressing this button will allow you to find the path where to save the msr-file.
|
||||
#. pressing this button will save to current configuration as a template for future re-use.
|
||||
|
||||
.. index:: musrStep
|
||||
|
||||
musrStep
|
||||
--------
|
||||
|
||||
``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.
|
||||
|
||||
.. image:: ../images/musrStep-GUI.*
|
||||
|
||||
When invoking ``musrStep`` the above dialogue will popup
|
||||
|
||||
#. shows the relevant parts of the FITPARAMETER block. The only editable column is step.
|
||||
#. ``Check Specific`` will popup a dialogue where a template string can be entered, *e.g.* ``Asym``. As a result all fit parameters containing the template string will be selected.
|
||||
#. ``Check All`` will select all fit parameters.
|
||||
#. ``Uncheck All`` will unselect all fit parameters.
|
||||
#. ``Modify Automatic`` 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.
|
||||
#. ``Modify Selected`` will start the dialogue shown beneath. Follow the description there.
|
||||
#. ``Save&Quit`` will save the current step values, close the dialogue and reload the modified msr-file.
|
||||
#. ``Cancel`` will cancel the ``musrStep`` dialogue without modifying anything.
|
||||
|
||||
.. image:: ../images/musrStep-Modify-Selected.*
|
||||
|
||||
When clicking on ``Modify Selected`` the above dialogue will be presented. It allows to manipulate all selected fit parameter step values according to the following rules
|
||||
|
||||
#. ``Scale by Factor`` will scale the step value by the factor given in the field (2). If the ``Absolute Value`` check box is selected, rather than scaling the factor value will be used to modify the step value.
|
||||
#. scaling factor or absolute value to modify the step values of the selected fit parameters.
|
||||
#. checking the ``Absolute Value`` check box will change the meaning from *Scale by Factor* to *Copy Factor Value*.
|
||||
#. ``Scale Automatically`` will modify the step values of the selected fit parameters according to the rules described before.
|
||||
#. ``Cancel`` will cancel the dialogue.
|
@ -1,275 +0,0 @@
|
||||
:tocdepth: 3
|
||||
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: dks
|
||||
|
||||
.. _setup-dks:
|
||||
|
||||
Setting up ``musrfit`` / ``DKS``: High Speed Fitting with GPU's
|
||||
===============================================================
|
||||
|
||||
In the years 2016/2017 we explored ways to speed up current fitting frameworks, especially ``musrfit.``
|
||||
This allows now to analyze histogram sets of high field spectrometers like ``HAL-9500`` at PSI without
|
||||
the *error-prone* RRF fitting (see U. Locans and A. Suter,
|
||||
`musrfit - Real Time Parameter Fitting Using GPU <http://dx.doi.org/10.7566/JPSCP.21.011051>`_, and the
|
||||
Memo from A. Suter, "Rotating Reference Frame Fits", in the ``musrfit`` source code). At the same time
|
||||
it can help to speed-up elaborate global fits tremendously, and dealing properly with muonium. It also
|
||||
allows Apple macOS users to speed up their fitting code on the CPU. Currently it is not straight forward
|
||||
to get ``musrfit`` multi-threaded under macOS since Apple doesn't be default support ``OpenMP``. ``DKS``
|
||||
enables ``musrfit`` to utilize ``OpenCL`` instead which is present on macOS by default.
|
||||
|
||||
.. warning::
|
||||
|
||||
Before you run into the shop to buy a gamer graphic card or a Tesla card, make sure that you have an
|
||||
appropriate server with a sufficiently strong power supply!
|
||||
|
||||
.. note::
|
||||
|
||||
However, the current ``musrfit/DKS`` version doesn't yet support all theory functions on the GPU.
|
||||
In case the theory function is not yet available for the GPU, ``musrfit`` will fall back to the CPU implementation.
|
||||
|
||||
Conceptually the setup of ``musrfit/DKS`` is as following:
|
||||
|
||||
#. install the latest hardware driver for your graphic card.
|
||||
#. install the GPU SDK which enables number crunching (``CUDA`` for NVIDIA, ``OpenCL`` for AMD)
|
||||
#. install ``DKS``
|
||||
#. install the ``musrfit`` version which is ``DKS`` ready
|
||||
|
||||
In the following the description for the installation of ``musrfit/DKS`` for the following systems will be discussed in some more detail:
|
||||
|
||||
* NVIDIA Tesla K40c
|
||||
* AMD Graphic Card (Radeon R9 390X)
|
||||
* macOS in order to get ``OpenCL`` support
|
||||
|
||||
The usage of ``musrfit`` with GPU acceleration and ``OpenCL`` support is described in the
|
||||
:ref:`User manual of the μSR data analysis software musrfit <user-manual>`. The additional
|
||||
``musrfit/DKS`` are found :ref:`here <msr-commands-block-dks>`.
|
||||
|
||||
.. index:: dks-setup-tesla
|
||||
|
||||
Setting up ``musrfit/DKS`` for a Tesla K40c (NVIDIA)
|
||||
----------------------------------------------------
|
||||
|
||||
It is assumed that the Tesla K40c is already physically installed on your system. For now I only
|
||||
will discuss to set it up for a Linux based system. In order to check that your operating systems
|
||||
see the card, enter the following command in the terminal:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ lspci | grep NVIDIA
|
||||
|
||||
The response should look something like
|
||||
|
||||
::
|
||||
|
||||
05:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
|
||||
|
||||
which means that the OS physically recognizes your card.
|
||||
|
||||
Driver Installation for the Tesla K40c
|
||||
++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
Next, you will need to download and install the driver for your card. Select the proper operating system,
|
||||
card, etc. from the `NVIDIA download center <http://www.nvidia.com/Download/index.aspx?lang=en-us>`_. At PSI
|
||||
we are running currently Red Hat Enterprise Linux 7.x (RHEL) for which we will get a ``rpm`` (something like
|
||||
``nvidia-diag-driver-local-repo-rhel7-375.66-1.x86_64.rpm``). Install it and make sure there is no conflict
|
||||
with the nouveau driver of the system.
|
||||
|
||||
.. index:: cuda-install
|
||||
|
||||
Installation of CUDA
|
||||
++++++++++++++++++++
|
||||
|
||||
Download the `CUDA SDK <https://developer.nvidia.com/cuda-downloads>`_ form NVIDIA for your system. Again,
|
||||
for the RHEL 7.x this is an ``rpm``. After the installation of the rpm you should reboot your machine.
|
||||
Afterwards you are ready for the installation of ``DKS``.
|
||||
|
||||
.. index:: dks-install
|
||||
|
||||
Installation of DKS
|
||||
+++++++++++++++++++
|
||||
|
||||
For the following list of commands the ``'$'`` will be given as the command prompt. *Do not 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. ``DKS`` stands for Dynamical Kernel Scheduler and provides a thin interface
|
||||
allowing host applications to incorporate GPU's and other hardware accelerators.
|
||||
|
||||
Details can be found in the papers listed :ref:`here <cite>`, or on the `DKS wiki page <https://gitlab.psi.ch/uldis_l/DKS/wikis/home>`_.
|
||||
|
||||
In brief the installation should be something like this:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# go to whatever directory you would like to clone/install DKS
|
||||
# For macOS DKS will likely to got to $HOME/Applications to be consistent with the musrfit docu for macOS
|
||||
$ cd $HOME/Apps
|
||||
$ git clone https://gitlab.psi.ch/uldis_l/DKS.git
|
||||
$ cd DKS
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake ../ -DENABLE_MUSR=1 -DCMAKE_INSTALL_PREFIX=../exec
|
||||
$ cmake --build ./ --clean-first
|
||||
$ make install
|
||||
|
||||
Since ``DKS`` is installed in a non-standard path, a couple of additional small steps are required.
|
||||
This will be different for Linux compared to macOS.
|
||||
|
||||
For **Linux:**
|
||||
|
||||
add the ``DKS`` library path to ``/etc/ld.so.conf.d/musrfit-x86_64.conf`` and execute as super user
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ /sbin/ldconfig
|
||||
|
||||
For **macOS:**
|
||||
|
||||
add the ``DKS`` path to ``$HOME/.profile``:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
export DKS=$HOME/Applications/DKS/exec
|
||||
export LD_LIBRARY_PATH=$DKS/lib:$LD_LIBRARY_PATH
|
||||
|
||||
launchctl setenv DKS $DKS
|
||||
launchctl setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH
|
||||
|
||||
|
||||
.. _musrfit-dks-install:
|
||||
|
||||
Installation of musrfit for DKS
|
||||
+++++++++++++++++++++++++++++++
|
||||
|
||||
Most of the installation steps are the same as described for ``musrfit`` without GPU support.
|
||||
Here only the differences are explained. First checkout ``musrfit``, then you will need to
|
||||
switch the working branch which is done by
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ cd $HOME/Apps/musrfit
|
||||
$ git checkout dks6
|
||||
|
||||
Install via cmake
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
There is on more configuration switch
|
||||
|
||||
**-Ddks=<value>**
|
||||
it allows to enable/disable ``DKS`` support. The default is ``<value>=1``, *i.e.* enabled. To disable use ``<value>=0``.
|
||||
|
||||
For a typical setup on a RHEL or macOS system it could look like this
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ cmake ../ -DCMAKE_INSTALL_PREFIX=$ROOTSYS -DASlibs=1 -DBMWlibs=1 -Dnexus=1 -Ddks=1
|
||||
|
||||
After
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ cmake --build ./ --clean-first -- -j8
|
||||
$ make install
|
||||
|
||||
and updating the shared library lookup table (*only* needed for Linux)
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ /sbin/ldconfig # as superuser / root
|
||||
|
||||
you are done with the setup.
|
||||
|
||||
.. index:: dks-setup-amd-graphic-card
|
||||
|
||||
Setting up ``musrfit/DKS`` for a AMD Graphic Card (Radeon R9 390X)
|
||||
------------------------------------------------------------------
|
||||
|
||||
Driver Installation for an AMD Graphic Card, *e.g.* Radeon R9 390X
|
||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
This will depend slightly on the AMD Card and operating system. Here I will summaries how it was done
|
||||
on a RHEL (Linux) system using a Radeon R9 390X.
|
||||
|
||||
It is assumed that the Radeon R9 390X is already physically installed on your system. For now I only
|
||||
will discuss to set it up for a Linux based system. In order to check that your operating systems see
|
||||
the card, enter the following command in the terminal:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ lspci | grep AMD
|
||||
|
||||
The response should look something like
|
||||
|
||||
::
|
||||
|
||||
84:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT / Grenada XT [Radeon R9 290X/390X] (rev 80)
|
||||
|
||||
which means that the OS physically recognizes your card.
|
||||
|
||||
For RHEL7.x the AMDGPU-PRO driver should be used. It can be downloaded from `AMD <http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-RedHat-Install.aspx>`_. Unpack the driver
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ tar -Jxvf amdgpu-pro-17.10-414273.tar.xz
|
||||
$ cd amdgpu-pro-17.10-414273
|
||||
|
||||
Install the driver as root
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ ./amdgpu-pro-install --compute -y
|
||||
|
||||
Here I assume that the AMD graphic card is only used for computation. You need to add the following command
|
||||
in order that the user **blabla** (change this to the appropriate user name) can access the GPU (otherwise
|
||||
only root works):
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ /sbin/usermod -a -G video blabla
|
||||
|
||||
Reboot the machine.
|
||||
|
||||
AMD APP Software Development Kit (SDK) to enable ``OpenCL`` support
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
The AMD APP Software Development Kit (SDK) is a complete development platform created by AMD to allow you to
|
||||
quickly and easily develop applications accelerated by AMD APP technology. The SDK provides samples, documentation,
|
||||
and other materials to quickly get you started leveraging accelerated compute using ``OpenCL`` or ``C++ AMP`` in your
|
||||
``C/C++`` applications.
|
||||
|
||||
Download the AMD APP SDK 3.0 from `AMD-SDK <http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/>`_.
|
||||
|
||||
Extract the installer
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ tar -xvjf AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2
|
||||
|
||||
Run the installer
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ ./AMD-APP-SDK-v3.0.130.136-GA-linux64.sh
|
||||
|
||||
This will install the AMD APP SDK to ``/opt/AMDAPPSDK-3.0/`` where you can find the ``OpenCL`` include
|
||||
and library files, as well as documentation and sample code. The install guide for AMD OpenCL SDK can
|
||||
be found at `AMD SDK Installation Notes <http://developer.amd.com/wordpress/media/2012/10/AMD_APP_SDK_InstallationNotes.pdf>`_.
|
||||
|
||||
Installation of DKS and musrfit
|
||||
+++++++++++++++++++++++++++++++
|
||||
|
||||
To install ``DKS`` and ``musrfit`` follow the instructions :ref:`above <musrfit-dks-install>`.
|
||||
|
||||
.. index:: dks-opencl-macOS
|
||||
|
||||
Setting up ``musrfit/DKS`` for macOS for OpenCL support
|
||||
-------------------------------------------------------
|
||||
|
||||
Since Apple is not providing an out-of-the-box ``OpenMP`` support on their macOS compiler framework (Xcode),
|
||||
typically ``musrfit`` is just running *single threaded*. Here ``DKS`` can help since it delivers ``OpenCL``
|
||||
support which is present on macOS. Hence, if you would like to run ``musrfit`` multi-threaded the easiest
|
||||
way is to use ``DKS``.
|
||||
|
||||
Since there is no graphic card involved, you do not need any graphic card driver of additional SDK.
|
||||
The only thing you need ``DKS`` and the proper ``musrfit`` version.
|
||||
|
||||
The installation instruction for ``DKS/musrfit`` can be found :ref:`here <musrfit-dks-install>`.
|
@ -1,417 +0,0 @@
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: tutorial
|
||||
|
||||
Tutorial for ``musrfit``
|
||||
========================
|
||||
|
||||
Single-histogram-fit tutorial
|
||||
-----------------------------
|
||||
|
||||
The |mgr|\SR-data-analysis process using musrfit is based on so-called msr files. These files contain all
|
||||
information needed for the analysis such as names of the data files, a theory function, fit and plot parameters,
|
||||
and so on. It is the idea of this page to explain the basic use of an msr file and the different programs
|
||||
of the ``musrfit`` suite using the example of a single-histogram fit to time-differential transverse-field
|
||||
|mgr|\SR data. For a complete description of all options please refer to the :ref:`manual <user-manual>`.
|
||||
|
||||
The example deals with a diamagnetic sample that has been measured in an applied field of approximately 150 G in
|
||||
the `GPS spectrometer <https://www.psi.ch/smus/gps>`_ at `PSI <https://www.psi.ch>`_ using the "transverse geometry".
|
||||
In this geometry the muon spin is rotated about 50° up and the field is applied parallel to the muon momentum.
|
||||
Hence, the relevant positron counters (to detect the spin precession) are placed above (histogram 3), below (histogram 4) and right of (histogram 5) the sample. The run numbers start from 3110.
|
||||
|
||||
To analyze these data (in a simple way) one starts out from the msr file ``3110_tutorial.msr`` provided together
|
||||
with the source-code distribution in the sub-directory ``doc/examples/``. This ASCII file can be edited using any
|
||||
text editor. For convenience the editor ``musredit`` is provided which offer some msr-file-specific functionalities
|
||||
and additionally serve as front ends to the underlying programs. In the following it is assumed that the file is
|
||||
open within ``musredit``.
|
||||
|
||||
The msr file
|
||||
++++++++++++
|
||||
|
||||
The msr file itself is divided into different blocks; a full description of the format can be found :ref:`here <msr-file-format>`.
|
||||
In the file ``3110_tutorial.msr`` these blocks are successively:
|
||||
|
||||
:ref:`The title <msr-title-block>`
|
||||
|
||||
::
|
||||
|
||||
sample XYZ
|
||||
|
||||
A descriptive title of the file.
|
||||
|
||||
:ref:`The FITPARAMETER block <msr-fitparameter-block>`
|
||||
|
||||
::
|
||||
|
||||
FITPARAMETER
|
||||
# No Name Value Step Pos_Error Boundaries
|
||||
1 NormUp 4500 5 none 0 none
|
||||
2 BgUp 200 1 none 0 none
|
||||
3 PhaseUp 15 1 none
|
||||
|
||||
4 NormDown 4500 5 none 0 none
|
||||
5 BgDown 200 1 none 0 none
|
||||
6 PhaseDown 195 1 none
|
||||
|
||||
7 NormRight 600 5 none 0 none
|
||||
8 BgRight 40 1 none 0 none
|
||||
9 PhaseRight 285 1 none
|
||||
|
||||
10 AsymSig1 0.17 0.01 none 0 0.33
|
||||
11 RateSig1 2.5 0.1 none 0 none
|
||||
12 FieldSig1 100 1 none
|
||||
|
||||
13 AsymSig2 0.02 0.01 none 0 0.33
|
||||
14 RateSig2 0.5 0.1 none
|
||||
15 FieldSig2 150 1 none
|
||||
|
||||
The list of parameters used in the theory function to describe the set of data.
|
||||
Each parameter has a number, a name, an initial value and an initial step (for
|
||||
the fitting process). If a parameter should be fixed, the initial step is set
|
||||
to 0. After a fit (see below), this block contains the determined parameter values
|
||||
and uncertainties (in the ``Step`` column). If asymmetric errors are determined, these
|
||||
will be listed in the ``Step`` column (negative) and the ``Pos_Error`` column (positive).
|
||||
Optionally, lower and upper boundaries for the parameters can be specified as
|
||||
shown above.
|
||||
|
||||
The meaning of the parameters above is explained in the following:
|
||||
|
||||
Since a :ref:`single-histogram fit <single-histogram-fit>` should be done, some
|
||||
histogram-specific parameters are needed. These are a normalization constant (parameter 1),
|
||||
a parameter describing the background of uncorrelated events (parameter 2) and the initial
|
||||
phase of the spin precession with respect to the detector (parameter 3). As stated above,
|
||||
there are three histograms containing useful information ("Up", "Down", "Right"); hence,
|
||||
this set of parameters has to be present for each of them (parameters 1–9).
|
||||
The remaining parameters are used to model the decay asymmetry which is assumed to be equal
|
||||
for all histograms. In this example one has two signals (*e.g.* from the sample and the
|
||||
sample holder), each with an amplitude (parameters 10 and 13), a depolarization rate
|
||||
(parameters 11 and 14) and a mean field (here given in Gauss, parameters 12 and 15).
|
||||
|
||||
:ref:`The THEORY block <msr-theory-block>`
|
||||
|
||||
::
|
||||
|
||||
THEORY
|
||||
asymmetry 10
|
||||
simplExpo 11 (rate)
|
||||
TFieldCos map1 fun1 (phase frequency)
|
||||
+
|
||||
asymmetry 13
|
||||
simpleGss 14 (rate)
|
||||
TFieldCos map1 fun2 (phase frequency)
|
||||
|
||||
The THEORY block is used to define a fit-parameter-dependent theory function used to model
|
||||
the decay asymmetry. Different :ref:`predefined <msr-theory-block>` and :ref:`user-defined <user-functions>`
|
||||
functions can be combined here. Theory lines following each other are *multiplied* and the **+** sign
|
||||
is used to add different (here: two) signal contributions. The numbers are the parameter numbers
|
||||
according to the ``FITPARAMETER block``. ``map`` and ``fun`` are used to refer to
|
||||
histogram-dependent parameters and to interrelate fit parameters, respectively (see below).
|
||||
|
||||
:ref:`The FUNCTIONS block <msr-functions-block>`
|
||||
|
||||
::
|
||||
|
||||
FUNCTIONS
|
||||
fun1 = gamma_mu * par12
|
||||
fun2 = gamma_mu * par15
|
||||
|
||||
Here functions interrelating different fit parameters and predefined constants can be defined for
|
||||
the use in the ``THEORY block``. In the example, the functions are used to calculate the
|
||||
muon-spin-precession frequencies for the given fields [:math:`\nu = \gamma_\mu B / (2\pi)`]. One
|
||||
function is used for each signal. Altogether, the theory function defined above is
|
||||
:math:`A(t) = p_{10} e^{-p_{11} t} \cos(\varphi_i \pi/180 + \gamma_\mu p_{12} t) + p_{13} e^{-(p_{14} t)^2/2} \cos(\varphi_i \pi/180 + \gamma_\mu p_{15} t)`, where the *p* are the parameters in the ``FITPARAMETER block`` and :math:`\varphi_i = p_3, p_6, p_9`
|
||||
depending on the histogram as shall be seen later.
|
||||
|
||||
:ref:`The RUN block <msr-run-block>`
|
||||
|
||||
::
|
||||
|
||||
RUN data/deltat_pta_gps_3110 PIM3 PSI PSI-BIN (name beamline institute data-file-format)
|
||||
fittype 0 (single histogram fit)
|
||||
norm 1
|
||||
backgr.fit 2
|
||||
map 3 0 0 0 0 0 0 0 0 0
|
||||
forward 3
|
||||
data 1 8000
|
||||
t0 1
|
||||
fit 0 4.9
|
||||
packing 20
|
||||
|
||||
The RUN blocks are used to collect information on the data to be analyzed. Specifically, these are:
|
||||
|
||||
::
|
||||
|
||||
RUN data/deltat_pta_gps_3110 PIM3 PSI PSI-BIN (name beamline institute data-file-format)
|
||||
|
||||
The path to the data file and the file format (NEXUS, ROOT-NPP, ROOT-PPC, PSI-BIN, PSI-MDU, WKM, MUD, MDU-ASCII).
|
||||
|
||||
::
|
||||
|
||||
fittype 0 (single histogram fit)
|
||||
|
||||
the fit type (0 = single-histogram fit)
|
||||
|
||||
::
|
||||
|
||||
norm 1
|
||||
|
||||
the number of the fit parameter representing the normalization constant
|
||||
|
||||
::
|
||||
|
||||
backgr.fit 2
|
||||
|
||||
the number of the fit parameter representing the background
|
||||
|
||||
::
|
||||
|
||||
map 3 0 0 0 0 0 0 0 0 0
|
||||
|
||||
the definition of the **maps** used in the ``THEORY block`` — RUN-block-specific
|
||||
parameters are given here; in this example, **map1** is substituted by **parameter 3**
|
||||
in the ``THEORY block`` for this RUN block and **map2**, **map3**, and so on are undefined.
|
||||
|
||||
::
|
||||
|
||||
forward 3
|
||||
|
||||
the histogram number; in this example 3 corresponds to the histogram of the "Up" positron counter
|
||||
|
||||
::
|
||||
|
||||
data 1 8000
|
||||
|
||||
start and end bins of the range containing useful data in the histogram (to be adjusted, *e.g.* by using ``musrt0``, see below)
|
||||
|
||||
::
|
||||
|
||||
t0 1
|
||||
|
||||
histogram bin corresponding to the time zero (muon implantation time) (to be adjusted, *e.g.* by ``musrt0``, see below)
|
||||
|
||||
::
|
||||
|
||||
fit 0 4.9
|
||||
|
||||
start and end times (in |mgr|\s) defining the fit range. *In case the fit range
|
||||
exceeds the range of useful data (specified above using the data tag), eventually
|
||||
this data range is used as fit range.*
|
||||
|
||||
::
|
||||
|
||||
packing 20
|
||||
|
||||
the packing of the histograms (in histogram bins)
|
||||
|
||||
Since the data of three histograms is to be analyzed, the file contains not only one but
|
||||
three RUN blocks — each defining the histogram-specific information following the example given above.
|
||||
|
||||
:ref:`The COMMAND block <msr-commands-block>`
|
||||
|
||||
::
|
||||
|
||||
COMMANDS
|
||||
MINIMIZE
|
||||
MINOS
|
||||
SAVE
|
||||
|
||||
In the ``COMMANDS block``, a sequence of operations that should be performed is defined.
|
||||
Here, the requested operations are the minimization of :math:`\chi^2` (MINIMIZE), the
|
||||
calculation of *asymmetric errors* (MINOS) as well as saving the found parameter values
|
||||
and uncertainties to the msr file (SAVE). A full description of the possible commands can
|
||||
be found :ref:`here <msr-commands-block>`.
|
||||
|
||||
:ref:`The FOURIER block <msr-fourier-block>`
|
||||
|
||||
::
|
||||
|
||||
FOURIER
|
||||
units Gauss # units either 'Gauss', 'MHz', or 'Mc/s'
|
||||
fourier_power 10
|
||||
apodization WEAK # NONE, WEAK, MEDIUM, STRONG
|
||||
plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE
|
||||
phase par3
|
||||
range 0.0 600.0
|
||||
|
||||
The ``FOURIER block`` is used to define basic settings for the Fourier transform available
|
||||
in :ref:`musrview <musrview>`. These are:
|
||||
|
||||
::
|
||||
|
||||
units Gauss # units either 'Gauss', 'MHz', or 'Mc/s'
|
||||
|
||||
the units of the Fourier domain
|
||||
|
||||
::
|
||||
|
||||
fourier_power 10
|
||||
|
||||
the number of data points used for the discrete transform, here :math:`2^{10}=1024`.
|
||||
|
||||
::
|
||||
|
||||
apodization WEAK # NONE, WEAK, MEDIUM, STRONG
|
||||
|
||||
the :ref:`apodization <msr-fourier-block-apodization>` to be used
|
||||
|
||||
::
|
||||
|
||||
plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE
|
||||
|
||||
what should be plotted (real part, imaginary part, and so on)
|
||||
|
||||
::
|
||||
|
||||
phase par3
|
||||
|
||||
the initial phase of the input data is given here in degrees. Optionally, a phase parameter
|
||||
from the ``FITPARAMETER block`` can be given, here **par3** takes the value of **parameter 3**.
|
||||
|
||||
::
|
||||
|
||||
range 0.0 600.0
|
||||
|
||||
the start and end points of the range of the Fourier transform in the units specified above
|
||||
|
||||
:ref:`The PLOT block <msr-plot-block>`
|
||||
|
||||
::
|
||||
|
||||
PLOT 0 (single histo plot)
|
||||
runs 1 2
|
||||
range 0 4 -0.2 0.2
|
||||
|
||||
The ``PLOT block`` defines which data (corresponding to the given RUN blocks) is plotted when
|
||||
:ref:`musrview <musrview>` is called. In the given example, a canvas would be drawn containing
|
||||
the (life-time-corrected) data of the first two ``RUN blocks`` ("Up" and "Down" positron counters).
|
||||
The abscissa would range from 0 to 4 |mgr|\s, the axis of ordinates from -0.2 to 0.2.
|
||||
It is possible to define more than one ``PLOT block``. Each ``PLOT block`` corresponds to a
|
||||
separate canvas. Therefore, the second ``PLOT block`` in the file
|
||||
|
||||
::
|
||||
|
||||
PLOT 0 (single histo plot)
|
||||
runs 3
|
||||
use_fit_ranges
|
||||
|
||||
produces an additional window containing the (not life-time-corrected) data of the third ``RUN block``
|
||||
("Right" positron counter). The abscissa ranges from 0 to 4.9 |mgr|\s (according to the fit range given
|
||||
in the ``RUN block``).
|
||||
|
||||
:ref:`The STATISTIC block <msr-statistic-block>`
|
||||
|
||||
::
|
||||
|
||||
STATISTIC --- 2011-07-09 10:58:44
|
||||
chisq = 1348.1764, NDF = 1146, chisq/NDF = 1.176419
|
||||
|
||||
This block is the last block of a msr file. It contains some information on the fit: the
|
||||
date and time as well as the absolute and normalized values of :math:`\chi^2` and the
|
||||
number of degrees of freedom in the fit.
|
||||
These information only have a meaning if the fitting procedure has been executed at
|
||||
least once and the fit has converged!
|
||||
|
||||
Determine t0 and the data range using musrt0
|
||||
++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
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 :ref:`musrt0 <musrt0>`.
|
||||
Starting this program by selecting the ``musrt0`` button in ``musredit`` or calling from a terminal
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrt0 3110_tutorial.msr
|
||||
|
||||
opens an interactive window plotting the data of the first RUN block:
|
||||
|
||||
.. image:: ../images/tutorial-musrt0-1.*
|
||||
|
||||
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 **T**
|
||||
(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 **d**
|
||||
when the cursor is found at a suitable location:
|
||||
|
||||
.. image:: ../images/tutorial-musrt0-2.*
|
||||
|
||||
After all lines have been adjusted for the first histogram, one can go on to the second by pressing **q**.
|
||||
This procedure is repeated until all ranges have been set correctly. When finished with the last histogram
|
||||
the new t0 and data-range values will be written to the msr file. A full description of ``musrt0`` can be
|
||||
found :ref:`here <musrt0>`.
|
||||
|
||||
Fit the model to the data using ``musrfit``
|
||||
+++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
Now that the basics of the msr 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 ``musrfit`` icon
|
||||
in ``musredit`` or calling from a terminal
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrfit 3110_tutorial.msr
|
||||
|
||||
After the fitting procedure has finished the msr file is updated and contains the newly determined values
|
||||
of the fit parameters.
|
||||
|
||||
View the data and the fit using ``musrview``
|
||||
++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
The data and the corresponding fit can be visualized by choosing the ``musrview`` icon in ``musredit`` or
|
||||
calling from a terminal
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ musrview 3110_tutorial.msr
|
||||
|
||||
This creates the windows according to the given PLOT blocks in the msr file:
|
||||
|
||||
.. image:: ../images/tutorial-musrview-1.*
|
||||
|
||||
The basic features of ``musrview`` can be found in the ``Musrfit menu``. They include:
|
||||
|
||||
* export the shown data and the model to an ASCII file with comma-separated values
|
||||
* presenting the difference between the shown data and the model (keyboard shortcut: **d**)
|
||||
* calculate and show the Fourier transform of the shown data (keyboard shortcut: **f**), *e.g.* for
|
||||
the asymmetry of the "Up" and "Down" detectors:
|
||||
|
||||
.. image:: ../images/tutorial-musrview-FT.*
|
||||
|
||||
Process multiple msr files using ``msr2data``
|
||||
+++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
This short introduction is concluded by calling attention to the program :ref:`msr2data <msr2data>`.
|
||||
As the name indicates the main purpose of this program is to extract the ``FITPARAMETER`` block
|
||||
information from multiple msr files with the same structure and to summarize them in a single
|
||||
ASCII file (either in ``TRIUMF DB`` format or simple columns). However, as described in detail
|
||||
in the manual, it is not only possible to collect data from msr files but also to create new
|
||||
msr files from a template and to process these files using ``musrfit`` on the fly.
|
||||
|
||||
Assuming the successive runs **3111** through **3114** can be analyzed using the same model introduced
|
||||
above for run **3110** (*e.g.* in the case one has done measurements at different temperatures) one can
|
||||
use the file ``3110_tutorial.msr`` as template, generate the files ``3111_tutorial.msr`` through
|
||||
``3114_tutorial.msr`` with the corresponding updates in the RUN blocks, call for each one ``musrfit``
|
||||
and finally summarize the FITPARAMETER block information of all processed files in an ASCII output
|
||||
file ``tutorial-T-dependence.dat`` (simple columns). If further information on the temperature or the
|
||||
applied field is available in the data files these will be included as well in the resulting ASCII file.
|
||||
From the terminal this would be done as follows:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ msr2data 3110 3114 _tutorial fit-3110 -o tutorial-T-dependence.dat data
|
||||
|
||||
To achieve the same in ``musredit`` (in this snapshot in the *dark theme*) one selects the ``msr2data`` icon and fills the form accordingly:
|
||||
|
||||
.. image:: ../images/tutorial-musredit-msr2data.*
|
||||
|
||||
Further reading
|
||||
+++++++++++++++
|
||||
|
||||
This page only summarizes the very basic features and options of the programs contained in the ``musrfit`` suite.
|
||||
For a complete description please refer to the manuals of :ref:`musrfit <musrfit>` (including :ref:`musrview <musrview>`,
|
||||
:ref:`musrt0 <musrt0>`, and :ref:`musrFT <musrFT>`), :ref:`mupp <mupp>`, :ref:`musredit <musredit-sec>`, and :ref:`msr2data <msr2data>`.
|
||||
|
||||
Asymmtery-fit tutorial
|
||||
----------------------
|
||||
|
||||
to be written yet.
|
@ -1,747 +0,0 @@
|
||||
:tocdepth: 3
|
||||
|
||||
.. include:: <isogrk1.txt>
|
||||
.. index:: user-libs
|
||||
|
||||
.. _user-libs:
|
||||
|
||||
Documentation of user libs (user functions)
|
||||
===========================================
|
||||
|
||||
.. index:: BMW-libs
|
||||
.. _BMW-libs:
|
||||
|
||||
Meissner-Profiles / Vortex-Lattice related functions (BMW libs)
|
||||
---------------------------------------------------------------
|
||||
|
||||
.. index:: libFitPofB
|
||||
|
||||
libFitPofB
|
||||
++++++++++
|
||||
|
||||
Introduction
|
||||
^^^^^^^^^^^^
|
||||
|
||||
``libFitPofB`` is a collection of ``C++`` classes using the ``musrfit`` :ref:`user-functions <user-functions>`
|
||||
interface in order to facilitate the usage in conjunction with ``musrfit``. The classes contained in this
|
||||
library generally implement calculations of one-dimensional static magnetic field distributions
|
||||
:math:`p(B)` which lead to the muon-spin depolarization functions
|
||||
|
||||
.. math::
|
||||
|
||||
{\cal P}(t) = \int p(B) \cos(\gamma_\mu B t + \varphi) dB,
|
||||
|
||||
where :math:`\gamma_\mu = 2 \pi \times 135.54` MHz/T is the gyromagnetic ratio of the muon and :math:`\varphi`
|
||||
is the initial phase of the muon spins with respect to the positron detector. At the moment the only available
|
||||
implementations deal with field distributions measured in local isotropic superconductors, either by means of
|
||||
low-energy |mgr|\SR (see `<https://www.psi.ch/smus/lem>`_) in the Meissner state or by bulk |mgr|\SR in the mixed state.
|
||||
In the following the basic usage of the library in ``musrfit`` is explained—the calculations by themselves are only
|
||||
outlined. For further information please refer to the original literature and/or the source code of the implementation.
|
||||
|
||||
.. note::
|
||||
|
||||
In order to supply certain information needed for the calculations but not suited to be stored in the ``musrfit``
|
||||
msr files an ``XML`` configuration file in the working directory is used. For details, see below.
|
||||
|
||||
.. note::
|
||||
|
||||
The implementations in this library heavily rely on `FFTW3 <http://fftw.org/>`_. In principle, it always checks what
|
||||
is the best way to do efficient Fourier transforms for a given machine before the transforms are actually done. If
|
||||
repeatedly Fourier transforms of the same (sizable) length should be done, it might be worth storing the once
|
||||
obtained information in an external file and just load it the next time this information is needed
|
||||
(`wisdom handling <http://fftw.org/fftw3_doc/Wisdom.html>`_). In case this feature shall be used, a valid wisdom
|
||||
file has to be specified in the ``XML`` file.
|
||||
|
||||
.. note::
|
||||
|
||||
The model functions described in the following do generally *not behave nicely* in conjunction with ``MINUIT``
|
||||
function minimizations (or maximizations). The analysis process at the moment in most cases involves some
|
||||
tedious trial-and-error procedure, where the displayed MINUIT information as always deserves attention.
|
||||
This is especially true if small effects should be analyzed (*e.g.* small diamagnetic shifts in superconductors).
|
||||
The parameter uncertainty in many cases has to be estimated independently. Due to these limitations, also
|
||||
the use of the fit option of ``msr2data`` *cannot* be advised.
|
||||
|
||||
.. note::
|
||||
|
||||
If these classes still prove useful and results obtained through them are part of scientific publications,
|
||||
an acknowledgment of the use of the library is appreciated.
|
||||
|
||||
LE-|mgr|\SR
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. index:: 1D-London-Meissner
|
||||
|
||||
One-dimensional London model for the Meissner state of isotropic superconductors
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
The models for analyzing LE-|mgr|\SR data assume the magnetic induction :math:`B(z)` to vary only in the
|
||||
dimension parallel to the momentum of the incident muons. In such a case the magnetic field distribution is given by
|
||||
|
||||
.. math::
|
||||
|
||||
p(B) = n(z) \left| \frac{dB(z)}{dz} \right|^{-1}
|
||||
|
||||
where :math:`n(z)` is the muon implantation profile simulated by ``TRIM.SP``.
|
||||
|
||||
Assuming an array of *N* isotropic local superconductors with a total thickness *d* in the Meissner state
|
||||
the magnetic induction is given by solving the 1D London equation
|
||||
|
||||
.. math::
|
||||
|
||||
\frac{\partial^2}{\partial z^2}B_i(z) = \frac{1}{\lambda_i^2}B_i(z)
|
||||
|
||||
for each layer *i* taking into account the boundary conditions (F. London, Superfluids: Macroscopic Theory of Superconductivity, Dover (1961), p. 34)
|
||||
|
||||
.. math::
|
||||
|
||||
B_1(0) = B_N(d) = \mu_0H
|
||||
|
||||
B_i(d_i) = B_{i+1}(d_i)
|
||||
|
||||
\lambda_i^2B_i'(z)\Big\vert_{z=d_i} = \lambda_{i+1}^2B_{i+1}'(z)\Big\vert_{z=d_i},
|
||||
|
||||
where the :math:`d_i` specify the interfaces between two adjacent layers and :math:`\lambda_i` is
|
||||
the magnetic field penetration depth in the constituent :math:`i`.
|
||||
|
||||
The calculation of the field distribution has been set up for a superconducting half-space as well
|
||||
as superconducting thin films with up to three superconducting layers with different penetration depths.
|
||||
The muon-spin depolarization functions are calculated using the following lines in the ``THEORY`` block
|
||||
of a ``musrfit`` msr file:
|
||||
|
||||
.. index:: TLondon1DHS
|
||||
|
||||
**Superconducting half-space**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TLondon1DHS 1 2 3 4 5
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. muon implantation energy as specified in the :ref:`XML startup <BMWlibs-XML>` file (keV)
|
||||
#. applied field (G)
|
||||
#. thickness of the dead layer (nm)
|
||||
#. magnetic field penetration depth (nm)
|
||||
|
||||
.. index:: TLondon1D1L
|
||||
|
||||
**Superconducting thin film (one layer)**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TLondon1D1L 1 2 3 4 5 6 [a b]
|
||||
|
||||
The mandatory parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. muon implantation energy as specified in the :ref:`XML startup <BMWlibs-XML>` file (keV)
|
||||
#. applied field (G)
|
||||
#. thickness of the dead layer (nm)
|
||||
#. thickness of the actually superconducting layer (nm)
|
||||
#. magnetic field penetration depth (nm)
|
||||
|
||||
The optional parameters are:
|
||||
|
||||
a. fraction f\ :sub:`1` of muons in the thin film contributing to the signal (0 ≤ f\ :sub:`1` ≤ 1)
|
||||
b. fraction f\ :sub:`s` of muons in the substrate contributing to the signal (0 ≤ f\ :sub:`s` ≤ 1)
|
||||
|
||||
.. index:: TLondon1D2L
|
||||
|
||||
**Superconducting thin-film bilayer heterostructure**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TLondon1D2L 1 2 3 4 5 6 7 8 [a b c]
|
||||
|
||||
The mandatory parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. muon implantation energy as specified in the :ref:`XML startup <BMWlibs-XML>` file (keV)
|
||||
#. applied field (G)
|
||||
#. thickness of the dead layer (nm)
|
||||
#. thickness of the actually superconducting first layer (nm)
|
||||
#. thickness of the actually superconducting second layer (nm)
|
||||
#. magnetic field penetration depth of the first layer (nm)
|
||||
#. magnetic field penetration depth of the second layer (nm)
|
||||
|
||||
The optional parameters are:
|
||||
|
||||
a. fraction f\ :sub:`1` of muons in the dead and first layer contributing to the signal (0 ≤ f\ :sub:`1` ≤ 1)
|
||||
b. fraction f\ :sub:`2` of muons in the second layer contributing to the signal (0 ≤ f\ :sub:`2` ≤ 1)
|
||||
c. fraction f\ :sub:`s` of muons in the substrate contributing to the signal (0 ≤ f\ :sub:`s` ≤ 1)
|
||||
|
||||
.. index:: TLondon1D3L
|
||||
|
||||
**Superconducting thin-film trilayer heterostructure**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TLondon1D3L 1 2 3 4 5 6 7 8 9 10 [a b c d]
|
||||
|
||||
The mandatory parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. muon implantation energy as specified in the :ref:`XML startup <BMWlibs-XML>` file (keV)
|
||||
#. applied field (G)
|
||||
#. thickness of the dead layer (nm)
|
||||
#. thickness of the actually superconducting first layer (nm)
|
||||
#. thickness of the actually superconducting second layer (nm)
|
||||
#. thickness of the actually superconducting third layer (nm)
|
||||
#. magnetic field penetration depth of the first layer (nm)
|
||||
#. magnetic field penetration depth of the second layer (nm)
|
||||
#. magnetic field penetration depth of the third layer (nm)
|
||||
|
||||
The optional parameters are:
|
||||
|
||||
a. fraction f\ :sub:`1` of muons in the dead and first layer contributing to the signal (0 ≤ f\ :sub:`1` ≤ 1)
|
||||
b. fraction f\ :sub:`2` of muons in the second layer contributing to the signal (0 ≤ f\ :sub:`2` ≤ 1)
|
||||
c. fraction f\ :sub:`3` of muons in the third layer contributing to the signal (0 ≤ f\ :sub:`3` ≤ 1)
|
||||
d. fraction f\ :sub:`s` of muons in the substrate contributing to the signal (0 ≤ f\ :sub:`s` ≤ 1)
|
||||
|
||||
Bulk |mgr|\SR
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
.. index:: Vortex-State-Isotropic
|
||||
|
||||
Field distributions in the mixed state of isotropic superconductors
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
When investigating superconductors in the mixed state by means of conventional |mgr|\SR a
|
||||
two-dimensional flux-line lattice is probed randomly by the muons. The spatial field
|
||||
distributions within such an ordered lattice are modeled using the Fourier series
|
||||
|
||||
.. math::
|
||||
|
||||
B(\mathbf{r}) = \langle B \rangle \sum\limits_{\mathbf{K}}B_{\mathbf{K}}\exp(-\imath\mathbf{K}\mathbf{r}),
|
||||
|
||||
where :math:`\mathbf{r}=(x,y)`, **K** are the reciprocal lattice vectors of a two-dimensional
|
||||
vortex lattice and the :math:`B_{\mathbf{K}}` are the Fourier coefficients depending on the
|
||||
magnetic penetration depth :math:`\lambda` and the superconducting coherence length :math:`\xi`.
|
||||
The :math:`B_{\mathbf{K}}` for some specific models are as follows:
|
||||
|
||||
**London model with Gaussian cutoff** (E.H. Brandt, `J. Low Temp. Phys. 73, 355 (1988) <http://dx.doi.org/10.1007/BF00683568>`_.)
|
||||
|
||||
.. math::
|
||||
|
||||
B_{\mathbf{K}} = \frac{\exp\left({-K^2\xi^2/2}\right)}{1 + K^2\lambda^2}
|
||||
|
||||
**Modified London model** (T.M. Riseman *et al.*, `Phys. Rev. B 52, 10569 (1995) <http://dx.doi.org/10.1103/PhysRevB.52.10569>`_.)
|
||||
|
||||
.. math::
|
||||
|
||||
B_{\mathbf{K}} = \frac{\exp\left({-K^2\xi^2/2(1-b)}\right)}{1 + K^2\lambda^2/(1-b)},
|
||||
|
||||
where :math:`b = \langle B \rangle / (\mu_0 H_{\rm c2})`.
|
||||
|
||||
**Analytical Ginzburg-Landau model** ( A. Yaouanc, P. Dalmas de Réotier and E.H. Brandt, `Phys. Rev. B 55, 11107 (1997) <http://dx.doi.org/10.1103/PhysRevB.55.11107>`_)
|
||||
|
||||
.. math::
|
||||
|
||||
B_{\mathbf{K}} = \frac{f_{\infty}K_1\left(\frac{\xi_v}{\lambda}\sqrt{f_{\infty}^2+\lambda^2K^2}\right)}{K_1\left(\frac{\xi_v}{\lambda}f_{\infty}\right)\sqrt{f_{\infty}^2+\lambda^2K^2}},
|
||||
|
||||
where :math:`f_{\infty} = 1 - b^4,~\xi_v = \xi\left(\sqrt{2}-{3\xi}/\left({4\lambda}\right)\right)\sqrt{(1+b^4)(1-2b(1-b)^2)}` and
|
||||
:math:`K_1` is a modified Bessel function.
|
||||
|
||||
Apart from the mentioned analytic models the **numerical Ginzburg-Landau model** (`E.H. Brandt, Phys. Rev. B 68, 054506 (2003). <http://dx.doi.org/10.1103/PhysRevB.68.054506>`_) is available. In this case :math:`B(\mathbf{r})` is obtained by an iterative minimization of the free energy of the vortex lattice.
|
||||
|
||||
**Concerning the applicability (e.g. field regions) of each of the mentioned models please refer to the original publications!**
|
||||
|
||||
At the moment, the calculation of the field distribution has been implemented for *triangular* flux-line lattices.
|
||||
The number of grid lines in which the inter-vortex distance is divided for the calculations to be specified through
|
||||
the :ref:`XML startup <BMWlibs-XML>`.
|
||||
The muon-spin depolarization functions finally are calculated using the following lines in the THEORY block of a ``musrfit`` msr file:
|
||||
|
||||
.. index:: Vortex-Gaussian-CutOff
|
||||
|
||||
**2D triangular vortex lattice, London model with Gaussian cutoff**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TBulkTriVortexLondon 1 2 3 4
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. mean magnetic induction (G)
|
||||
#. magnetic penetration depth (nm)
|
||||
#. Ginzburg-Landau coherence length (nm)
|
||||
|
||||
.. index:: Vortex-London-modified
|
||||
|
||||
**2D triangular vortex lattice, modified London model**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TBulkTriVortexML 1 2 3 4
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. mean magnetic induction (G)
|
||||
#. magnetic penetration depth (nm)
|
||||
#. Ginzburg-Landau coherence length (nm)
|
||||
|
||||
.. index:: Vortex-Analytic-GL
|
||||
|
||||
**2D triangular vortex lattice, analytic Ginzburg-Landau model**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TBulkTriVortexAGL 1 2 3 4
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. mean magnetic induction (G)
|
||||
#. magnetic penetration depth (nm)
|
||||
#. Ginzburg-Landau coherence length (nm)
|
||||
|
||||
.. index:: Vortex-Numeric-GL
|
||||
|
||||
**2D triangular vortex lattice, numerical Ginzburg-Landau model**
|
||||
|
||||
::
|
||||
|
||||
userFcn libFitPofB TBulkTriVortexNGL 1 2 3 4
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. phase (deg)
|
||||
#. mean magnetic induction (G)
|
||||
#. magnetic penetration depth (nm)
|
||||
#. Ginzburg-Landau coherence length (nm)
|
||||
|
||||
.. note::
|
||||
|
||||
In order to improve the convergence of ``MIGRAD`` it has proven useful to use the log-likelihood
|
||||
maximization instead of the :math:`\chi^2` minimization routines and to choose sufficiently large
|
||||
initial steps for the parameters. Calling ``MINOS`` in conjunction with these functions is futile.
|
||||
|
||||
Therefore, the :ref:`COMMANDS block <msr-commands-block>` of the msr file could look like:
|
||||
|
||||
::
|
||||
|
||||
COMMANDS
|
||||
STRATEGY 2
|
||||
MAX_LIKELIHOOD
|
||||
MIGRAD
|
||||
HESSE
|
||||
SAVE
|
||||
|
||||
.. index:: BMWlibs-XML
|
||||
.. _BMWlibs-XML:
|
||||
|
||||
The XML startup file
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``BMW_startup.xml`` is a configuration file located in the working directory. In this file some settings
|
||||
like the time and field resolution of the calculations as well as the present muon implantation profiles
|
||||
for a LE-|mgr|\SR analysis have to be defined. The following XML tags are allowed to define settings:
|
||||
|
||||
**<debug>ONE_OR_ZERO</debug>**
|
||||
activate the debugging output of the settings read from the XML file by setting 1, deactivate it with 0.
|
||||
**<wisdom>PATH_TO_FILE</wisdom>**
|
||||
specify the ``PATH_TO_FILE`` to an `FFTW3 wisdom file <http://fftw.org/fftw3_doc/Wisdom.html#Wisdom>`_
|
||||
that should be used; if the ``PATH_TO_FILE`` is invalid, no ``FFTW3`` wisdom will be used.
|
||||
**<delta_t>ResT</delta_t>**
|
||||
set the time resolution ``ResT`` for the calculated depolarization function in microseconds.
|
||||
**<delta_B>ResB</delta_B>**
|
||||
set the field resolution ``ResB`` for the calculated field distribution in Gauss.
|
||||
**<VortexLattice></VortexLattice>**
|
||||
set the parameters used for the calculation of the spatial field distribution of a vortex lattice.
|
||||
|
||||
**<N_VortexGrid>N</N_VortexGrid>**
|
||||
specify the number of points **N** (in each of the two dimensions) for which the fields within the
|
||||
vortex lattice are calculated (inside a **<VortexLattice>** environment)
|
||||
|
||||
**<LEM></LEM>**
|
||||
set the parameters used for the calculation of LE-|mgr|\SR field distributions
|
||||
|
||||
**<data_path>DATA_PATH_PREFIX</data_path>**
|
||||
specify the ``DATA_PATH_PREFIX`` to the ``TRIM.SP`` implantation profiles (inside a **<LEM>** environment)
|
||||
**<N_theory>N_THEORY</N_theory>**
|
||||
specify the number of points **N_THEORY** for which *B(z)* is calculated (inside a **<LEM>** environment)
|
||||
The specification of this number is not needed if the calculation of the inverse of *B(z)* is implemented!
|
||||
**<energy_list></energy_list>**
|
||||
set the energies for which ``TRIM.SP`` implantation profiles are available (inside a **<LEM>** environment)
|
||||
|
||||
**<energy_label>LABEL</energy_label>**
|
||||
specify the **LABEL** within the file name of a available ``TRIM.SP`` ``RGE`` file (inside a **<energy_list>** environment)
|
||||
The expected name of the ``RGE`` file will be: ``DATA_PATH_PREFIX + LABEL + .rge``
|
||||
**<energy>E</energy>**
|
||||
specify the muon energy *E* (in keV) belonging to the ``TRIM.SP`` ``RGE`` file given above (inside a **<energy_list>** environment)
|
||||
|
||||
An example XML file looks as follows:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<BMW>
|
||||
<debug>0</debug>
|
||||
<wisdom>/home/user/WordsOfWisdom.dat</wisdom>
|
||||
<delta_t>0.01</delta_t>
|
||||
<delta_B>0.5</delta_B>
|
||||
<VortexLattice>
|
||||
<N_VortexGrid>1024</N_VortexGrid>
|
||||
</VortexLattice>
|
||||
<LEM>
|
||||
<data_path>/home/user/TrimSP/some-sample-</data_path>
|
||||
<N_theory>5000</N_theory>
|
||||
<energy_list>
|
||||
<energy_label>02_0</energy_label>
|
||||
<energy>2.0</energy>
|
||||
<energy_label>03_0</energy_label>
|
||||
<energy>3.0</energy>
|
||||
<energy_label>03_6</energy_label>
|
||||
<energy>3.6</energy>
|
||||
<energy_label>05_0</energy_label>
|
||||
<energy>5.0</energy>
|
||||
<energy_label>05_3</energy_label>
|
||||
<energy>5.3</energy>
|
||||
</energy_list>
|
||||
</LEM>
|
||||
</BMW>
|
||||
|
||||
Nonlocal superconductivity related Meissner screening functions (AS libs)
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
To be written yet ...
|
||||
|
||||
.. index:: BNMR-libs
|
||||
.. _BNMR-libs:
|
||||
|
||||
Functions to analyze |bgr|-NMR data (BNMR libs)
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
This is a collection of ``C++`` classes using the ``musrfit`` :ref:`user-functions <user-functions>`
|
||||
interface in order to facilitate the usage in conjunction with ``musrfit``. It consists of two libraries:
|
||||
|
||||
* ``libBNMR`` contains functions to fit spin lattice relaxation (SLR) data.
|
||||
* ``libLineProfile`` contains functions to fit resonance lineshapes.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
Currently it is recommended to read in the data in ASCII format as a non-|mgr|\SR fit :ref:`(fit type 8) <non-musr-fit>`.
|
||||
|
||||
.. index:: libBNMR
|
||||
|
||||
libBNMR
|
||||
++++++++++
|
||||
|
||||
In |bgr|-NMR the SLR is usually measured by implanting a pulse of :math:`^8`\ Li with a length :math:`t_0` into the sample.
|
||||
The asymmetry is measured both during the pulse and afterwards. For a a general spin relaxation function :math:`f(t)` the time evolution of the asymmetry is then given by [`Z. Salman, et al., PRL 96, 147601 (2006) <http://dx.doi.org/10.1103/PhysRevLett.96.147601>`_]:
|
||||
|
||||
|
||||
|
||||
.. index:: SLR
|
||||
.. _SLR:
|
||||
|
||||
.. math::
|
||||
P(t) = \left\{\begin{matrix}
|
||||
\frac{\int_0^t e^{-(t-t')/\tau_{\mathrm{Li}}}f(t-t')dt'}{\int_0^t e^{-t'/\tau_{\mathrm{Li}}}dt' } & t\leq t_0\\[6pt]
|
||||
\frac{\int_0^{t_0}e^{-(t_0-t')/\tau_{\mathrm{Li}}}f(t-t')dt'}{\int_0^{t_0}e^{-t'/\tau_{\mathrm{Li}}}dt'} & t> t_0,
|
||||
\end{matrix}\right.
|
||||
|
||||
where :math:`\tau_{\mathrm{Li}}=1.21`\ s is the :math:`^8`\ Li lifetime.
|
||||
|
||||
|
||||
Functions
|
||||
^^^^^^^^^^^^
|
||||
The ``libBNMR`` library currently contains the following functions:
|
||||
|
||||
|
||||
|
||||
|
||||
.. index:: ExpRlx
|
||||
|
||||
**Exponential relaxation**
|
||||
|
||||
::
|
||||
|
||||
userFcn libBNMR ExpRlx 1 2
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. pulse length :math:`t_0` (s)
|
||||
#. relaxation rate :math:`\lambda` (s\ :math:`^{-1}`\ )
|
||||
|
||||
This function implements :math:`f(t)=e^{-\lambda t}`.
|
||||
|
||||
.. index:: SExpRlx
|
||||
|
||||
**Stretched exponential relaxation**
|
||||
|
||||
::
|
||||
|
||||
userFcn libBNMR SExpRlx 1 2 3
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. pulse length :math:`t_0` (s)
|
||||
#. relaxation rate :math:`\lambda` (s\ :math:`^{-1}`\ )
|
||||
#. stretching exponent :math:`\beta`
|
||||
|
||||
This function implements :math:`f(t)=e^{-(\lambda t)^{\beta}}`.
|
||||
|
||||
|
||||
|
||||
.. index:: libLineProfile
|
||||
|
||||
libLineProfile
|
||||
+++++++++++++++++
|
||||
In addition to some simple line shapes ``libLineProfile`` contains functions to fit chemical shift anisotropies in the powder average.
|
||||
Their functional form can be found in `M. Mehring, Principles of High Resolution NMR in Solids (Springer 1983) <http://dx.doi.org/10.1007/978-3-642-68756-3_2>`_.
|
||||
|
||||
For an axially symmetric interaction it is given by:
|
||||
|
||||
.. index:: Iax
|
||||
.. _Iax:
|
||||
|
||||
.. math::
|
||||
|
||||
I_{\mathrm ax}(f)=\left\{\begin{matrix} \frac{1}{2\sqrt{(f_\parallel-f_\perp)(f-f_\perp)}}& f\in(f_\perp,f_\parallel)\cup(f_\parallel,f_\perp)\\[6pt] 0 & \text{otherwise}\end{matrix} \right.
|
||||
|
||||
where :math:`f_\parallel` and :math:`f_\perp` are the frequencies that would be observed if the field is oriented paralell or perpendicular to the symmetry axis, respectively.
|
||||
|
||||
|
||||
| In case of a completely anisotropic interaction, the powder average can be described by the frequencies along the three principle axis :math:`f_1,f_2,f_3`.
|
||||
| Assume without loss of generality that :math:`f_1<f_2<f_3`, then
|
||||
|
||||
.. index:: Ianiso
|
||||
.. _Ianiso:
|
||||
|
||||
.. math::
|
||||
I(f)&=\left\{\begin{matrix}
|
||||
\frac{K(m)}{\pi\sqrt{(f-f_1)(f_3-f_2)}},& f_3\geq f>f_2 \\[9pt]
|
||||
\frac{K(m)}{\pi\sqrt{(f_3-f)(f_2-f_1)}},& f_2>f\geq f_1\\[9pt]
|
||||
0 & \text{otherwise}
|
||||
\end{matrix} \right. \\
|
||||
\\
|
||||
m&=\left\{\begin{matrix}
|
||||
\frac{(f_2-f_1)(f_3-f)}{(f_3-f_2)(f-f_1)},& f_3\geq f>f_2 \\[6pt]
|
||||
\frac{(f-f_1)(f_3-f_2)}{(f_3-f)(f_2-f_1)},& f_2>f\geq f_1\\[6pt]
|
||||
\end{matrix} \right. \\
|
||||
\\
|
||||
K(m)&=\int_0^{\pi/2}\frac{\mathrm d\varphi}{\sqrt{1-m^2\sin^2{\varphi}}},
|
||||
|
||||
|
||||
:math:`K(m)` is the complete elliptic integral of the first kind.
|
||||
|
||||
|
||||
|
||||
Functions
|
||||
^^^^^^^^^^^^
|
||||
The ``libLineProfile`` library currently contains the following functions:
|
||||
|
||||
|
||||
|
||||
|
||||
.. index:: LineGauss
|
||||
|
||||
**Gaussian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile LineGauss 1 2
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. center of the line :math:`f_0`
|
||||
#. FWHM of the line :math:`\sigma`
|
||||
|
||||
| The height of the peak is 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)=e^{-\frac{4\ln 2 (f-f_0)^2}{ \sigma^2}}
|
||||
|
||||
|
||||
.. index:: LineLorentzian
|
||||
|
||||
**Lorentzian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile LineLorentzian 1 2
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. center of the line :math:`f_0`
|
||||
#. FWHM of the line :math:`w`
|
||||
|
||||
| The height of the peak is 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= \frac{w^2}{4(f-f_0)^2+w^2}
|
||||
|
||||
|
||||
.. index:: LineLaplace
|
||||
|
||||
**Laplacian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile LineLaplace 1 2
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. center of the line :math:`f_0`
|
||||
#. FWHM of the line :math:`w`
|
||||
|
||||
| The height of the peak is 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)=e^{-2\ln 2 \left|\frac{f-f_0}{w}\right|}
|
||||
|
||||
|
||||
|
||||
.. index:: LineSkewLorentzian
|
||||
|
||||
**Skewed Lorentzian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile LineSkewLorentzian 1 2 3
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. center of the line :math:`f_0`
|
||||
#. width of the line :math:`w`
|
||||
#. skewness parameter :math:`a`
|
||||
|
||||
| The height of the peak is 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= \frac{w w_a}{4(f-f_0)^2+w_a^2}, \quad w_a=\frac{2w}{1+e^{a(f-f_0)}}
|
||||
|
||||
|
||||
|
||||
.. index:: LineSkewLorentzian2
|
||||
|
||||
**Skewed Lorentzian 2**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile LineSkewLorentzian2 1 2 3
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. center of the line :math:`f_0`
|
||||
#. width left of the center :math:`w_1`
|
||||
#. width right of the center :math:`w_2`
|
||||
|
||||
| The height of the peak is 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= \left\{\begin{matrix}\frac{{w_1}^2}{4{(f-f_0)}^2+{w_1}^2},&f\leq f_0\\[9pt] \frac{{w_2}^2}{4{(f-f_0)}^2+{w_2}^2},&f>f_0\end{matrix}\right.
|
||||
|
||||
|
||||
|
||||
.. index:: PowderLineAxialLor
|
||||
|
||||
|
||||
**Powder average of an axially symmetric interaction convoluted with a Lorentzian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile PowderLineAxialLor 1 2 3
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. frequency for the field oriented paralell to the symmetry axis :math:`f_\parallel`
|
||||
#. frequency for the field oriented perpendicular to the symmetry axis :math:`f_\parallel`
|
||||
#. FWHM of the Lorentzian :math:`w`
|
||||
|
||||
| The height of the peak is :math:`\sim`\ 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= I_{\mathrm ax}(f)\circledast\left( \frac{w^2}{4f^2+w^2} \right)
|
||||
|
||||
with :math:`I_{\mathrm ax}(f)` defined :ref:`above <Iax>`.
|
||||
|
||||
|
||||
|
||||
.. index:: PowderLineAxialGss
|
||||
|
||||
|
||||
**Powder average of an axially symmetric interaction convoluted with a Gaussian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile PowderLineAxialGss 1 2 3
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. frequency for the field oriented paralell to the symmetry axis :math:`f_\parallel`
|
||||
#. frequency for the field oriented perpendicular to the symmetry axis :math:`f_\parallel`
|
||||
#. FWHM of the Gaussian :math:`\sigma`
|
||||
|
||||
| The height of the peak is :math:`\sim`\ 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= I_{\mathrm ax}(f)\circledast\left( e^{-\frac{4\ln 2 (f-f_0)^2}{ \sigma^2}} \right)
|
||||
|
||||
with :math:`I_{\mathrm ax}(f)` defined :ref:`above <Iax>`.
|
||||
|
||||
|
||||
|
||||
.. index:: PowderLineAsymLor
|
||||
|
||||
|
||||
**Powder average of an anisotropic interaction convoluted with a Lorentzian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile PowderLineAsymLor 1 2 3 4
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. :math:`f_1`
|
||||
#. :math:`f_1`
|
||||
#. :math:`f_3` frequencies along the principal axes
|
||||
#. FWHM of the Lorentzian :math:`w`
|
||||
|
||||
| The height of the peak is :math:`\sim`\ 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= I(f)\circledast\left( \frac{w^2}{4f^2+w^2} \right)
|
||||
|
||||
with :math:`I(f)` defined :ref:`above <Ianiso>`. Note that :math:`f_1<f_2<f_3` is not required by the code.
|
||||
|
||||
|
||||
|
||||
.. index:: PowderLineAsymGss
|
||||
|
||||
|
||||
**Powder average of an anisotropic interaction convoluted with a Gaussian**
|
||||
|
||||
::
|
||||
|
||||
userFcn libLineProfile PowderLineAsymGss 1 2 3 4
|
||||
|
||||
The parameters are:
|
||||
|
||||
#. :math:`f_1`
|
||||
#. :math:`f_1`
|
||||
#. :math:`f_3` frequencies along the principal axes
|
||||
#. FWHM of the Gaussian :math:`\sigma`
|
||||
|
||||
| The height of the peak is :math:`\sim`\ 1.
|
||||
| The functional form is given by
|
||||
|
||||
.. math::
|
||||
A(f)= I(f)\circledast\left( e^{-\frac{4\ln 2 (f-f_0)^2}{ \sigma^2}} \right)
|
||||
|
||||
with :math:`I(f)` defined :ref:`above <Ianiso>`. Note that :math:`f_1<f_2<f_3` is not required by the code.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 673 B |
@ -520,14 +520,15 @@ dl.citation > dd:after {
|
||||
}
|
||||
|
||||
dl.field-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
display: grid;
|
||||
grid-template-columns: fit-content(30%) auto;
|
||||
}
|
||||
|
||||
dl.field-list > dt {
|
||||
flex-basis: 20%;
|
||||
font-weight: bold;
|
||||
word-break: break-word;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
dl.field-list > dt:after {
|
||||
@ -535,8 +536,8 @@ dl.field-list > dt:after {
|
||||
}
|
||||
|
||||
dl.field-list > dd {
|
||||
flex-basis: 70%;
|
||||
padding-left: 1em;
|
||||
padding-left: 0.5em;
|
||||
margin-top: 0em;
|
||||
margin-left: 0em;
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.4 KiB |
@ -1,6 +1,6 @@
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||
VERSION: '1.5.2',
|
||||
VERSION: '1.6.0',
|
||||
LANGUAGE: 'None',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
|
Before Width: | Height: | Size: 368 B |
Before Width: | Height: | Size: 363 B |
10598
doc/html/_static/jquery-3.4.1.js
vendored
Normal file
6
doc/html/_static/jquery.js
vendored
Before Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 363 B |
@ -1,808 +0,0 @@
|
||||
/*
|
||||
* websupport.js
|
||||
* ~~~~~~~~~~~~~
|
||||
*
|
||||
* sphinx.websupport utilties for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
$.fn.autogrow = function() {
|
||||
return this.each(function() {
|
||||
var textarea = this;
|
||||
|
||||
$.fn.autogrow.resize(textarea);
|
||||
|
||||
$(textarea)
|
||||
.focus(function() {
|
||||
textarea.interval = setInterval(function() {
|
||||
$.fn.autogrow.resize(textarea);
|
||||
}, 500);
|
||||
})
|
||||
.blur(function() {
|
||||
clearInterval(textarea.interval);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.autogrow.resize = function(textarea) {
|
||||
var lineHeight = parseInt($(textarea).css('line-height'), 10);
|
||||
var lines = textarea.value.split('\n');
|
||||
var columns = textarea.cols;
|
||||
var lineCount = 0;
|
||||
$.each(lines, function() {
|
||||
lineCount += Math.ceil(this.length / columns) || 1;
|
||||
});
|
||||
var height = lineHeight * (lineCount + 1);
|
||||
$(textarea).css('height', height);
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
(function($) {
|
||||
var comp, by;
|
||||
|
||||
function init() {
|
||||
initEvents();
|
||||
initComparator();
|
||||
}
|
||||
|
||||
function initEvents() {
|
||||
$('a.comment-close').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
hide($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.vote').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
handleVote($(this));
|
||||
});
|
||||
$('a.reply').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
openReply($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.close-reply').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
closeReply($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.sort-option').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
handleReSort($(this));
|
||||
});
|
||||
$('a.show-proposal').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
showProposal($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.hide-proposal').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
hideProposal($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.show-propose-change').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
showProposeChange($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.hide-propose-change').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
hideProposeChange($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.accept-comment').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
acceptComment($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.delete-comment').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
deleteComment($(this).attr('id').substring(2));
|
||||
});
|
||||
$('a.comment-markup').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
toggleCommentMarkupBox($(this).attr('id').substring(2));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Set comp, which is a comparator function used for sorting and
|
||||
* inserting comments into the list.
|
||||
*/
|
||||
function setComparator() {
|
||||
// If the first three letters are "asc", sort in ascending order
|
||||
// and remove the prefix.
|
||||
if (by.substring(0,3) == 'asc') {
|
||||
var i = by.substring(3);
|
||||
comp = function(a, b) { return a[i] - b[i]; };
|
||||
} else {
|
||||
// Otherwise sort in descending order.
|
||||
comp = function(a, b) { return b[by] - a[by]; };
|
||||
}
|
||||
|
||||
// Reset link styles and format the selected sort option.
|
||||
$('a.sel').attr('href', '#').removeClass('sel');
|
||||
$('a.by' + by).removeAttr('href').addClass('sel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a comp function. If the user has preferences stored in
|
||||
* the sortBy cookie, use those, otherwise use the default.
|
||||
*/
|
||||
function initComparator() {
|
||||
by = 'rating'; // Default to sort by rating.
|
||||
// If the sortBy cookie is set, use that instead.
|
||||
if (document.cookie.length > 0) {
|
||||
var start = document.cookie.indexOf('sortBy=');
|
||||
if (start != -1) {
|
||||
start = start + 7;
|
||||
var end = document.cookie.indexOf(";", start);
|
||||
if (end == -1) {
|
||||
end = document.cookie.length;
|
||||
by = unescape(document.cookie.substring(start, end));
|
||||
}
|
||||
}
|
||||
}
|
||||
setComparator();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a comment div.
|
||||
*/
|
||||
function show(id) {
|
||||
$('#ao' + id).hide();
|
||||
$('#ah' + id).show();
|
||||
var context = $.extend({id: id}, opts);
|
||||
var popup = $(renderTemplate(popupTemplate, context)).hide();
|
||||
popup.find('textarea[name="proposal"]').hide();
|
||||
popup.find('a.by' + by).addClass('sel');
|
||||
var form = popup.find('#cf' + id);
|
||||
form.submit(function(event) {
|
||||
event.preventDefault();
|
||||
addComment(form);
|
||||
});
|
||||
$('#s' + id).after(popup);
|
||||
popup.slideDown('fast', function() {
|
||||
getComments(id);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide a comment div.
|
||||
*/
|
||||
function hide(id) {
|
||||
$('#ah' + id).hide();
|
||||
$('#ao' + id).show();
|
||||
var div = $('#sc' + id);
|
||||
div.slideUp('fast', function() {
|
||||
div.remove();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform an ajax request to get comments for a node
|
||||
* and insert the comments into the comments tree.
|
||||
*/
|
||||
function getComments(id) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: opts.getCommentsURL,
|
||||
data: {node: id},
|
||||
success: function(data, textStatus, request) {
|
||||
var ul = $('#cl' + id);
|
||||
var speed = 100;
|
||||
$('#cf' + id)
|
||||
.find('textarea[name="proposal"]')
|
||||
.data('source', data.source);
|
||||
|
||||
if (data.comments.length === 0) {
|
||||
ul.html('<li>No comments yet.</li>');
|
||||
ul.data('empty', true);
|
||||
} else {
|
||||
// If there are comments, sort them and put them in the list.
|
||||
var comments = sortComments(data.comments);
|
||||
speed = data.comments.length * 100;
|
||||
appendComments(comments, ul);
|
||||
ul.data('empty', false);
|
||||
}
|
||||
$('#cn' + id).slideUp(speed + 200);
|
||||
ul.slideDown(speed);
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem retrieving the comments.');
|
||||
},
|
||||
dataType: 'json'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a comment via ajax and insert the comment into the comment tree.
|
||||
*/
|
||||
function addComment(form) {
|
||||
var node_id = form.find('input[name="node"]').val();
|
||||
var parent_id = form.find('input[name="parent"]').val();
|
||||
var text = form.find('textarea[name="comment"]').val();
|
||||
var proposal = form.find('textarea[name="proposal"]').val();
|
||||
|
||||
if (text == '') {
|
||||
showError('Please enter a comment.');
|
||||
return;
|
||||
}
|
||||
|
||||
// Disable the form that is being submitted.
|
||||
form.find('textarea,input').attr('disabled', 'disabled');
|
||||
|
||||
// Send the comment to the server.
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: opts.addCommentURL,
|
||||
dataType: 'json',
|
||||
data: {
|
||||
node: node_id,
|
||||
parent: parent_id,
|
||||
text: text,
|
||||
proposal: proposal
|
||||
},
|
||||
success: function(data, textStatus, error) {
|
||||
// Reset the form.
|
||||
if (node_id) {
|
||||
hideProposeChange(node_id);
|
||||
}
|
||||
form.find('textarea')
|
||||
.val('')
|
||||
.add(form.find('input'))
|
||||
.removeAttr('disabled');
|
||||
var ul = $('#cl' + (node_id || parent_id));
|
||||
if (ul.data('empty')) {
|
||||
$(ul).empty();
|
||||
ul.data('empty', false);
|
||||
}
|
||||
insertComment(data.comment);
|
||||
var ao = $('#ao' + node_id);
|
||||
ao.find('img').attr({'src': opts.commentBrightImage});
|
||||
if (node_id) {
|
||||
// if this was a "root" comment, remove the commenting box
|
||||
// (the user can get it back by reopening the comment popup)
|
||||
$('#ca' + node_id).slideUp();
|
||||
}
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
form.find('textarea,input').removeAttr('disabled');
|
||||
showError('Oops, there was a problem adding the comment.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively append comments to the main comment list and children
|
||||
* lists, creating the comment tree.
|
||||
*/
|
||||
function appendComments(comments, ul) {
|
||||
$.each(comments, function() {
|
||||
var div = createCommentDiv(this);
|
||||
ul.append($(document.createElement('li')).html(div));
|
||||
appendComments(this.children, div.find('ul.comment-children'));
|
||||
// To avoid stagnating data, don't store the comments children in data.
|
||||
this.children = null;
|
||||
div.data('comment', this);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* After adding a new comment, it must be inserted in the correct
|
||||
* location in the comment tree.
|
||||
*/
|
||||
function insertComment(comment) {
|
||||
var div = createCommentDiv(comment);
|
||||
|
||||
// To avoid stagnating data, don't store the comments children in data.
|
||||
comment.children = null;
|
||||
div.data('comment', comment);
|
||||
|
||||
var ul = $('#cl' + (comment.node || comment.parent));
|
||||
var siblings = getChildren(ul);
|
||||
|
||||
var li = $(document.createElement('li'));
|
||||
li.hide();
|
||||
|
||||
// Determine where in the parents children list to insert this comment.
|
||||
for(i=0; i < siblings.length; i++) {
|
||||
if (comp(comment, siblings[i]) <= 0) {
|
||||
$('#cd' + siblings[i].id)
|
||||
.parent()
|
||||
.before(li.html(div));
|
||||
li.slideDown('fast');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If we get here, this comment rates lower than all the others,
|
||||
// or it is the only comment in the list.
|
||||
ul.append(li.html(div));
|
||||
li.slideDown('fast');
|
||||
}
|
||||
|
||||
function acceptComment(id) {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: opts.acceptCommentURL,
|
||||
data: {id: id},
|
||||
success: function(data, textStatus, request) {
|
||||
$('#cm' + id).fadeOut('fast');
|
||||
$('#cd' + id).removeClass('moderate');
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem accepting the comment.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteComment(id) {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: opts.deleteCommentURL,
|
||||
data: {id: id},
|
||||
success: function(data, textStatus, request) {
|
||||
var div = $('#cd' + id);
|
||||
if (data == 'delete') {
|
||||
// Moderator mode: remove the comment and all children immediately
|
||||
div.slideUp('fast', function() {
|
||||
div.remove();
|
||||
});
|
||||
return;
|
||||
}
|
||||
// User mode: only mark the comment as deleted
|
||||
div
|
||||
.find('span.user-id:first')
|
||||
.text('[deleted]').end()
|
||||
.find('div.comment-text:first')
|
||||
.text('[deleted]').end()
|
||||
.find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
|
||||
', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
|
||||
.remove();
|
||||
var comment = div.data('comment');
|
||||
comment.username = '[deleted]';
|
||||
comment.text = '[deleted]';
|
||||
div.data('comment', comment);
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem deleting the comment.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showProposal(id) {
|
||||
$('#sp' + id).hide();
|
||||
$('#hp' + id).show();
|
||||
$('#pr' + id).slideDown('fast');
|
||||
}
|
||||
|
||||
function hideProposal(id) {
|
||||
$('#hp' + id).hide();
|
||||
$('#sp' + id).show();
|
||||
$('#pr' + id).slideUp('fast');
|
||||
}
|
||||
|
||||
function showProposeChange(id) {
|
||||
$('#pc' + id).hide();
|
||||
$('#hc' + id).show();
|
||||
var textarea = $('#pt' + id);
|
||||
textarea.val(textarea.data('source'));
|
||||
$.fn.autogrow.resize(textarea[0]);
|
||||
textarea.slideDown('fast');
|
||||
}
|
||||
|
||||
function hideProposeChange(id) {
|
||||
$('#hc' + id).hide();
|
||||
$('#pc' + id).show();
|
||||
var textarea = $('#pt' + id);
|
||||
textarea.val('').removeAttr('disabled');
|
||||
textarea.slideUp('fast');
|
||||
}
|
||||
|
||||
function toggleCommentMarkupBox(id) {
|
||||
$('#mb' + id).toggle();
|
||||
}
|
||||
|
||||
/** Handle when the user clicks on a sort by link. */
|
||||
function handleReSort(link) {
|
||||
var classes = link.attr('class').split(/\s+/);
|
||||
for (var i=0; i<classes.length; i++) {
|
||||
if (classes[i] != 'sort-option') {
|
||||
by = classes[i].substring(2);
|
||||
}
|
||||
}
|
||||
setComparator();
|
||||
// Save/update the sortBy cookie.
|
||||
var expiration = new Date();
|
||||
expiration.setDate(expiration.getDate() + 365);
|
||||
document.cookie= 'sortBy=' + escape(by) +
|
||||
';expires=' + expiration.toUTCString();
|
||||
$('ul.comment-ul').each(function(index, ul) {
|
||||
var comments = getChildren($(ul), true);
|
||||
comments = sortComments(comments);
|
||||
appendComments(comments, $(ul).empty());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to process a vote when a user clicks an arrow.
|
||||
*/
|
||||
function handleVote(link) {
|
||||
if (!opts.voting) {
|
||||
showError("You'll need to login to vote.");
|
||||
return;
|
||||
}
|
||||
|
||||
var id = link.attr('id');
|
||||
if (!id) {
|
||||
// Didn't click on one of the voting arrows.
|
||||
return;
|
||||
}
|
||||
// If it is an unvote, the new vote value is 0,
|
||||
// Otherwise it's 1 for an upvote, or -1 for a downvote.
|
||||
var value = 0;
|
||||
if (id.charAt(1) != 'u') {
|
||||
value = id.charAt(0) == 'u' ? 1 : -1;
|
||||
}
|
||||
// The data to be sent to the server.
|
||||
var d = {
|
||||
comment_id: id.substring(2),
|
||||
value: value
|
||||
};
|
||||
|
||||
// Swap the vote and unvote links.
|
||||
link.hide();
|
||||
$('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
|
||||
.show();
|
||||
|
||||
// The div the comment is displayed in.
|
||||
var div = $('div#cd' + d.comment_id);
|
||||
var data = div.data('comment');
|
||||
|
||||
// If this is not an unvote, and the other vote arrow has
|
||||
// already been pressed, unpress it.
|
||||
if ((d.value !== 0) && (data.vote === d.value * -1)) {
|
||||
$('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
|
||||
$('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
|
||||
}
|
||||
|
||||
// Update the comments rating in the local data.
|
||||
data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
|
||||
data.vote = d.value;
|
||||
div.data('comment', data);
|
||||
|
||||
// Change the rating text.
|
||||
div.find('.rating:first')
|
||||
.text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
|
||||
|
||||
// Send the vote information to the server.
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: opts.processVoteURL,
|
||||
data: d,
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem casting that vote.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a reply form used to reply to an existing comment.
|
||||
*/
|
||||
function openReply(id) {
|
||||
// Swap out the reply link for the hide link
|
||||
$('#rl' + id).hide();
|
||||
$('#cr' + id).show();
|
||||
|
||||
// Add the reply li to the children ul.
|
||||
var div = $(renderTemplate(replyTemplate, {id: id})).hide();
|
||||
$('#cl' + id)
|
||||
.prepend(div)
|
||||
// Setup the submit handler for the reply form.
|
||||
.find('#rf' + id)
|
||||
.submit(function(event) {
|
||||
event.preventDefault();
|
||||
addComment($('#rf' + id));
|
||||
closeReply(id);
|
||||
})
|
||||
.find('input[type=button]')
|
||||
.click(function() {
|
||||
closeReply(id);
|
||||
});
|
||||
div.slideDown('fast', function() {
|
||||
$('#rf' + id).find('textarea').focus();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the reply form opened with openReply.
|
||||
*/
|
||||
function closeReply(id) {
|
||||
// Remove the reply div from the DOM.
|
||||
$('#rd' + id).slideUp('fast', function() {
|
||||
$(this).remove();
|
||||
});
|
||||
|
||||
// Swap out the hide link for the reply link
|
||||
$('#cr' + id).hide();
|
||||
$('#rl' + id).show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively sort a tree of comments using the comp comparator.
|
||||
*/
|
||||
function sortComments(comments) {
|
||||
comments.sort(comp);
|
||||
$.each(comments, function() {
|
||||
this.children = sortComments(this.children);
|
||||
});
|
||||
return comments;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the children comments from a ul. If recursive is true,
|
||||
* recursively include childrens' children.
|
||||
*/
|
||||
function getChildren(ul, recursive) {
|
||||
var children = [];
|
||||
ul.children().children("[id^='cd']")
|
||||
.each(function() {
|
||||
var comment = $(this).data('comment');
|
||||
if (recursive)
|
||||
comment.children = getChildren($(this).find('#cl' + comment.id), true);
|
||||
children.push(comment);
|
||||
});
|
||||
return children;
|
||||
}
|
||||
|
||||
/** Create a div to display a comment in. */
|
||||
function createCommentDiv(comment) {
|
||||
if (!comment.displayed && !opts.moderator) {
|
||||
return $('<div class="moderate">Thank you! Your comment will show up '
|
||||
+ 'once it is has been approved by a moderator.</div>');
|
||||
}
|
||||
// Prettify the comment rating.
|
||||
comment.pretty_rating = comment.rating + ' point' +
|
||||
(comment.rating == 1 ? '' : 's');
|
||||
// Make a class (for displaying not yet moderated comments differently)
|
||||
comment.css_class = comment.displayed ? '' : ' moderate';
|
||||
// Create a div for this comment.
|
||||
var context = $.extend({}, opts, comment);
|
||||
var div = $(renderTemplate(commentTemplate, context));
|
||||
|
||||
// If the user has voted on this comment, highlight the correct arrow.
|
||||
if (comment.vote) {
|
||||
var direction = (comment.vote == 1) ? 'u' : 'd';
|
||||
div.find('#' + direction + 'v' + comment.id).hide();
|
||||
div.find('#' + direction + 'u' + comment.id).show();
|
||||
}
|
||||
|
||||
if (opts.moderator || comment.text != '[deleted]') {
|
||||
div.find('a.reply').show();
|
||||
if (comment.proposal_diff)
|
||||
div.find('#sp' + comment.id).show();
|
||||
if (opts.moderator && !comment.displayed)
|
||||
div.find('#cm' + comment.id).show();
|
||||
if (opts.moderator || (opts.username == comment.username))
|
||||
div.find('#dc' + comment.id).show();
|
||||
}
|
||||
return div;
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple template renderer. Placeholders such as <%id%> are replaced
|
||||
* by context['id'] with items being escaped. Placeholders such as <#id#>
|
||||
* are not escaped.
|
||||
*/
|
||||
function renderTemplate(template, context) {
|
||||
var esc = $(document.createElement('div'));
|
||||
|
||||
function handle(ph, escape) {
|
||||
var cur = context;
|
||||
$.each(ph.split('.'), function() {
|
||||
cur = cur[this];
|
||||
});
|
||||
return escape ? esc.text(cur || "").html() : cur;
|
||||
}
|
||||
|
||||
return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
|
||||
return handle(arguments[2], arguments[1] == '%' ? true : false);
|
||||
});
|
||||
}
|
||||
|
||||
/** Flash an error message briefly. */
|
||||
function showError(message) {
|
||||
$(document.createElement('div')).attr({'class': 'popup-error'})
|
||||
.append($(document.createElement('div'))
|
||||
.attr({'class': 'error-message'}).text(message))
|
||||
.appendTo('body')
|
||||
.fadeIn("slow")
|
||||
.delay(2000)
|
||||
.fadeOut("slow");
|
||||
}
|
||||
|
||||
/** Add a link the user uses to open the comments popup. */
|
||||
$.fn.comment = function() {
|
||||
return this.each(function() {
|
||||
var id = $(this).attr('id').substring(1);
|
||||
var count = COMMENT_METADATA[id];
|
||||
var title = count + ' comment' + (count == 1 ? '' : 's');
|
||||
var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
|
||||
var addcls = count == 0 ? ' nocomment' : '';
|
||||
$(this)
|
||||
.append(
|
||||
$(document.createElement('a')).attr({
|
||||
href: '#',
|
||||
'class': 'sphinx-comment-open' + addcls,
|
||||
id: 'ao' + id
|
||||
})
|
||||
.append($(document.createElement('img')).attr({
|
||||
src: image,
|
||||
alt: 'comment',
|
||||
title: title
|
||||
}))
|
||||
.click(function(event) {
|
||||
event.preventDefault();
|
||||
show($(this).attr('id').substring(2));
|
||||
})
|
||||
)
|
||||
.append(
|
||||
$(document.createElement('a')).attr({
|
||||
href: '#',
|
||||
'class': 'sphinx-comment-close hidden',
|
||||
id: 'ah' + id
|
||||
})
|
||||
.append($(document.createElement('img')).attr({
|
||||
src: opts.closeCommentImage,
|
||||
alt: 'close',
|
||||
title: 'close'
|
||||
}))
|
||||
.click(function(event) {
|
||||
event.preventDefault();
|
||||
hide($(this).attr('id').substring(2));
|
||||
})
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
var opts = {
|
||||
processVoteURL: '/_process_vote',
|
||||
addCommentURL: '/_add_comment',
|
||||
getCommentsURL: '/_get_comments',
|
||||
acceptCommentURL: '/_accept_comment',
|
||||
deleteCommentURL: '/_delete_comment',
|
||||
commentImage: '/static/_static/comment.png',
|
||||
closeCommentImage: '/static/_static/comment-close.png',
|
||||
loadingImage: '/static/_static/ajax-loader.gif',
|
||||
commentBrightImage: '/static/_static/comment-bright.png',
|
||||
upArrow: '/static/_static/up.png',
|
||||
downArrow: '/static/_static/down.png',
|
||||
upArrowPressed: '/static/_static/up-pressed.png',
|
||||
downArrowPressed: '/static/_static/down-pressed.png',
|
||||
voting: false,
|
||||
moderator: false
|
||||
};
|
||||
|
||||
if (typeof COMMENT_OPTIONS != "undefined") {
|
||||
opts = jQuery.extend(opts, COMMENT_OPTIONS);
|
||||
}
|
||||
|
||||
var popupTemplate = '\
|
||||
<div class="sphinx-comments" id="sc<%id%>">\
|
||||
<p class="sort-options">\
|
||||
Sort by:\
|
||||
<a href="#" class="sort-option byrating">best rated</a>\
|
||||
<a href="#" class="sort-option byascage">newest</a>\
|
||||
<a href="#" class="sort-option byage">oldest</a>\
|
||||
</p>\
|
||||
<div class="comment-header">Comments</div>\
|
||||
<div class="comment-loading" id="cn<%id%>">\
|
||||
loading comments... <img src="<%loadingImage%>" alt="" /></div>\
|
||||
<ul id="cl<%id%>" class="comment-ul"></ul>\
|
||||
<div id="ca<%id%>">\
|
||||
<p class="add-a-comment">Add a comment\
|
||||
(<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
|
||||
<div class="comment-markup-box" id="mb<%id%>">\
|
||||
reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
|
||||
<tt>``code``</tt>, \
|
||||
code blocks: <tt>::</tt> and an indented block after blank line</div>\
|
||||
<form method="post" id="cf<%id%>" class="comment-form" action="">\
|
||||
<textarea name="comment" cols="80"></textarea>\
|
||||
<p class="propose-button">\
|
||||
<a href="#" id="pc<%id%>" class="show-propose-change">\
|
||||
Propose a change ▹\
|
||||
</a>\
|
||||
<a href="#" id="hc<%id%>" class="hide-propose-change">\
|
||||
Propose a change ▿\
|
||||
</a>\
|
||||
</p>\
|
||||
<textarea name="proposal" id="pt<%id%>" cols="80"\
|
||||
spellcheck="false"></textarea>\
|
||||
<input type="submit" value="Add comment" />\
|
||||
<input type="hidden" name="node" value="<%id%>" />\
|
||||
<input type="hidden" name="parent" value="" />\
|
||||
</form>\
|
||||
</div>\
|
||||
</div>';
|
||||
|
||||
var commentTemplate = '\
|
||||
<div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
|
||||
<div class="vote">\
|
||||
<div class="arrow">\
|
||||
<a href="#" id="uv<%id%>" class="vote" title="vote up">\
|
||||
<img src="<%upArrow%>" />\
|
||||
</a>\
|
||||
<a href="#" id="uu<%id%>" class="un vote" title="vote up">\
|
||||
<img src="<%upArrowPressed%>" />\
|
||||
</a>\
|
||||
</div>\
|
||||
<div class="arrow">\
|
||||
<a href="#" id="dv<%id%>" class="vote" title="vote down">\
|
||||
<img src="<%downArrow%>" id="da<%id%>" />\
|
||||
</a>\
|
||||
<a href="#" id="du<%id%>" class="un vote" title="vote down">\
|
||||
<img src="<%downArrowPressed%>" />\
|
||||
</a>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="comment-content">\
|
||||
<p class="tagline comment">\
|
||||
<span class="user-id"><%username%></span>\
|
||||
<span class="rating"><%pretty_rating%></span>\
|
||||
<span class="delta"><%time.delta%></span>\
|
||||
</p>\
|
||||
<div class="comment-text comment"><#text#></div>\
|
||||
<p class="comment-opts comment">\
|
||||
<a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\
|
||||
<a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\
|
||||
<a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\
|
||||
<a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\
|
||||
<a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
|
||||
<span id="cm<%id%>" class="moderation hidden">\
|
||||
<a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
|
||||
</span>\
|
||||
</p>\
|
||||
<pre class="proposal" id="pr<%id%>">\
|
||||
<#proposal_diff#>\
|
||||
</pre>\
|
||||
<ul class="comment-children" id="cl<%id%>"></ul>\
|
||||
</div>\
|
||||
<div class="clearleft"></div>\
|
||||
</div>\
|
||||
</div>';
|
||||
|
||||
var replyTemplate = '\
|
||||
<li>\
|
||||
<div class="reply-div" id="rd<%id%>">\
|
||||
<form id="rf<%id%>">\
|
||||
<textarea name="comment" cols="80"></textarea>\
|
||||
<input type="submit" value="Add reply" />\
|
||||
<input type="button" value="Cancel" />\
|
||||
<input type="hidden" name="parent" value="<%id%>" />\
|
||||
<input type="hidden" name="node" value="" />\
|
||||
</form>\
|
||||
</div>\
|
||||
</li>';
|
||||
|
||||
$(document).ready(function() {
|
||||
init();
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function() {
|
||||
// add comment anchors for all paragraphs that are commentable
|
||||
$('.sphinx-has-comment').comment();
|
||||
|
||||
// highlight search words in search results
|
||||
$("div.context").each(function() {
|
||||
var params = $.getQueryParameters();
|
||||
var terms = (params.q) ? params.q[0].split(/\s+/) : [];
|
||||
var result = $(this);
|
||||
$.each(terms, function() {
|
||||
result.highlightText(this.toLowerCase(), 'highlighted');
|
||||
});
|
||||
});
|
||||
|
||||
// directly open comment window if requested
|
||||
var anchor = document.location.hash;
|
||||
if (anchor.substring(0, 9) == '#comment-') {
|
||||
$('#ao' + anchor.substring(9)).click();
|
||||
document.location.hash = '#s' + anchor.substring(9);
|
||||
}
|
||||
});
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Acknowledgements — musrfit 1.5.2 documentation</title>
|
||||
<title>Acknowledgements — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="musr-root.html" title="MusrRoot - an Extensible Open File Format for μSR"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -100,13 +100,13 @@ extremely competent way to deal with his projects as well as to deal with the ch
|
||||
<li class="right" >
|
||||
<a href="musr-root.html" title="MusrRoot - an Extensible Open File Format for μSR"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>any2many - a Universal μSR-file-format converter — musrfit 1.5.2 documentation</title>
|
||||
<title>any2many - a Universal μSR-file-format converter — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="msr2data.html" title="msr2data - A Program for Automatically Processing Multiple musrfit msr Files"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -90,13 +90,13 @@ For a detailed description see <a class="reference internal" href="user-manual.h
|
||||
<li class="right" >
|
||||
<a href="msr2data.html" title="msr2data - A Program for Automatically Processing Multiple musrfit msr Files"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Bugtracking — musrfit 1.5.2 documentation</title>
|
||||
<title>Bugtracking — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -26,7 +26,7 @@
|
||||
<li class="right" >
|
||||
<a href="acknowledgement.html" title="Acknowledgements"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -81,13 +81,13 @@ or send an e-mail to A. Suter at PSI.</p>
|
||||
<li class="right" >
|
||||
<a href="acknowledgement.html" title="Acknowledgements"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>How to Cite musrfit? — musrfit 1.5.2 documentation</title>
|
||||
<title>How to Cite musrfit? — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="index.html" title="Welcome to the musrfit documentation!"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -102,13 +102,13 @@
|
||||
<li class="right" >
|
||||
<a href="index.html" title="Welcome to the musrfit documentation!"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -5,7 +5,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Index — musrfit 1.5.2 documentation</title>
|
||||
<title>Index — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -23,7 +23,7 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="#" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -611,13 +611,13 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="#" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 15, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Welcome to the musrfit documentation! — musrfit 1.5.2 documentation</title>
|
||||
<title>Welcome to the musrfit documentation! — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -26,7 +26,7 @@
|
||||
<li class="right" >
|
||||
<a href="cite.html" title="How to Cite musrfit?"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="#">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="#">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -168,13 +168,13 @@
|
||||
<li class="right" >
|
||||
<a href="cite.html" title="How to Cite musrfit?"
|
||||
>next</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="#">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="#">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 15, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>msr2data - A Program for Automatically Processing Multiple musrfit msr Files — musrfit 1.5.2 documentation</title>
|
||||
<title>msr2data - A Program for Automatically Processing Multiple musrfit msr Files — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="mupp.html" title="mupp - μSR Parameter Plotter"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -418,13 +418,13 @@ fit serves as template for the second and so on. The template field stays empty
|
||||
<li class="right" >
|
||||
<a href="mupp.html" title="mupp - μSR Parameter Plotter"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>mupp - μSR Parameter Plotter — musrfit 1.5.2 documentation</title>
|
||||
<title>mupp - μSR Parameter Plotter — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="musredit.html" title="musredit: the GUI Based Interface to musrfit"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -47,6 +47,10 @@ Also a collection of <code class="docutils literal notranslate"><span class="pre
|
||||
<a class="reference external" href="http://musr.org/muview/">here</a>).</p>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">mupp</span></code> can be operated from within as graphical user interface or via a command line scripting interface.
|
||||
The <code class="docutils literal notranslate"><span class="pre">mupp</span></code> GUI can be invoked either directly from the command line or from within <a class="reference internal" href="musredit.html#musredit-sec"><span class="std std-ref">musredit</span></a>.</p>
|
||||
<p>Each collection bundles a number of runs, where a run is a single μSR measurement.
|
||||
A run is analyzed by a number of parameters (defined in the msr-files), and complemented by
|
||||
additional physical parameters as the temperature, magnetic field, implantation energy, etc.
|
||||
Hence parameters can be seen as vectors and can be plot against each other.</p>
|
||||
<div class="section" id="the-graphical-user-interface">
|
||||
<span id="index-1"></span><h2>The Graphical User Interface<a class="headerlink" href="#the-graphical-user-interface" title="Permalink to this headline">¶</a></h2>
|
||||
<p>A typical setting could look like this</p>
|
||||
@ -79,17 +83,34 @@ present the data, as shown here</p>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">Remove</span> <span class="pre">Collection</span></code>: will remove the selected collection</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">Refresh</span> <span class="pre">Collection</span></code>: will reload the collection (<code class="docutils literal notranslate"><span class="pre">db</span></code>- or <code class="docutils literal notranslate"><span class="pre">dat</span></code>-file). This is often useful
|
||||
during beamtime where the collection is growing run-by-run.</p></li>
|
||||
<li><p>Command history window.</p></li>
|
||||
<li><p>This is the script command line. Currently it allows to perform the tasks without mouse gambling.
|
||||
In the future much more commands are planed. See the <code class="docutils literal notranslate"><span class="pre">Help</span> <span class="pre">/</span> <span class="pre">Cmd's</span></code> for the currently available
|
||||
commands.</p></li>
|
||||
</ol>
|
||||
<div class="section" id="define-variable-dialog">
|
||||
<h3>Define Variable Dialog<a class="headerlink" href="#define-variable-dialog" title="Permalink to this headline">¶</a></h3>
|
||||
<img alt="_images/mupp-add-var.svg" src="_images/mupp-add-var.svg" /><ol class="arabic simple">
|
||||
<li><p>Variable text edit window.</p></li>
|
||||
<li><p>Collection link window.</p></li>
|
||||
<li><p>Shows the parameters of the selected collection.</p></li>
|
||||
<li><p>Check if the variable/error variable from the edit window is valid.</p></li>
|
||||
<li><p>Add the variable to the selected collection(s) if the parsing is successful.</p></li>
|
||||
</ol>
|
||||
<p>A variable defined here is a mathematical expression defined by parameters of loaded collections.
|
||||
Since a parameter also has an associated error, also newly defined variables <strong>always</strong> need
|
||||
to be defined together with a corresponding error variable. If the name of a variable is defined
|
||||
as <code class="docutils literal notranslate"><span class="pre">SigmaSC_10</span></code> (see the above snapshot), the error variable need to be named as <code class="docutils literal notranslate"><span class="pre">SigmaSC_10Err</span></code>.</p>
|
||||
<p>Currently the following mathematical functions are defined: <code class="docutils literal notranslate"><span class="pre">max</span></code>, <code class="docutils literal notranslate"><span class="pre">min</span></code>, <code class="docutils literal notranslate"><span class="pre">abs</span></code>, <code class="docutils literal notranslate"><span class="pre">sin</span></code>, <code class="docutils literal notranslate"><span class="pre">cos</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">tan</span></code>, <code class="docutils literal notranslate"><span class="pre">exp</span></code>, <code class="docutils literal notranslate"><span class="pre">log</span></code>, <code class="docutils literal notranslate"><span class="pre">ln</span></code>, <code class="docutils literal notranslate"><span class="pre">pow</span></code>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-scripting-interface">
|
||||
<span id="index-2"></span><h2>The Scripting Interface<a class="headerlink" href="#the-scripting-interface" title="Permalink to this headline">¶</a></h2>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">mupp</span></code> can also be operated in a scripting like manner. The use cases are plot updates during run time,
|
||||
or web-based interaction which requests figures. A script is invoked by the command line option <code class="docutils literal notranslate"><span class="pre">-s</span></code> (see
|
||||
<a class="reference internal" href="#mupp-usage"><span class="std std-ref">mupp command line summary</span></a>. Currently the following scripting commands are available:</p>
|
||||
<dl class="simple">
|
||||
<dl>
|
||||
<dt><strong>loadPath <dir></strong></dt><dd><p>set the load path to <code class="docutils literal notranslate"><span class="pre"><dir></span></code>. Bash variables like $HOME are accepted. This is the path where to look for collection files (<code class="docutils literal notranslate"><span class="pre">db</span></code>- and <code class="docutils literal notranslate"><span class="pre">dat</span></code>-files).</p>
|
||||
</dd>
|
||||
<dt><strong>load <coll></strong></dt><dd><p>will load the collection <code class="docutils literal notranslate"><span class="pre"><coll></span></code>.</p>
|
||||
@ -99,9 +120,11 @@ or web-based interaction which requests figures. A script is invoked by the comm
|
||||
<dt><strong>select <nn></strong></dt><dd><p>selects collection <code class="docutils literal notranslate"><span class="pre"><nn></span></code>, where <code class="docutils literal notranslate"><span class="pre"><nn></span></code> is either the <em>number</em> of the collections, or its <em>name</em>, <em>e.g.</em>
|
||||
select YBCO-40nm-T5K-FC150mT-Escan.db.</p>
|
||||
</dd>
|
||||
<dt><strong>addX <label></strong></dt><dd><p>add <code class="docutils literal notranslate"><span class="pre"><label></span></code> as a <em>x</em>-variable. Only <em>one</em> is allowed.</p>
|
||||
<dt><strong>x <label></strong></dt><dd><p>add <code class="docutils literal notranslate"><span class="pre"><label></span></code> as a <em>x</em>-variable. Only <em>one</em> is allowed.</p>
|
||||
</dd>
|
||||
<dt><strong>addY <label(s)></strong></dt><dd><p>add <code class="docutils literal notranslate"><span class="pre"><label(s)></span></code> as <em>y</em>-variable. <em>Multiple</em> labels are possible.</p>
|
||||
<dt><strong>y <label(s)></strong></dt><dd><p>add <code class="docutils literal notranslate"><span class="pre"><label(s)></span></code> as <em>y</em>-variable. <em>Multiple</em> labels are possible.</p>
|
||||
</dd>
|
||||
<dt><strong>norm</strong></dt><dd><p>this will normalize all the <em>y</em>-variables by their maximum.</p>
|
||||
</dd>
|
||||
<dt><strong>savePath <dir></strong></dt><dd><p>set the save path to <code class="docutils literal notranslate"><span class="pre"><dir></span></code>. The place where the macros, and/or the plot output will be saved.</p>
|
||||
</dd>
|
||||
@ -109,28 +132,63 @@ select YBCO-40nm-T5K-FC150mT-Escan.db.</p>
|
||||
</dd>
|
||||
<dt><strong>macro <fln></strong></dt><dd><p>where <code class="docutils literal notranslate"><span class="pre"><fln></span></code> is the file name under which the root macro should be saved.</p>
|
||||
</dd>
|
||||
<dt><strong>var <var_name> = <expr></strong></dt><dd><p>defines a variable.
|
||||
<expr> is a mathematical expression where collection variables are addressed
|
||||
via the ‘$’, e.g. <code class="docutils literal notranslate"><span class="pre">dataT</span></code> is addressed by <code class="docutils literal notranslate"><span class="pre">$dataT</span></code>, etc. An example:</p>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">var</span> <span class="pre">invT</span> <span class="pre">=</span> <span class="pre">1000.0</span> <span class="pre">/</span> <span class="pre">$dataT</span></code></p>
|
||||
<p>Each variable has to be accompanied by its error variable. An error variable
|
||||
is defined by the <code class="docutils literal notranslate"><span class="pre"><var_name></span></code> followed by <code class="docutils literal notranslate"><span class="pre">Err</span></code>
|
||||
For the above example the error variable is</p>
|
||||
<p><code class="docutils literal notranslate"><span class="pre">var</span> <span class="pre">invTErr</span> <span class="pre">=</span> <span class="pre">$invT</span> <span class="pre">*</span> <span class="pre">$dataTErr</span> <span class="pre">/</span> <span class="pre">$dataT</span></code></p>
|
||||
</dd>
|
||||
<dt><strong>col <nn> : <var_name></strong></dt><dd><p>links <var_name> to the collection <nn>, where <nn> is the number of the
|
||||
collection as defined by the order of load, starting with 0.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>An example script file <code class="docutils literal notranslate"><span class="pre">field-vs-energy.txt</span></code> might look like this:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This is a comment</span>
|
||||
<p>An example script file <code class="docutils literal notranslate"><span class="pre">sigmaSC-vs-temp.txt</span></code> might look like this:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span># This is a comment
|
||||
# Script: sigmaSC-vs-temp.txt
|
||||
|
||||
<span class="n">loadPath</span> <span class="o">./</span>
|
||||
loadPath ./
|
||||
|
||||
<span class="n">load</span> <span class="n">YBCO</span><span class="o">-</span><span class="mi">40</span><span class="n">nm</span><span class="o">-</span><span class="n">T5K</span><span class="o">-</span><span class="n">FC150mT</span><span class="o">-</span><span class="n">Escan</span><span class="o">.</span><span class="n">db</span>
|
||||
<span class="n">load</span> <span class="n">YBCO</span><span class="o">-</span><span class="mi">40</span><span class="n">nm</span><span class="o">-</span><span class="n">T30K</span><span class="o">-</span><span class="n">FC150mT</span><span class="o">-</span><span class="n">Escan</span><span class="o">.</span><span class="n">db</span>
|
||||
<span class="n">load</span> <span class="n">YBCO</span><span class="o">-</span><span class="mi">40</span><span class="n">nm</span><span class="o">-</span><span class="n">T60K</span><span class="o">-</span><span class="n">FC150mT</span><span class="o">-</span><span class="n">Escan</span><span class="o">.</span><span class="n">db</span>
|
||||
<span class="n">load</span> <span class="n">YBCO</span><span class="o">-</span><span class="mi">40</span><span class="n">nm</span><span class="o">-</span><span class="n">T120K</span><span class="o">-</span><span class="n">FC150mT</span><span class="o">-</span><span class="n">Escan</span><span class="o">.</span><span class="n">db</span>
|
||||
load YBCO-40nm-FC-E3p8keV-B10mT-Tscan.db # collection 0
|
||||
load YBCO-40nm-FC-E3p8keV-B150mT-Tscan.db # collection 1
|
||||
|
||||
<span class="n">selectAll</span>
|
||||
# define variables: for each variable an associated error variable is needed.
|
||||
# B=10mT
|
||||
var SigmaSC_10 = pow(abs(pow($Sigma,2.0)-pow(0.11,2.0)), 0.5) # 0.11 (1/us) is the nuclear contribution (T>Tc)
|
||||
var SigmaSC_10Err = pow(pow($Sigma*$SigmaErr,2.0)+pow(0.11*0.0025,2.0), 0.5)/$SigmaSC_10
|
||||
# B=150mT
|
||||
var SigmaSC_150 = pow(abs(pow($Sigma,2.0)-pow(0.075,2.0)), 0.5) # 0.075 (1/us) is the nuclear contribution (T>Tc)
|
||||
var SigmaSC_150Err = pow(pow($Sigma*$SigmaErr,2.0)+pow(0.075*0.0025,2.0), 0.5)/$SigmaSC_150
|
||||
|
||||
<span class="n">addX</span> <span class="n">dataE</span>
|
||||
<span class="n">addY</span> <span class="n">Field</span>
|
||||
# link variables to collections
|
||||
col 0 : SigmaSC_10 # error variable SigmaSC_10Err doesn't need to be given, it is automatically linked to SigmaSC_10
|
||||
col 1 : SigmaSC_150
|
||||
|
||||
<span class="n">savePath</span> <span class="o">./</span>
|
||||
<span class="n">plot</span> <span class="n">FieldVsEnergy</span><span class="o">.</span><span class="n">pdf</span>
|
||||
norm # normalize the plot to the maximum of each y-data-set
|
||||
|
||||
<span class="n">macro</span> <span class="n">FieldVsEnergy</span><span class="o">.</span><span class="n">C</span>
|
||||
# the next 3 cmds means the following: use collection 0, add dataT to the x-axis,
|
||||
# and SigmaSC_10 to the y-axis
|
||||
select 0
|
||||
x dataT
|
||||
y SigmaSC_10
|
||||
|
||||
<span class="c1"># end</span>
|
||||
select 1
|
||||
x dataT
|
||||
y SigmaSC_150
|
||||
|
||||
# where to save the output
|
||||
savePath ./
|
||||
|
||||
# create a pdf output file of the above defined xy-data sets. Currently also
|
||||
# other file formats are supported, like png, jpg, etc.
|
||||
plot SigmaSCVsTemp.pdf
|
||||
|
||||
# creates a ROOT macro which can be used for further refinement
|
||||
macro SigmaSCVsTemp.C
|
||||
|
||||
# end
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
@ -146,28 +204,37 @@ OPTIONS:
|
||||
<fit-param-file-names>: list of file name(s) to be loaded.
|
||||
allowed formats are: db, dat, msr
|
||||
|
||||
SCRIPT COMMANDS:
|
||||
Lines starting with '#', '%', or '//' are comments and will be ignored.
|
||||
The same is true for empty lines. Comments are also allowed at the end
|
||||
for a command, i.e. loadPath ./ # the best place ever.
|
||||
|
||||
loadPath <dir> : set the load path to <dir>. Bash variables like
|
||||
$HOME are accepted.
|
||||
load <coll> : will load a collection <coll>. Currently *.db and *.dat
|
||||
are handled.
|
||||
selectAll : will select all loaded collections. Thie means every plot
|
||||
of variable x/y will be carried out to ALL collections.
|
||||
select <nn> : selects collection <nn>, where <nn> is either the number
|
||||
of the collections, or its name, e.g.
|
||||
select YBCO-40nm-T5K-FC150mT-Escan.db
|
||||
addX <label> : add <label> as a x-variable. Only one is allowed.
|
||||
addY <label(s)>: add <label(s)> as y-variable. Multiple labls are possible.
|
||||
savePath <dir> : set the save path to <dir>. The place where the macros,
|
||||
and/or the plot output will be saved.
|
||||
plot <fln> : where <fln> is the file name with extension under which
|
||||
the plot should be saved.
|
||||
macro <fln> : where <fln> is the file name under which the root macro
|
||||
should be saved.
|
||||
SCRIPT COMMANDS:
|
||||
Lines starting with '#', '%', or '//' are comments and will be ignored.
|
||||
The same is true for empty lines. Comments are also allowed at the end
|
||||
for a command, i.e. loadPath ./ # the best place ever.
|
||||
|
||||
load <coll> : load a collection. <coll> is the filename of the
|
||||
collection (*.db, *.dat)
|
||||
loadPath <path> : set the load path to <path>; accepting bash variables
|
||||
like $HOME, etc.
|
||||
x <var-name> : set a x-axis variable. <var-name> is a data tag of
|
||||
the db/dat-file.
|
||||
y <var-name> : set a y-axis variable. <var-name> is a data tag of
|
||||
the db/dat-file.
|
||||
select <nn> : select collection <nn>, where <nn> is the row-number
|
||||
or the name of the collection to be selected.
|
||||
selectAll : i.e. already set 'x', 'y' will apply to ALL collections
|
||||
present.
|
||||
savePath <path> : sets the save path to <path>; accepting bash variables
|
||||
like $HOME, etc.
|
||||
plot <fln> : where <fln> is the file name with extension under which
|
||||
the plot should be saved.
|
||||
macro <fln> : where <fln> is the file name under which the root macro
|
||||
should be saved.
|
||||
var <var_name> = <expr> : defines a variable.
|
||||
<expr> is a mathematical expression where
|
||||
collection variables are addressed via the '$',
|
||||
e.g. dataT is addressed by $dataT, etc.
|
||||
col <nn> : <var_name> : links <var_name> to the collection <nn>, where
|
||||
<nn> is the number of the collection as defined
|
||||
by the order of load, starting with 0.
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
@ -182,7 +249,10 @@ SCRIPT COMMANDS:
|
||||
<h3><a href="index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">mupp - μSR Parameter Plotter</a><ul>
|
||||
<li><a class="reference internal" href="#the-graphical-user-interface">The Graphical User Interface</a></li>
|
||||
<li><a class="reference internal" href="#the-graphical-user-interface">The Graphical User Interface</a><ul>
|
||||
<li><a class="reference internal" href="#define-variable-dialog">Define Variable Dialog</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#the-scripting-interface">The Scripting Interface</a></li>
|
||||
<li><a class="reference internal" href="#the-usage-summary">The Usage Summary</a></li>
|
||||
</ul>
|
||||
@ -228,13 +298,13 @@ SCRIPT COMMANDS:
|
||||
<li class="right" >
|
||||
<a href="musredit.html" title="musredit: the GUI Based Interface to musrfit"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 15, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>MusrRoot - an Extensible Open File Format for μSR — musrfit 1.5.2 documentation</title>
|
||||
<title>MusrRoot - an Extensible Open File Format for μSR — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="any2many.html" title="any2many - a Universal μSR-file-format converter"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -910,13 +910,13 @@ the entry has been added. The last token, <code class="docutils literal notransl
|
||||
<li class="right" >
|
||||
<a href="any2many.html" title="any2many - a Universal μSR-file-format converter"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>musredit: the GUI Based Interface to musrfit — musrfit 1.5.2 documentation</title>
|
||||
<title>musredit: the GUI Based Interface to musrfit — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="setup-dks.html" title="Setting up musrfit / DKS: High Speed Fitting with GPU’s"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -531,13 +531,13 @@ the corresponding fit parameter value, except the phases where the step will be
|
||||
<li class="right" >
|
||||
<a href="setup-dks.html" title="Setting up musrfit / DKS: High Speed Fitting with GPU’s"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Search — musrfit 1.5.2 documentation</title>
|
||||
<title>Search — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
containing fewer words won't appear in the result list.
|
||||
</p>
|
||||
<form action="" method="get">
|
||||
<input type="text" name="q" value="" />
|
||||
<input type="text" name="q" aria-labelledby="search-documentation" value="" />
|
||||
<input type="submit" value="search" />
|
||||
<span id="search-progress" style="padding-left: 10px"></span>
|
||||
</form>
|
||||
@ -75,13 +75,13 @@
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 15, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Setting up musrfit / DKS: High Speed Fitting with GPU’s — musrfit 1.5.2 documentation</title>
|
||||
<title>Setting up musrfit / DKS: High Speed Fitting with GPU’s — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="setup-standard.html" title="Setting up musrfit on Different Platforms"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -309,13 +309,13 @@ The only thing you need <code class="docutils literal notranslate"><span class="
|
||||
<li class="right" >
|
||||
<a href="setup-standard.html" title="Setting up musrfit on Different Platforms"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Setting up musrfit on Different Platforms — musrfit 1.5.2 documentation</title>
|
||||
<title>Setting up musrfit on Different Platforms — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="user-libs.html" title="Documentation of user libs (user functions)"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -1293,13 +1293,13 @@ $ musrview test-histo-ROOT-NPP.msr
|
||||
<li class="right" >
|
||||
<a href="user-libs.html" title="Documentation of user libs (user functions)"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Tutorial for musrfit — musrfit 1.5.2 documentation</title>
|
||||
<title>Tutorial for musrfit — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="cite.html" title="How to Cite musrfit?"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -431,13 +431,13 @@ For a complete description please refer to the manuals of <a class="reference in
|
||||
<li class="right" >
|
||||
<a href="cite.html" title="How to Cite musrfit?"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Documentation of user libs (user functions) — musrfit 1.5.2 documentation</title>
|
||||
<title>Documentation of user libs (user functions) — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="user-manual.html" title="User manual"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -647,13 +647,13 @@ K(m)&=\int_0^{\pi/2}\frac{\mathrm d\varphi}{\sqrt{1-m^2\sin^2{\varphi}}},\en
|
||||
<li class="right" >
|
||||
<a href="user-manual.html" title="User manual"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>User manual — musrfit 1.5.2 documentation</title>
|
||||
<title>User manual — musrfit 1.6.0 documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
<li class="right" >
|
||||
<a href="tutorial.html" title="Tutorial for musrfit"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -2177,7 +2177,7 @@ through the dictionary and has the following structure, where the “LinkDef.h
|
||||
<span class="cp">#endif </span><span class="c1">//__CINT__</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>For compiling and linking it is wise to use a Makefile as for example the attached <a class="reference download internal" download="" href="_downloads/105384a3f798b4479ee2ecadd2e3112e/Makefile.TMyLibrary"><code class="xref download docutils literal notranslate"><span class="pre">Makefile.TMyLibrary</span></code></a>. It assumes standard <code class="docutils literal notranslate"><span class="pre">ROOT</span></code> and <code class="docutils literal notranslate"><span class="pre">musrfit</span></code>
|
||||
<p>For compiling and linking it is wise to use a Makefile as for example the attached <a class="reference download internal" download="" href="_downloads/c06f924ba301a43e83dbbdfcfaf54ada/Makefile.TMyLibrary"><code class="xref download docutils literal notranslate"><span class="pre">Makefile.TMyLibrary</span></code></a>. It assumes standard <code class="docutils literal notranslate"><span class="pre">ROOT</span></code> and <code class="docutils literal notranslate"><span class="pre">musrfit</span></code>
|
||||
installations and defines rules for the generation of the shared library <strong>libTMyLibrary.so</strong> including the class and the ROOT dictionary. In order
|
||||
to get the library built and installed on the standard ROOT path just call:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ make -f Makefile.TMyLibrary
|
||||
@ -2429,13 +2429,13 @@ In case this cannot be ensured, the parallelization can be disabled by <em>–di
|
||||
<li class="right" >
|
||||
<a href="tutorial.html" title="Tutorial for musrfit"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">musrfit 1.6.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, Andreas Suter.
|
||||
Last updated on Feb 04, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
|
||||
Last updated on May 14, 2020.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.2.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/BMWtools/BMWStartupHandler.cpp
vendored
@ -11,7 +11,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2014 by Andreas Suter, Bastian M. Wojek *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter, Bastian M. Wojek *
|
||||
* *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/BMWtools/BMWStartupHandler.h
vendored
@ -11,7 +11,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter, Bastian M. Wojek *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter, Bastian M. Wojek *
|
||||
* *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/MusrRoot/TMusrRunHeader.cpp
vendored
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/MusrRoot/TMusrRunHeader.h
vendored
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/libGbGLF/PGbGLF.cpp
vendored
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/libGbGLF/PGbGLF.h
vendored
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/nexus/PNeXus.cpp
vendored
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
2
src/external/nexus/PNeXus.h
vendored
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2007-2019 by Andreas Suter *
|
||||
* Copyright (C) 2007-2020 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|