update of the docu.
This commit is contained in:
parent
c0e43a46e4
commit
357e5d6069
4
doc/html/.buildinfo
Normal file
4
doc/html/.buildinfo
Normal file
@ -0,0 +1,4 @@
|
||||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: 4e935cd35ad4b5e15fdb7bfc2da9495e
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
@ -0,0 +1,60 @@
|
||||
#---------------------------------------------------
|
||||
# get compilation flags from root-config
|
||||
|
||||
ROOTCFLAGS = $(shell $(ROOTSYS)/bin/root-config --cflags)
|
||||
|
||||
#---------------------------------------------------
|
||||
|
||||
OS = LINUX
|
||||
CXX = g++
|
||||
CXXFLAGS = -O3 -Wall -Wno-trigraphs -fPIC
|
||||
LOCALINCLUDE = .
|
||||
ROOTINCLUDE = $(ROOTSYS)/include
|
||||
INCLUDES = -I$(LOCALINCLUDE) -I$(ROOTINCLUDE)
|
||||
LD = g++
|
||||
LDFLAGS =
|
||||
SOFLAGS = -O -shared
|
||||
|
||||
# the output from the root-config script:
|
||||
CXXFLAGS += $(ROOTCFLAGS)
|
||||
LDFLAGS +=
|
||||
|
||||
# some definitions: headers (used to generate *Dict* stuff), sources, objects,...
|
||||
OBJS =
|
||||
OBJS += TMyFunction.o TMyLibraryDict.o
|
||||
|
||||
SHLIB = libTMyLibrary.so
|
||||
|
||||
# make the shared lib:
|
||||
#
|
||||
all: $(SHLIB)
|
||||
|
||||
$(SHLIB): $(OBJS)
|
||||
@echo "---> Building shared library $(SHLIB) ..."
|
||||
/bin/rm -f $(SHLIB)
|
||||
$(LD) $(OBJS) $(SOFLAGS) -o $(SHLIB)
|
||||
@echo "done"
|
||||
|
||||
# clean up: remove all object file (and core files)
|
||||
# semicolon needed to tell make there is no source
|
||||
# for this target!
|
||||
#
|
||||
clean:; @rm -f $(OBJS) *Dict* core*
|
||||
@echo "---> removing $(OBJS)"
|
||||
|
||||
#
|
||||
$(OBJS): %.o: %.cpp
|
||||
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $<
|
||||
|
||||
# Generate the ROOT CINT dictionary
|
||||
|
||||
TMyLibraryDict.cpp: TMyFunction.h TMyLibraryLinkDef.h
|
||||
@echo "Generating dictionary $@..."
|
||||
rootcint -f $@ -c -p -I$(ROOTINCLUDE) $^
|
||||
|
||||
install: all
|
||||
@echo "Installing shared lib: libTApproximation.so"
|
||||
ifeq ($(OS),LINUX)
|
||||
cp -pv $(SHLIB) $(ROOTSYS)/lib
|
||||
cp -pv $(LOCALINCLUDE)/*.h $(ROOTSYS)/include
|
||||
endif
|
12
doc/html/_static/documentation_options.js
Normal file
12
doc/html/_static/documentation_options.js
Normal file
@ -0,0 +1,12 @@
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||
VERSION: '1.7.6',
|
||||
LANGUAGE: 'None',
|
||||
COLLAPSE_INDEX: false,
|
||||
BUILDER: 'html',
|
||||
FILE_SUFFIX: '.html',
|
||||
LINK_SUFFIX: '.html',
|
||||
HAS_SOURCE: true,
|
||||
SOURCELINK_SUFFIX: '.txt',
|
||||
NAVIGATION_WITH_KEYS: false
|
||||
};
|
10872
doc/html/_static/jquery-3.5.1.js
vendored
Normal file
10872
doc/html/_static/jquery-3.5.1.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
297
doc/html/_static/language_data.js
Normal file
297
doc/html/_static/language_data.js
Normal file
@ -0,0 +1,297 @@
|
||||
/*
|
||||
* language_data.js
|
||||
* ~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* This script contains the language-specific data used by searchtools.js,
|
||||
* namely the list of stopwords, stemmer, scorer and splitter.
|
||||
*
|
||||
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
|
||||
|
||||
|
||||
/* Non-minified version JS is _stemmer.js if file is provided */
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
var Stemmer = function() {
|
||||
|
||||
var step2list = {
|
||||
ational: 'ate',
|
||||
tional: 'tion',
|
||||
enci: 'ence',
|
||||
anci: 'ance',
|
||||
izer: 'ize',
|
||||
bli: 'ble',
|
||||
alli: 'al',
|
||||
entli: 'ent',
|
||||
eli: 'e',
|
||||
ousli: 'ous',
|
||||
ization: 'ize',
|
||||
ation: 'ate',
|
||||
ator: 'ate',
|
||||
alism: 'al',
|
||||
iveness: 'ive',
|
||||
fulness: 'ful',
|
||||
ousness: 'ous',
|
||||
aliti: 'al',
|
||||
iviti: 'ive',
|
||||
biliti: 'ble',
|
||||
logi: 'log'
|
||||
};
|
||||
|
||||
var step3list = {
|
||||
icate: 'ic',
|
||||
ative: '',
|
||||
alize: 'al',
|
||||
iciti: 'ic',
|
||||
ical: 'ic',
|
||||
ful: '',
|
||||
ness: ''
|
||||
};
|
||||
|
||||
var c = "[^aeiou]"; // consonant
|
||||
var v = "[aeiouy]"; // vowel
|
||||
var C = c + "[^aeiouy]*"; // consonant sequence
|
||||
var V = v + "[aeiou]*"; // vowel sequence
|
||||
|
||||
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
|
||||
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
|
||||
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
|
||||
var s_v = "^(" + C + ")?" + v; // vowel in stem
|
||||
|
||||
this.stemWord = function (w) {
|
||||
var stem;
|
||||
var suffix;
|
||||
var firstch;
|
||||
var origword = w;
|
||||
|
||||
if (w.length < 3)
|
||||
return w;
|
||||
|
||||
var re;
|
||||
var re2;
|
||||
var re3;
|
||||
var re4;
|
||||
|
||||
firstch = w.substr(0,1);
|
||||
if (firstch == "y")
|
||||
w = firstch.toUpperCase() + w.substr(1);
|
||||
|
||||
// Step 1a
|
||||
re = /^(.+?)(ss|i)es$/;
|
||||
re2 = /^(.+?)([^s])s$/;
|
||||
|
||||
if (re.test(w))
|
||||
w = w.replace(re,"$1$2");
|
||||
else if (re2.test(w))
|
||||
w = w.replace(re2,"$1$2");
|
||||
|
||||
// Step 1b
|
||||
re = /^(.+?)eed$/;
|
||||
re2 = /^(.+?)(ed|ing)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(fp[1])) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1];
|
||||
re2 = new RegExp(s_v);
|
||||
if (re2.test(stem)) {
|
||||
w = stem;
|
||||
re2 = /(at|bl|iz)$/;
|
||||
re3 = new RegExp("([^aeiouylsz])\\1$");
|
||||
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re2.test(w))
|
||||
w = w + "e";
|
||||
else if (re3.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
else if (re4.test(w))
|
||||
w = w + "e";
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1c
|
||||
re = /^(.+?)y$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(s_v);
|
||||
if (re.test(stem))
|
||||
w = stem + "i";
|
||||
}
|
||||
|
||||
// Step 2
|
||||
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem))
|
||||
w = stem + step2list[suffix];
|
||||
}
|
||||
|
||||
// Step 3
|
||||
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem))
|
||||
w = stem + step3list[suffix];
|
||||
}
|
||||
|
||||
// Step 4
|
||||
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
|
||||
re2 = /^(.+?)(s|t)(ion)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
if (re.test(stem))
|
||||
w = stem;
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1] + fp[2];
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re2.test(stem))
|
||||
w = stem;
|
||||
}
|
||||
|
||||
// Step 5
|
||||
re = /^(.+?)e$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
re2 = new RegExp(meq1);
|
||||
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
|
||||
w = stem;
|
||||
}
|
||||
re = /ll$/;
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re.test(w) && re2.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
|
||||
// and turn initial Y back to y
|
||||
if (firstch == "y")
|
||||
w = firstch.toLowerCase() + w.substr(1);
|
||||
return w;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var splitChars = (function() {
|
||||
var result = {};
|
||||
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
|
||||
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
|
||||
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
|
||||
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
|
||||
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
|
||||
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
|
||||
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
|
||||
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
|
||||
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
|
||||
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
|
||||
var i, j, start, end;
|
||||
for (i = 0; i < singles.length; i++) {
|
||||
result[singles[i]] = true;
|
||||
}
|
||||
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
|
||||
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
|
||||
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
|
||||
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
|
||||
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
|
||||
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
|
||||
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
|
||||
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
|
||||
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
|
||||
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
|
||||
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
|
||||
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
|
||||
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
|
||||
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
|
||||
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
|
||||
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
|
||||
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
|
||||
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
|
||||
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
|
||||
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
|
||||
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
|
||||
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
|
||||
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
|
||||
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
|
||||
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
|
||||
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
|
||||
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
|
||||
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
|
||||
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
|
||||
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
|
||||
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
|
||||
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
|
||||
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
|
||||
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
|
||||
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
|
||||
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
|
||||
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
|
||||
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
|
||||
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
|
||||
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
|
||||
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
|
||||
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
|
||||
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
|
||||
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
|
||||
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
|
||||
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
|
||||
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
|
||||
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
|
||||
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
|
||||
for (i = 0; i < ranges.length; i++) {
|
||||
start = ranges[i][0];
|
||||
end = ranges[i][1];
|
||||
for (j = start; j <= end; j++) {
|
||||
result[j] = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
|
||||
function splitQuery(query) {
|
||||
var result = [];
|
||||
var start = -1;
|
||||
for (var i = 0; i < query.length; i++) {
|
||||
if (splitChars[query.charCodeAt(i)]) {
|
||||
if (start !== -1) {
|
||||
result.push(query.slice(start, i));
|
||||
start = -1;
|
||||
}
|
||||
} else if (start === -1) {
|
||||
start = i;
|
||||
}
|
||||
}
|
||||
if (start !== -1) {
|
||||
result.push(query.slice(start));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
999
doc/html/_static/underscore-1.3.1.js
Normal file
999
doc/html/_static/underscore-1.3.1.js
Normal file
@ -0,0 +1,999 @@
|
||||
// Underscore.js 1.3.1
|
||||
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
|
||||
// Underscore is freely distributable under the MIT license.
|
||||
// Portions of Underscore are inspired or borrowed from Prototype,
|
||||
// Oliver Steele's Functional, and John Resig's Micro-Templating.
|
||||
// For all details and documentation:
|
||||
// http://documentcloud.github.com/underscore
|
||||
|
||||
(function() {
|
||||
|
||||
// Baseline setup
|
||||
// --------------
|
||||
|
||||
// Establish the root object, `window` in the browser, or `global` on the server.
|
||||
var root = this;
|
||||
|
||||
// Save the previous value of the `_` variable.
|
||||
var previousUnderscore = root._;
|
||||
|
||||
// Establish the object that gets returned to break out of a loop iteration.
|
||||
var breaker = {};
|
||||
|
||||
// Save bytes in the minified (but not gzipped) version:
|
||||
var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
|
||||
|
||||
// Create quick reference variables for speed access to core prototypes.
|
||||
var slice = ArrayProto.slice,
|
||||
unshift = ArrayProto.unshift,
|
||||
toString = ObjProto.toString,
|
||||
hasOwnProperty = ObjProto.hasOwnProperty;
|
||||
|
||||
// All **ECMAScript 5** native function implementations that we hope to use
|
||||
// are declared here.
|
||||
var
|
||||
nativeForEach = ArrayProto.forEach,
|
||||
nativeMap = ArrayProto.map,
|
||||
nativeReduce = ArrayProto.reduce,
|
||||
nativeReduceRight = ArrayProto.reduceRight,
|
||||
nativeFilter = ArrayProto.filter,
|
||||
nativeEvery = ArrayProto.every,
|
||||
nativeSome = ArrayProto.some,
|
||||
nativeIndexOf = ArrayProto.indexOf,
|
||||
nativeLastIndexOf = ArrayProto.lastIndexOf,
|
||||
nativeIsArray = Array.isArray,
|
||||
nativeKeys = Object.keys,
|
||||
nativeBind = FuncProto.bind;
|
||||
|
||||
// Create a safe reference to the Underscore object for use below.
|
||||
var _ = function(obj) { return new wrapper(obj); };
|
||||
|
||||
// Export the Underscore object for **Node.js**, with
|
||||
// backwards-compatibility for the old `require()` API. If we're in
|
||||
// the browser, add `_` as a global object via a string identifier,
|
||||
// for Closure Compiler "advanced" mode.
|
||||
if (typeof exports !== 'undefined') {
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
exports = module.exports = _;
|
||||
}
|
||||
exports._ = _;
|
||||
} else {
|
||||
root['_'] = _;
|
||||
}
|
||||
|
||||
// Current version.
|
||||
_.VERSION = '1.3.1';
|
||||
|
||||
// Collection Functions
|
||||
// --------------------
|
||||
|
||||
// The cornerstone, an `each` implementation, aka `forEach`.
|
||||
// Handles objects with the built-in `forEach`, arrays, and raw objects.
|
||||
// Delegates to **ECMAScript 5**'s native `forEach` if available.
|
||||
var each = _.each = _.forEach = function(obj, iterator, context) {
|
||||
if (obj == null) return;
|
||||
if (nativeForEach && obj.forEach === nativeForEach) {
|
||||
obj.forEach(iterator, context);
|
||||
} else if (obj.length === +obj.length) {
|
||||
for (var i = 0, l = obj.length; i < l; i++) {
|
||||
if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
|
||||
}
|
||||
} else {
|
||||
for (var key in obj) {
|
||||
if (_.has(obj, key)) {
|
||||
if (iterator.call(context, obj[key], key, obj) === breaker) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Return the results of applying the iterator to each element.
|
||||
// Delegates to **ECMAScript 5**'s native `map` if available.
|
||||
_.map = _.collect = function(obj, iterator, context) {
|
||||
var results = [];
|
||||
if (obj == null) return results;
|
||||
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
results[results.length] = iterator.call(context, value, index, list);
|
||||
});
|
||||
if (obj.length === +obj.length) results.length = obj.length;
|
||||
return results;
|
||||
};
|
||||
|
||||
// **Reduce** builds up a single result from a list of values, aka `inject`,
|
||||
// or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
|
||||
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
|
||||
var initial = arguments.length > 2;
|
||||
if (obj == null) obj = [];
|
||||
if (nativeReduce && obj.reduce === nativeReduce) {
|
||||
if (context) iterator = _.bind(iterator, context);
|
||||
return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
|
||||
}
|
||||
each(obj, function(value, index, list) {
|
||||
if (!initial) {
|
||||
memo = value;
|
||||
initial = true;
|
||||
} else {
|
||||
memo = iterator.call(context, memo, value, index, list);
|
||||
}
|
||||
});
|
||||
if (!initial) throw new TypeError('Reduce of empty array with no initial value');
|
||||
return memo;
|
||||
};
|
||||
|
||||
// The right-associative version of reduce, also known as `foldr`.
|
||||
// Delegates to **ECMAScript 5**'s native `reduceRight` if available.
|
||||
_.reduceRight = _.foldr = function(obj, iterator, memo, context) {
|
||||
var initial = arguments.length > 2;
|
||||
if (obj == null) obj = [];
|
||||
if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
|
||||
if (context) iterator = _.bind(iterator, context);
|
||||
return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
|
||||
}
|
||||
var reversed = _.toArray(obj).reverse();
|
||||
if (context && !initial) iterator = _.bind(iterator, context);
|
||||
return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator);
|
||||
};
|
||||
|
||||
// Return the first value which passes a truth test. Aliased as `detect`.
|
||||
_.find = _.detect = function(obj, iterator, context) {
|
||||
var result;
|
||||
any(obj, function(value, index, list) {
|
||||
if (iterator.call(context, value, index, list)) {
|
||||
result = value;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
// Return all the elements that pass a truth test.
|
||||
// Delegates to **ECMAScript 5**'s native `filter` if available.
|
||||
// Aliased as `select`.
|
||||
_.filter = _.select = function(obj, iterator, context) {
|
||||
var results = [];
|
||||
if (obj == null) return results;
|
||||
if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
if (iterator.call(context, value, index, list)) results[results.length] = value;
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
// Return all the elements for which a truth test fails.
|
||||
_.reject = function(obj, iterator, context) {
|
||||
var results = [];
|
||||
if (obj == null) return results;
|
||||
each(obj, function(value, index, list) {
|
||||
if (!iterator.call(context, value, index, list)) results[results.length] = value;
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
// Determine whether all of the elements match a truth test.
|
||||
// Delegates to **ECMAScript 5**'s native `every` if available.
|
||||
// Aliased as `all`.
|
||||
_.every = _.all = function(obj, iterator, context) {
|
||||
var result = true;
|
||||
if (obj == null) return result;
|
||||
if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
if (!(result = result && iterator.call(context, value, index, list))) return breaker;
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
// Determine if at least one element in the object matches a truth test.
|
||||
// Delegates to **ECMAScript 5**'s native `some` if available.
|
||||
// Aliased as `any`.
|
||||
var any = _.some = _.any = function(obj, iterator, context) {
|
||||
iterator || (iterator = _.identity);
|
||||
var result = false;
|
||||
if (obj == null) return result;
|
||||
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
if (result || (result = iterator.call(context, value, index, list))) return breaker;
|
||||
});
|
||||
return !!result;
|
||||
};
|
||||
|
||||
// Determine if a given value is included in the array or object using `===`.
|
||||
// Aliased as `contains`.
|
||||
_.include = _.contains = function(obj, target) {
|
||||
var found = false;
|
||||
if (obj == null) return found;
|
||||
if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
|
||||
found = any(obj, function(value) {
|
||||
return value === target;
|
||||
});
|
||||
return found;
|
||||
};
|
||||
|
||||
// Invoke a method (with arguments) on every item in a collection.
|
||||
_.invoke = function(obj, method) {
|
||||
var args = slice.call(arguments, 2);
|
||||
return _.map(obj, function(value) {
|
||||
return (_.isFunction(method) ? method || value : value[method]).apply(value, args);
|
||||
});
|
||||
};
|
||||
|
||||
// Convenience version of a common use case of `map`: fetching a property.
|
||||
_.pluck = function(obj, key) {
|
||||
return _.map(obj, function(value){ return value[key]; });
|
||||
};
|
||||
|
||||
// Return the maximum element or (element-based computation).
|
||||
_.max = function(obj, iterator, context) {
|
||||
if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
|
||||
if (!iterator && _.isEmpty(obj)) return -Infinity;
|
||||
var result = {computed : -Infinity};
|
||||
each(obj, function(value, index, list) {
|
||||
var computed = iterator ? iterator.call(context, value, index, list) : value;
|
||||
computed >= result.computed && (result = {value : value, computed : computed});
|
||||
});
|
||||
return result.value;
|
||||
};
|
||||
|
||||
// Return the minimum element (or element-based computation).
|
||||
_.min = function(obj, iterator, context) {
|
||||
if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
|
||||
if (!iterator && _.isEmpty(obj)) return Infinity;
|
||||
var result = {computed : Infinity};
|
||||
each(obj, function(value, index, list) {
|
||||
var computed = iterator ? iterator.call(context, value, index, list) : value;
|
||||
computed < result.computed && (result = {value : value, computed : computed});
|
||||
});
|
||||
return result.value;
|
||||
};
|
||||
|
||||
// Shuffle an array.
|
||||
_.shuffle = function(obj) {
|
||||
var shuffled = [], rand;
|
||||
each(obj, function(value, index, list) {
|
||||
if (index == 0) {
|
||||
shuffled[0] = value;
|
||||
} else {
|
||||
rand = Math.floor(Math.random() * (index + 1));
|
||||
shuffled[index] = shuffled[rand];
|
||||
shuffled[rand] = value;
|
||||
}
|
||||
});
|
||||
return shuffled;
|
||||
};
|
||||
|
||||
// Sort the object's values by a criterion produced by an iterator.
|
||||
_.sortBy = function(obj, iterator, context) {
|
||||
return _.pluck(_.map(obj, function(value, index, list) {
|
||||
return {
|
||||
value : value,
|
||||
criteria : iterator.call(context, value, index, list)
|
||||
};
|
||||
}).sort(function(left, right) {
|
||||
var a = left.criteria, b = right.criteria;
|
||||
return a < b ? -1 : a > b ? 1 : 0;
|
||||
}), 'value');
|
||||
};
|
||||
|
||||
// Groups the object's values by a criterion. Pass either a string attribute
|
||||
// to group by, or a function that returns the criterion.
|
||||
_.groupBy = function(obj, val) {
|
||||
var result = {};
|
||||
var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
|
||||
each(obj, function(value, index) {
|
||||
var key = iterator(value, index);
|
||||
(result[key] || (result[key] = [])).push(value);
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
// Use a comparator function to figure out at what index an object should
|
||||
// be inserted so as to maintain order. Uses binary search.
|
||||
_.sortedIndex = function(array, obj, iterator) {
|
||||
iterator || (iterator = _.identity);
|
||||
var low = 0, high = array.length;
|
||||
while (low < high) {
|
||||
var mid = (low + high) >> 1;
|
||||
iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
|
||||
}
|
||||
return low;
|
||||
};
|
||||
|
||||
// Safely convert anything iterable into a real, live array.
|
||||
_.toArray = function(iterable) {
|
||||
if (!iterable) return [];
|
||||
if (iterable.toArray) return iterable.toArray();
|
||||
if (_.isArray(iterable)) return slice.call(iterable);
|
||||
if (_.isArguments(iterable)) return slice.call(iterable);
|
||||
return _.values(iterable);
|
||||
};
|
||||
|
||||
// Return the number of elements in an object.
|
||||
_.size = function(obj) {
|
||||
return _.toArray(obj).length;
|
||||
};
|
||||
|
||||
// Array Functions
|
||||
// ---------------
|
||||
|
||||
// Get the first element of an array. Passing **n** will return the first N
|
||||
// values in the array. Aliased as `head`. The **guard** check allows it to work
|
||||
// with `_.map`.
|
||||
_.first = _.head = function(array, n, guard) {
|
||||
return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
|
||||
};
|
||||
|
||||
// Returns everything but the last entry of the array. Especcialy useful on
|
||||
// the arguments object. Passing **n** will return all the values in
|
||||
// the array, excluding the last N. The **guard** check allows it to work with
|
||||
// `_.map`.
|
||||
_.initial = function(array, n, guard) {
|
||||
return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
|
||||
};
|
||||
|
||||
// Get the last element of an array. Passing **n** will return the last N
|
||||
// values in the array. The **guard** check allows it to work with `_.map`.
|
||||
_.last = function(array, n, guard) {
|
||||
if ((n != null) && !guard) {
|
||||
return slice.call(array, Math.max(array.length - n, 0));
|
||||
} else {
|
||||
return array[array.length - 1];
|
||||
}
|
||||
};
|
||||
|
||||
// Returns everything but the first entry of the array. Aliased as `tail`.
|
||||
// Especially useful on the arguments object. Passing an **index** will return
|
||||
// the rest of the values in the array from that index onward. The **guard**
|
||||
// check allows it to work with `_.map`.
|
||||
_.rest = _.tail = function(array, index, guard) {
|
||||
return slice.call(array, (index == null) || guard ? 1 : index);
|
||||
};
|
||||
|
||||
// Trim out all falsy values from an array.
|
||||
_.compact = function(array) {
|
||||
return _.filter(array, function(value){ return !!value; });
|
||||
};
|
||||
|
||||
// Return a completely flattened version of an array.
|
||||
_.flatten = function(array, shallow) {
|
||||
return _.reduce(array, function(memo, value) {
|
||||
if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
|
||||
memo[memo.length] = value;
|
||||
return memo;
|
||||
}, []);
|
||||
};
|
||||
|
||||
// Return a version of the array that does not contain the specified value(s).
|
||||
_.without = function(array) {
|
||||
return _.difference(array, slice.call(arguments, 1));
|
||||
};
|
||||
|
||||
// Produce a duplicate-free version of the array. If the array has already
|
||||
// been sorted, you have the option of using a faster algorithm.
|
||||
// Aliased as `unique`.
|
||||
_.uniq = _.unique = function(array, isSorted, iterator) {
|
||||
var initial = iterator ? _.map(array, iterator) : array;
|
||||
var result = [];
|
||||
_.reduce(initial, function(memo, el, i) {
|
||||
if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
|
||||
memo[memo.length] = el;
|
||||
result[result.length] = array[i];
|
||||
}
|
||||
return memo;
|
||||
}, []);
|
||||
return result;
|
||||
};
|
||||
|
||||
// Produce an array that contains the union: each distinct element from all of
|
||||
// the passed-in arrays.
|
||||
_.union = function() {
|
||||
return _.uniq(_.flatten(arguments, true));
|
||||
};
|
||||
|
||||
// Produce an array that contains every item shared between all the
|
||||
// passed-in arrays. (Aliased as "intersect" for back-compat.)
|
||||
_.intersection = _.intersect = function(array) {
|
||||
var rest = slice.call(arguments, 1);
|
||||
return _.filter(_.uniq(array), function(item) {
|
||||
return _.every(rest, function(other) {
|
||||
return _.indexOf(other, item) >= 0;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Take the difference between one array and a number of other arrays.
|
||||
// Only the elements present in just the first array will remain.
|
||||
_.difference = function(array) {
|
||||
var rest = _.flatten(slice.call(arguments, 1));
|
||||
return _.filter(array, function(value){ return !_.include(rest, value); });
|
||||
};
|
||||
|
||||
// Zip together multiple lists into a single array -- elements that share
|
||||
// an index go together.
|
||||
_.zip = function() {
|
||||
var args = slice.call(arguments);
|
||||
var length = _.max(_.pluck(args, 'length'));
|
||||
var results = new Array(length);
|
||||
for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
|
||||
return results;
|
||||
};
|
||||
|
||||
// If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
|
||||
// we need this function. Return the position of the first occurrence of an
|
||||
// item in an array, or -1 if the item is not included in the array.
|
||||
// Delegates to **ECMAScript 5**'s native `indexOf` if available.
|
||||
// If the array is large and already in sort order, pass `true`
|
||||
// for **isSorted** to use binary search.
|
||||
_.indexOf = function(array, item, isSorted) {
|
||||
if (array == null) return -1;
|
||||
var i, l;
|
||||
if (isSorted) {
|
||||
i = _.sortedIndex(array, item);
|
||||
return array[i] === item ? i : -1;
|
||||
}
|
||||
if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
|
||||
for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i;
|
||||
return -1;
|
||||
};
|
||||
|
||||
// Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
|
||||
_.lastIndexOf = function(array, item) {
|
||||
if (array == null) return -1;
|
||||
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
|
||||
var i = array.length;
|
||||
while (i--) if (i in array && array[i] === item) return i;
|
||||
return -1;
|
||||
};
|
||||
|
||||
// Generate an integer Array containing an arithmetic progression. A port of
|
||||
// the native Python `range()` function. See
|
||||
// [the Python documentation](http://docs.python.org/library/functions.html#range).
|
||||
_.range = function(start, stop, step) {
|
||||
if (arguments.length <= 1) {
|
||||
stop = start || 0;
|
||||
start = 0;
|
||||
}
|
||||
step = arguments[2] || 1;
|
||||
|
||||
var len = Math.max(Math.ceil((stop - start) / step), 0);
|
||||
var idx = 0;
|
||||
var range = new Array(len);
|
||||
|
||||
while(idx < len) {
|
||||
range[idx++] = start;
|
||||
start += step;
|
||||
}
|
||||
|
||||
return range;
|
||||
};
|
||||
|
||||
// Function (ahem) Functions
|
||||
// ------------------
|
||||
|
||||
// Reusable constructor function for prototype setting.
|
||||
var ctor = function(){};
|
||||
|
||||
// Create a function bound to a given object (assigning `this`, and arguments,
|
||||
// optionally). Binding with arguments is also known as `curry`.
|
||||
// Delegates to **ECMAScript 5**'s native `Function.bind` if available.
|
||||
// We check for `func.bind` first, to fail fast when `func` is undefined.
|
||||
_.bind = function bind(func, context) {
|
||||
var bound, args;
|
||||
if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
|
||||
if (!_.isFunction(func)) throw new TypeError;
|
||||
args = slice.call(arguments, 2);
|
||||
return bound = function() {
|
||||
if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
|
||||
ctor.prototype = func.prototype;
|
||||
var self = new ctor;
|
||||
var result = func.apply(self, args.concat(slice.call(arguments)));
|
||||
if (Object(result) === result) return result;
|
||||
return self;
|
||||
};
|
||||
};
|
||||
|
||||
// Bind all of an object's methods to that object. Useful for ensuring that
|
||||
// all callbacks defined on an object belong to it.
|
||||
_.bindAll = function(obj) {
|
||||
var funcs = slice.call(arguments, 1);
|
||||
if (funcs.length == 0) funcs = _.functions(obj);
|
||||
each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Memoize an expensive function by storing its results.
|
||||
_.memoize = function(func, hasher) {
|
||||
var memo = {};
|
||||
hasher || (hasher = _.identity);
|
||||
return function() {
|
||||
var key = hasher.apply(this, arguments);
|
||||
return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
|
||||
};
|
||||
};
|
||||
|
||||
// Delays a function for the given number of milliseconds, and then calls
|
||||
// it with the arguments supplied.
|
||||
_.delay = function(func, wait) {
|
||||
var args = slice.call(arguments, 2);
|
||||
return setTimeout(function(){ return func.apply(func, args); }, wait);
|
||||
};
|
||||
|
||||
// Defers a function, scheduling it to run after the current call stack has
|
||||
// cleared.
|
||||
_.defer = function(func) {
|
||||
return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
|
||||
};
|
||||
|
||||
// Returns a function, that, when invoked, will only be triggered at most once
|
||||
// during a given window of time.
|
||||
_.throttle = function(func, wait) {
|
||||
var context, args, timeout, throttling, more;
|
||||
var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
|
||||
return function() {
|
||||
context = this; args = arguments;
|
||||
var later = function() {
|
||||
timeout = null;
|
||||
if (more) func.apply(context, args);
|
||||
whenDone();
|
||||
};
|
||||
if (!timeout) timeout = setTimeout(later, wait);
|
||||
if (throttling) {
|
||||
more = true;
|
||||
} else {
|
||||
func.apply(context, args);
|
||||
}
|
||||
whenDone();
|
||||
throttling = true;
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function, that, as long as it continues to be invoked, will not
|
||||
// be triggered. The function will be called after it stops being called for
|
||||
// N milliseconds.
|
||||
_.debounce = function(func, wait) {
|
||||
var timeout;
|
||||
return function() {
|
||||
var context = this, args = arguments;
|
||||
var later = function() {
|
||||
timeout = null;
|
||||
func.apply(context, args);
|
||||
};
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function that will be executed at most one time, no matter how
|
||||
// often you call it. Useful for lazy initialization.
|
||||
_.once = function(func) {
|
||||
var ran = false, memo;
|
||||
return function() {
|
||||
if (ran) return memo;
|
||||
ran = true;
|
||||
return memo = func.apply(this, arguments);
|
||||
};
|
||||
};
|
||||
|
||||
// Returns the first function passed as an argument to the second,
|
||||
// allowing you to adjust arguments, run code before and after, and
|
||||
// conditionally execute the original function.
|
||||
_.wrap = function(func, wrapper) {
|
||||
return function() {
|
||||
var args = [func].concat(slice.call(arguments, 0));
|
||||
return wrapper.apply(this, args);
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function that is the composition of a list of functions, each
|
||||
// consuming the return value of the function that follows.
|
||||
_.compose = function() {
|
||||
var funcs = arguments;
|
||||
return function() {
|
||||
var args = arguments;
|
||||
for (var i = funcs.length - 1; i >= 0; i--) {
|
||||
args = [funcs[i].apply(this, args)];
|
||||
}
|
||||
return args[0];
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function that will only be executed after being called N times.
|
||||
_.after = function(times, func) {
|
||||
if (times <= 0) return func();
|
||||
return function() {
|
||||
if (--times < 1) { return func.apply(this, arguments); }
|
||||
};
|
||||
};
|
||||
|
||||
// Object Functions
|
||||
// ----------------
|
||||
|
||||
// Retrieve the names of an object's properties.
|
||||
// Delegates to **ECMAScript 5**'s native `Object.keys`
|
||||
_.keys = nativeKeys || function(obj) {
|
||||
if (obj !== Object(obj)) throw new TypeError('Invalid object');
|
||||
var keys = [];
|
||||
for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
|
||||
return keys;
|
||||
};
|
||||
|
||||
// Retrieve the values of an object's properties.
|
||||
_.values = function(obj) {
|
||||
return _.map(obj, _.identity);
|
||||
};
|
||||
|
||||
// Return a sorted list of the function names available on the object.
|
||||
// Aliased as `methods`
|
||||
_.functions = _.methods = function(obj) {
|
||||
var names = [];
|
||||
for (var key in obj) {
|
||||
if (_.isFunction(obj[key])) names.push(key);
|
||||
}
|
||||
return names.sort();
|
||||
};
|
||||
|
||||
// Extend a given object with all the properties in passed-in object(s).
|
||||
_.extend = function(obj) {
|
||||
each(slice.call(arguments, 1), function(source) {
|
||||
for (var prop in source) {
|
||||
obj[prop] = source[prop];
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Fill in a given object with default properties.
|
||||
_.defaults = function(obj) {
|
||||
each(slice.call(arguments, 1), function(source) {
|
||||
for (var prop in source) {
|
||||
if (obj[prop] == null) obj[prop] = source[prop];
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Create a (shallow-cloned) duplicate of an object.
|
||||
_.clone = function(obj) {
|
||||
if (!_.isObject(obj)) return obj;
|
||||
return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
|
||||
};
|
||||
|
||||
// Invokes interceptor with the obj, and then returns obj.
|
||||
// The primary purpose of this method is to "tap into" a method chain, in
|
||||
// order to perform operations on intermediate results within the chain.
|
||||
_.tap = function(obj, interceptor) {
|
||||
interceptor(obj);
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Internal recursive comparison function.
|
||||
function eq(a, b, stack) {
|
||||
// Identical objects are equal. `0 === -0`, but they aren't identical.
|
||||
// See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
|
||||
if (a === b) return a !== 0 || 1 / a == 1 / b;
|
||||
// A strict comparison is necessary because `null == undefined`.
|
||||
if (a == null || b == null) return a === b;
|
||||
// Unwrap any wrapped objects.
|
||||
if (a._chain) a = a._wrapped;
|
||||
if (b._chain) b = b._wrapped;
|
||||
// Invoke a custom `isEqual` method if one is provided.
|
||||
if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b);
|
||||
if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a);
|
||||
// Compare `[[Class]]` names.
|
||||
var className = toString.call(a);
|
||||
if (className != toString.call(b)) return false;
|
||||
switch (className) {
|
||||
// Strings, numbers, dates, and booleans are compared by value.
|
||||
case '[object String]':
|
||||
// Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
|
||||
// equivalent to `new String("5")`.
|
||||
return a == String(b);
|
||||
case '[object Number]':
|
||||
// `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
|
||||
// other numeric values.
|
||||
return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
|
||||
case '[object Date]':
|
||||
case '[object Boolean]':
|
||||
// Coerce dates and booleans to numeric primitive values. Dates are compared by their
|
||||
// millisecond representations. Note that invalid dates with millisecond representations
|
||||
// of `NaN` are not equivalent.
|
||||
return +a == +b;
|
||||
// RegExps are compared by their source patterns and flags.
|
||||
case '[object RegExp]':
|
||||
return a.source == b.source &&
|
||||
a.global == b.global &&
|
||||
a.multiline == b.multiline &&
|
||||
a.ignoreCase == b.ignoreCase;
|
||||
}
|
||||
if (typeof a != 'object' || typeof b != 'object') return false;
|
||||
// Assume equality for cyclic structures. The algorithm for detecting cyclic
|
||||
// structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
|
||||
var length = stack.length;
|
||||
while (length--) {
|
||||
// Linear search. Performance is inversely proportional to the number of
|
||||
// unique nested structures.
|
||||
if (stack[length] == a) return true;
|
||||
}
|
||||
// Add the first object to the stack of traversed objects.
|
||||
stack.push(a);
|
||||
var size = 0, result = true;
|
||||
// Recursively compare objects and arrays.
|
||||
if (className == '[object Array]') {
|
||||
// Compare array lengths to determine if a deep comparison is necessary.
|
||||
size = a.length;
|
||||
result = size == b.length;
|
||||
if (result) {
|
||||
// Deep compare the contents, ignoring non-numeric properties.
|
||||
while (size--) {
|
||||
// Ensure commutative equality for sparse arrays.
|
||||
if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Objects with different constructors are not equivalent.
|
||||
if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false;
|
||||
// Deep compare objects.
|
||||
for (var key in a) {
|
||||
if (_.has(a, key)) {
|
||||
// Count the expected number of properties.
|
||||
size++;
|
||||
// Deep compare each member.
|
||||
if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break;
|
||||
}
|
||||
}
|
||||
// Ensure that both objects contain the same number of properties.
|
||||
if (result) {
|
||||
for (key in b) {
|
||||
if (_.has(b, key) && !(size--)) break;
|
||||
}
|
||||
result = !size;
|
||||
}
|
||||
}
|
||||
// Remove the first object from the stack of traversed objects.
|
||||
stack.pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
// Perform a deep comparison to check if two objects are equal.
|
||||
_.isEqual = function(a, b) {
|
||||
return eq(a, b, []);
|
||||
};
|
||||
|
||||
// Is a given array, string, or object empty?
|
||||
// An "empty" object has no enumerable own-properties.
|
||||
_.isEmpty = function(obj) {
|
||||
if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
|
||||
for (var key in obj) if (_.has(obj, key)) return false;
|
||||
return true;
|
||||
};
|
||||
|
||||
// Is a given value a DOM element?
|
||||
_.isElement = function(obj) {
|
||||
return !!(obj && obj.nodeType == 1);
|
||||
};
|
||||
|
||||
// Is a given value an array?
|
||||
// Delegates to ECMA5's native Array.isArray
|
||||
_.isArray = nativeIsArray || function(obj) {
|
||||
return toString.call(obj) == '[object Array]';
|
||||
};
|
||||
|
||||
// Is a given variable an object?
|
||||
_.isObject = function(obj) {
|
||||
return obj === Object(obj);
|
||||
};
|
||||
|
||||
// Is a given variable an arguments object?
|
||||
_.isArguments = function(obj) {
|
||||
return toString.call(obj) == '[object Arguments]';
|
||||
};
|
||||
if (!_.isArguments(arguments)) {
|
||||
_.isArguments = function(obj) {
|
||||
return !!(obj && _.has(obj, 'callee'));
|
||||
};
|
||||
}
|
||||
|
||||
// Is a given value a function?
|
||||
_.isFunction = function(obj) {
|
||||
return toString.call(obj) == '[object Function]';
|
||||
};
|
||||
|
||||
// Is a given value a string?
|
||||
_.isString = function(obj) {
|
||||
return toString.call(obj) == '[object String]';
|
||||
};
|
||||
|
||||
// Is a given value a number?
|
||||
_.isNumber = function(obj) {
|
||||
return toString.call(obj) == '[object Number]';
|
||||
};
|
||||
|
||||
// Is the given value `NaN`?
|
||||
_.isNaN = function(obj) {
|
||||
// `NaN` is the only value for which `===` is not reflexive.
|
||||
return obj !== obj;
|
||||
};
|
||||
|
||||
// Is a given value a boolean?
|
||||
_.isBoolean = function(obj) {
|
||||
return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
|
||||
};
|
||||
|
||||
// Is a given value a date?
|
||||
_.isDate = function(obj) {
|
||||
return toString.call(obj) == '[object Date]';
|
||||
};
|
||||
|
||||
// Is the given value a regular expression?
|
||||
_.isRegExp = function(obj) {
|
||||
return toString.call(obj) == '[object RegExp]';
|
||||
};
|
||||
|
||||
// Is a given value equal to null?
|
||||
_.isNull = function(obj) {
|
||||
return obj === null;
|
||||
};
|
||||
|
||||
// Is a given variable undefined?
|
||||
_.isUndefined = function(obj) {
|
||||
return obj === void 0;
|
||||
};
|
||||
|
||||
// Has own property?
|
||||
_.has = function(obj, key) {
|
||||
return hasOwnProperty.call(obj, key);
|
||||
};
|
||||
|
||||
// Utility Functions
|
||||
// -----------------
|
||||
|
||||
// Run Underscore.js in *noConflict* mode, returning the `_` variable to its
|
||||
// previous owner. Returns a reference to the Underscore object.
|
||||
_.noConflict = function() {
|
||||
root._ = previousUnderscore;
|
||||
return this;
|
||||
};
|
||||
|
||||
// Keep the identity function around for default iterators.
|
||||
_.identity = function(value) {
|
||||
return value;
|
||||
};
|
||||
|
||||
// Run a function **n** times.
|
||||
_.times = function (n, iterator, context) {
|
||||
for (var i = 0; i < n; i++) iterator.call(context, i);
|
||||
};
|
||||
|
||||
// Escape a string for HTML interpolation.
|
||||
_.escape = function(string) {
|
||||
return (''+string).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g,'/');
|
||||
};
|
||||
|
||||
// Add your own custom functions to the Underscore object, ensuring that
|
||||
// they're correctly added to the OOP wrapper as well.
|
||||
_.mixin = function(obj) {
|
||||
each(_.functions(obj), function(name){
|
||||
addToWrapper(name, _[name] = obj[name]);
|
||||
});
|
||||
};
|
||||
|
||||
// Generate a unique integer id (unique within the entire client session).
|
||||
// Useful for temporary DOM ids.
|
||||
var idCounter = 0;
|
||||
_.uniqueId = function(prefix) {
|
||||
var id = idCounter++;
|
||||
return prefix ? prefix + id : id;
|
||||
};
|
||||
|
||||
// By default, Underscore uses ERB-style template delimiters, change the
|
||||
// following template settings to use alternative delimiters.
|
||||
_.templateSettings = {
|
||||
evaluate : /<%([\s\S]+?)%>/g,
|
||||
interpolate : /<%=([\s\S]+?)%>/g,
|
||||
escape : /<%-([\s\S]+?)%>/g
|
||||
};
|
||||
|
||||
// When customizing `templateSettings`, if you don't want to define an
|
||||
// interpolation, evaluation or escaping regex, we need one that is
|
||||
// guaranteed not to match.
|
||||
var noMatch = /.^/;
|
||||
|
||||
// Within an interpolation, evaluation, or escaping, remove HTML escaping
|
||||
// that had been previously added.
|
||||
var unescape = function(code) {
|
||||
return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'");
|
||||
};
|
||||
|
||||
// JavaScript micro-templating, similar to John Resig's implementation.
|
||||
// Underscore templating handles arbitrary delimiters, preserves whitespace,
|
||||
// and correctly escapes quotes within interpolated code.
|
||||
_.template = function(str, data) {
|
||||
var c = _.templateSettings;
|
||||
var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
|
||||
'with(obj||{}){__p.push(\'' +
|
||||
str.replace(/\\/g, '\\\\')
|
||||
.replace(/'/g, "\\'")
|
||||
.replace(c.escape || noMatch, function(match, code) {
|
||||
return "',_.escape(" + unescape(code) + "),'";
|
||||
})
|
||||
.replace(c.interpolate || noMatch, function(match, code) {
|
||||
return "'," + unescape(code) + ",'";
|
||||
})
|
||||
.replace(c.evaluate || noMatch, function(match, code) {
|
||||
return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('";
|
||||
})
|
||||
.replace(/\r/g, '\\r')
|
||||
.replace(/\n/g, '\\n')
|
||||
.replace(/\t/g, '\\t')
|
||||
+ "');}return __p.join('');";
|
||||
var func = new Function('obj', '_', tmpl);
|
||||
if (data) return func(data, _);
|
||||
return function(data) {
|
||||
return func.call(this, data, _);
|
||||
};
|
||||
};
|
||||
|
||||
// Add a "chain" function, which will delegate to the wrapper.
|
||||
_.chain = function(obj) {
|
||||
return _(obj).chain();
|
||||
};
|
||||
|
||||
// The OOP Wrapper
|
||||
// ---------------
|
||||
|
||||
// If Underscore is called as a function, it returns a wrapped object that
|
||||
// can be used OO-style. This wrapper holds altered versions of all the
|
||||
// underscore functions. Wrapped objects may be chained.
|
||||
var wrapper = function(obj) { this._wrapped = obj; };
|
||||
|
||||
// Expose `wrapper.prototype` as `_.prototype`
|
||||
_.prototype = wrapper.prototype;
|
||||
|
||||
// Helper function to continue chaining intermediate results.
|
||||
var result = function(obj, chain) {
|
||||
return chain ? _(obj).chain() : obj;
|
||||
};
|
||||
|
||||
// A method to easily add functions to the OOP wrapper.
|
||||
var addToWrapper = function(name, func) {
|
||||
wrapper.prototype[name] = function() {
|
||||
var args = slice.call(arguments);
|
||||
unshift.call(args, this._wrapped);
|
||||
return result(func.apply(_, args), this._chain);
|
||||
};
|
||||
};
|
||||
|
||||
// Add all of the Underscore functions to the wrapper object.
|
||||
_.mixin(_);
|
||||
|
||||
// Add all mutator Array functions to the wrapper.
|
||||
each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
|
||||
var method = ArrayProto[name];
|
||||
wrapper.prototype[name] = function() {
|
||||
var wrapped = this._wrapped;
|
||||
method.apply(wrapped, arguments);
|
||||
var length = wrapped.length;
|
||||
if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0];
|
||||
return result(wrapped, this._chain);
|
||||
};
|
||||
});
|
||||
|
||||
// Add all accessor Array functions to the wrapper.
|
||||
each(['concat', 'join', 'slice'], function(name) {
|
||||
var method = ArrayProto[name];
|
||||
wrapper.prototype[name] = function() {
|
||||
return result(method.apply(this._wrapped, arguments), this._chain);
|
||||
};
|
||||
});
|
||||
|
||||
// Start chaining a wrapped Underscore object.
|
||||
wrapper.prototype.chain = function() {
|
||||
this._chain = true;
|
||||
return this;
|
||||
};
|
||||
|
||||
// Extracts the result from a wrapped and chained object.
|
||||
wrapper.prototype.value = function() {
|
||||
return this._wrapped;
|
||||
};
|
||||
|
||||
}).call(this);
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Acknowledgements — musrfit 1.7.6 documentation</title>
|
||||
<title>Acknowledgements — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="Bugtracking" href="bugtracking.html" />
|
||||
<link rel="prev" title="MusrRoot - an Extensible Open File Format for μSR" href="musr-root.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Acknowledgements</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -78,8 +78,8 @@ extremely competent way to deal with his projects as well as to deal with the ch
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>any2many - a Universal μSR-file-format converter — musrfit 1.7.6 documentation</title>
|
||||
<title>any2many - a Universal μSR-file-format converter — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="MusrRoot - an Extensible Open File Format for μSR" href="musr-root.html" />
|
||||
<link rel="prev" title="msr2data - A Program for Automatically Processing Multiple musrfit msr Files" href="msr2data.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>any2many - a Universal μSR-file-format converter</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -68,8 +68,8 @@ For a detailed description see <a class="reference internal" href="user-manual.h
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Bugtracking — musrfit 1.7.6 documentation</title>
|
||||
<title>Bugtracking — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,12 +24,12 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="prev" title="Acknowledgements" href="acknowledgement.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Bugtracking</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -64,8 +64,8 @@ or send an e-mail to A. Suter at PSI.</p>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>How to Cite musrfit? — musrfit 1.7.6 documentation</title>
|
||||
<title>How to Cite musrfit? — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="Tutorial for musrfit" href="tutorial.html" />
|
||||
<link rel="prev" title="Welcome to the musrfit documentation!" href="index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>How to Cite musrfit?</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -80,8 +80,8 @@
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Index — musrfit 1.7.6 documentation</title>
|
||||
<title>Index — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -25,11 +25,11 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Index</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -88,21 +88,25 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-19">addrun</a>
|
||||
<dt><a href="user-manual.html#index-20">addrun</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-36">addt0-asymmetry</a>
|
||||
<dt><a href="user-manual.html#index-10">addRunApp</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-35">addt0-single-histo</a>
|
||||
<dt><a href="user-manual.html#index-37">addt0-asymmetry</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-36">addt0-single-histo</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-21">alpha-beta</a>
|
||||
<dt><a href="user-manual.html#index-22">alpha-beta</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -110,11 +114,11 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-70">asymmetry-fit</a>
|
||||
<dt><a href="user-manual.html#index-71">asymmetry-fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-71">asymmetry-rrf-fit</a>
|
||||
<dt><a href="user-manual.html#index-72">asymmetry-rrf-fit</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -124,19 +128,19 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-23">backgr.fit</a>
|
||||
<dt><a href="user-manual.html#index-24">backgr.fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-28">backgr.fix</a>
|
||||
<dt><a href="user-manual.html#index-29">backgr.fix</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-30">background-asymmetry</a>
|
||||
<dt><a href="user-manual.html#index-31">background-asymmetry</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-29">background-single-histo</a>
|
||||
<dt><a href="user-manual.html#index-30">background-single-histo</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -150,7 +154,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-73">bnmr-asymmetry-fit</a>
|
||||
<dt><a href="user-manual.html#index-74">bnmr-asymmetry-fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -175,14 +179,10 @@
|
||||
<dt><a href="cite.html#index-0">cite</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-dks.html#index-2">cuda-install</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="setup-standard.html#index-21">cygwin</a>
|
||||
<dt><a href="setup-dks.html#index-2">cuda-install</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -192,11 +192,11 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-32">data-asymmetry</a>
|
||||
<dt><a href="user-manual.html#index-33">data-asymmetry</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-31">data-single-histo</a>
|
||||
<dt><a href="user-manual.html#index-32">data-single-histo</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -204,7 +204,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-42">dks-command-overview</a>
|
||||
<dt><a href="user-manual.html#index-43">dks-command-overview</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -250,61 +250,61 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-30">fink</a>
|
||||
<dt><a href="setup-standard.html#index-24">fink</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-38">fit</a>
|
||||
<dt><a href="user-manual.html#index-39">fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-67">fit-types</a>
|
||||
<dt><a href="user-manual.html#index-68">fit-types</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-20">fittype</a>
|
||||
<dt><a href="user-manual.html#index-21">fittype</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-26">forward</a>
|
||||
<dt><a href="user-manual.html#index-27">forward</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-27">forward-backward</a>
|
||||
<dt><a href="user-manual.html#index-28">forward-backward</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-49">fourier-block-apodization</a>
|
||||
<dt><a href="user-manual.html#index-50">fourier-block-apodization</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-48">fourier-block-dc-corrected</a>
|
||||
<dt><a href="user-manual.html#index-49">fourier-block-dc-corrected</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-47">fourier-block-fourier_power</a>
|
||||
<dt><a href="user-manual.html#index-48">fourier-block-fourier_power</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-51">fourier-block-phase</a>
|
||||
<dt><a href="user-manual.html#index-52">fourier-block-phase</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-50">fourier-block-plot</a>
|
||||
<dt><a href="user-manual.html#index-51">fourier-block-plot</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-53">fourier-block-range</a>
|
||||
<dt><a href="user-manual.html#index-54">fourier-block-range</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-52">fourier-block-range_for_phase_correction</a>
|
||||
<dt><a href="user-manual.html#index-53">fourier-block-range_for_phase_correction</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-46">fourier-block-units</a>
|
||||
<dt><a href="user-manual.html#index-47">fourier-block-units</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -382,7 +382,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-24">lifetime</a>
|
||||
<dt><a href="user-manual.html#index-25">lifetime</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -414,15 +414,15 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="setup-standard.html#index-27">macports</a>
|
||||
<dt><a href="setup-standard.html#index-21">macports</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-25">map</a>
|
||||
<dt><a href="user-manual.html#index-26">map</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-16">meta-information</a>
|
||||
<dt><a href="user-manual.html#index-17">meta-information</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -430,99 +430,99 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-41">minuit2-command-overview</a>
|
||||
<dt><a href="user-manual.html#index-42">minuit2-command-overview</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-40">msr-commands-block</a>
|
||||
<dt><a href="user-manual.html#index-41">msr-commands-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-44">msr-commands-block-dks</a>
|
||||
<dt><a href="user-manual.html#index-45">msr-commands-block-dks</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-11">msr-file-format</a>
|
||||
<dt><a href="user-manual.html#index-12">msr-file-format</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-13">msr-fitparameter-block</a>
|
||||
<dt><a href="user-manual.html#index-14">msr-fitparameter-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-45">msr-fourier-block</a>
|
||||
<dt><a href="user-manual.html#index-46">msr-fourier-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-15">msr-functions-block</a>
|
||||
<dt><a href="user-manual.html#index-16">msr-functions-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-17">msr-global-block</a>
|
||||
<dt><a href="user-manual.html#index-18">msr-global-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-54">msr-plot-block</a>
|
||||
<dt><a href="user-manual.html#index-55">msr-plot-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-55">msr-plot-block-lifetimecorrection</a>
|
||||
<dt><a href="user-manual.html#index-56">msr-plot-block-lifetimecorrection</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-61">msr-plot-block-logx</a>
|
||||
<dt><a href="user-manual.html#index-62">msr-plot-block-logx</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-62">msr-plot-block-logy</a>
|
||||
<dt><a href="user-manual.html#index-63">msr-plot-block-logy</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-57">msr-plot-block-range</a>
|
||||
<dt><a href="user-manual.html#index-58">msr-plot-block-range</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-64">msr-plot-block-rrf_freq</a>
|
||||
<dt><a href="user-manual.html#index-65">msr-plot-block-rrf_freq</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-63">msr-plot-block-rrf_packing</a>
|
||||
<dt><a href="user-manual.html#index-64">msr-plot-block-rrf_packing</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-65">msr-plot-block-rrf_phase</a>
|
||||
<dt><a href="user-manual.html#index-66">msr-plot-block-rrf_phase</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-56">msr-plot-block-runs</a>
|
||||
<dt><a href="user-manual.html#index-57">msr-plot-block-runs</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-58">msr-plot-block-sub_ranges</a>
|
||||
<dt><a href="user-manual.html#index-59">msr-plot-block-sub_ranges</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-59">msr-plot-block-use_fit_ranges</a>
|
||||
<dt><a href="user-manual.html#index-60">msr-plot-block-use_fit_ranges</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-60">msr-plot-block-view_packing</a>
|
||||
<dt><a href="user-manual.html#index-61">msr-plot-block-view_packing</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-18">msr-run-block</a>
|
||||
<dt><a href="user-manual.html#index-19">msr-run-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-66">msr-statistc-block</a>
|
||||
<dt><a href="user-manual.html#index-67">msr-statistc-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-14">msr-theory-block</a>
|
||||
<dt><a href="user-manual.html#index-15">msr-theory-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-12">msr-title-block</a>
|
||||
<dt><a href="user-manual.html#index-13">msr-title-block</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -549,6 +549,8 @@
|
||||
<dt><a href="mupp.html#index-0">mupp</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="mupp.html#index-1">mupp-gui</a>
|
||||
</dt>
|
||||
@ -557,8 +559,6 @@
|
||||
<dt><a href="mupp.html#index-2">mupp-scripting</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="mupp.html#index-3">mupp-usage</a>
|
||||
</dt>
|
||||
@ -568,7 +568,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-35">musredit-build-macos</a>
|
||||
<dt><a href="setup-standard.html#index-29">musredit-build-macos</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -580,10 +580,6 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-26">musredit-install-windows</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="musredit.html#index-1">musredit_startup</a>
|
||||
</dt>
|
||||
|
||||
@ -596,11 +592,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-34">musrfit-build-cmake-macos</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-25">musrfit-build-cmake-windows</a>
|
||||
<dt><a href="setup-standard.html#index-28">musrfit-build-cmake-macos</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -608,15 +600,11 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-33">musrfit-build-macos</a>
|
||||
<dt><a href="setup-standard.html#index-27">musrfit-build-macos</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-24">musrfit-build-windows</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-43">musrfit-command-block-details</a>
|
||||
<dt><a href="user-manual.html#index-44">musrfit-command-block-details</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -624,7 +612,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-10">musrfit-startup</a>
|
||||
<dt><a href="user-manual.html#index-11">musrfit-startup</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -706,7 +694,7 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-72">negative-muon-musr-fit</a>
|
||||
<dt><a href="user-manual.html#index-73">negative-muon-musr-fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -714,7 +702,7 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-31">nexus-build-fink</a>
|
||||
<dt><a href="setup-standard.html#index-25">nexus-build-fink</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -724,19 +712,15 @@
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="setup-standard.html#index-28">nexus-build-macports</a>
|
||||
<dt><a href="setup-standard.html#index-22">nexus-build-macports</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-22">nexus-build-windows</a>
|
||||
<dt><a href="user-manual.html#index-75">non-musr-fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-74">non-musr-fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-22">norm</a>
|
||||
<dt><a href="user-manual.html#index-23">norm</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -756,7 +740,7 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-39">packing</a>
|
||||
<dt><a href="user-manual.html#index-40">packing</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -794,11 +778,11 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-78">rge-handler</a>
|
||||
<dt><a href="user-manual.html#index-79">rge-handler</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-32">root-build-fink</a>
|
||||
<dt><a href="setup-standard.html#index-26">root-build-fink</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -808,11 +792,7 @@
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="setup-standard.html#index-29">root-build-macports</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="setup-standard.html#index-23">root-build-windows</a>
|
||||
<dt><a href="setup-standard.html#index-23">root-build-macports</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -834,13 +814,13 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-68">single-histogram-fit</a>
|
||||
<dt><a href="user-manual.html#index-69">single-histogram-fit</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-69">single-histogram-rrf-fit</a>
|
||||
<dt><a href="user-manual.html#index-70">single-histogram-rrf-fit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -858,15 +838,15 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-34">t0-asymmetry</a>
|
||||
<dt><a href="user-manual.html#index-35">t0-asymmetry</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-33">t0-single-histo</a>
|
||||
<dt><a href="user-manual.html#index-34">t0-single-histo</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-79">technical-musrfit</a>
|
||||
<dt><a href="user-manual.html#index-80">technical-musrfit</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -898,15 +878,15 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-75">user-functions</a>
|
||||
<dt><a href="user-manual.html#index-76">user-functions</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-77">user-functions-with-global-part</a>
|
||||
<dt><a href="user-manual.html#index-78">user-functions-with-global-part</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="user-manual.html#index-76">user-functions-without-global-part</a>
|
||||
<dt><a href="user-manual.html#index-77">user-functions-without-global-part</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -954,7 +934,7 @@
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="user-manual.html#index-37">xy-data</a>
|
||||
<dt><a href="user-manual.html#index-38">xy-data</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
@ -972,8 +952,8 @@
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Welcome to the musrfit documentation! — musrfit 1.7.6 documentation</title>
|
||||
<title>Welcome to the musrfit documentation! — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,12 +24,12 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="#" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="#" />
|
||||
<link rel="next" title="How to Cite musrfit?" href="cite.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="#">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Welcome to the musrfit documentation!</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -145,8 +145,8 @@
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>msr2data - A Program for Automatically Processing Multiple musrfit msr Files — musrfit 1.7.6 documentation</title>
|
||||
<title>msr2data - A Program for Automatically Processing Multiple musrfit msr Files — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="any2many - a Universal μSR-file-format converter" href="any2many.html" />
|
||||
<link rel="prev" title="mupp - μSR Parameter Plotter" href="mupp.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>msr2data - A Program for Automatically Processing Multiple musrfit msr Files</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -380,8 +380,8 @@ fit serves as template for the second and so on. The template field stays empty
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>mupp - μSR Parameter Plotter — musrfit 1.7.6 documentation</title>
|
||||
<title>mupp - μSR Parameter Plotter — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="msr2data - A Program for Automatically Processing Multiple musrfit msr Files" href="msr2data.html" />
|
||||
<link rel="prev" title="musredit: the GUI Based Interface to musrfit" href="musredit.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>mupp - μSR Parameter Plotter</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -277,8 +277,8 @@ SCRIPT COMMANDS:
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>MusrRoot - an Extensible Open File Format for μSR — musrfit 1.7.6 documentation</title>
|
||||
<title>MusrRoot - an Extensible Open File Format for μSR — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="Acknowledgements" href="acknowledgement.html" />
|
||||
<link rel="prev" title="any2many - a Universal μSR-file-format converter" href="any2many.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>MusrRoot - an Extensible Open File Format for μSR</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -858,8 +858,8 @@ the entry has been added. The last token, <tt class="docutils literal"><span cla
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>musredit: the GUI Based Interface to musrfit — musrfit 1.7.6 documentation</title>
|
||||
<title>musredit: the GUI Based Interface to musrfit — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="mupp - μSR Parameter Plotter" href="mupp.html" />
|
||||
<link rel="prev" title="Setting up musrfit / DKS: High Speed Fitting with GPU’s" href="setup-dks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>musredit: the GUI Based Interface to musrfit</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -491,8 +491,8 @@ the corresponding fit parameter value, except the phases where the step will be
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
Binary file not shown.
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Search — musrfit 1.7.6 documentation</title>
|
||||
<title>Search — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -25,7 +25,7 @@
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/javascript" src="_static/searchtools.js"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("searchindex.js"); });
|
||||
</script>
|
||||
@ -36,7 +36,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Search</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -83,8 +83,8 @@
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
File diff suppressed because one or more lines are too long
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Setting up musrfit / DKS: High Speed Fitting with GPU’s — musrfit 1.7.6 documentation</title>
|
||||
<title>Setting up musrfit / DKS: High Speed Fitting with GPU’s — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="musredit: the GUI Based Interface to musrfit" href="musredit.html" />
|
||||
<link rel="prev" title="Setting up musrfit on Different Platforms" href="setup-standard.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Setting up musrfit / DKS: High Speed Fitting with GPU’s</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -266,8 +266,8 @@ The only thing you need <tt class="docutils literal"><span class="pre">DKS</span
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Setting up musrfit on Different Platforms — musrfit 1.7.6 documentation</title>
|
||||
<title>Setting up musrfit on Different Platforms — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="Setting up musrfit / DKS: High Speed Fitting with GPU’s" href="setup-dks.html" />
|
||||
<link rel="prev" title="Documentation of user libs (user functions)" href="user-libs.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Setting up musrfit on Different Platforms</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -120,9 +120,8 @@ and <cite>manjaro <https://de.manjaro.org/></cite>.</dd>
|
||||
<dt><strong>MS Windows</strong></dt>
|
||||
<dd><p class="first">Native <em>MS Windows</em> support is currently not available. Potential ways to get <tt class="docutils literal"><span class="pre">musrfit</span></tt> running are:</p>
|
||||
<ul class="last simple">
|
||||
<li>via installation of Linux via the Microsoft App store for Windows 10.</li>
|
||||
<li>via installation of Linux via the Microsoft App store for Windows 10/11 (see <a class="reference external" href="https://docs.microsoft.com/en-us/windows/wsl/install">Install Linux on Windows with WSL</a>).</li>
|
||||
<li>via installation of the virtual machine on which you install Linux (probably the easiest for most Windows users).</li>
|
||||
<li>via <a class="reference external" href="https://www.cygwin.com/">cygwin</a>.</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
@ -405,14 +404,14 @@ $ musrview test-histo-ROOT-NPP.msr
|
||||
<h2>MS Windows<a class="headerlink" href="#ms-windows" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">The description here is only for the very brave ones. It hasn’t been tested for quite a while and therefore gives you
|
||||
rather a flavour of what needs to be done rather than a real instruction how to setup <tt class="docutils literal"><span class="pre">musrfit</span></tt>. If you just need
|
||||
<tt class="docutils literal"><span class="pre">musrfit</span></tt> to work on a MS Windows platform, it is recommended to install it via a linux virtual machine!</p>
|
||||
<p class="last">For adventurous guys using Windows 10/11, there is the possibility to activate the built in Ubuntu bash-shell. It allows
|
||||
to install <tt class="docutils literal"><span class="pre">musrfit</span></tt> as described in the Linux section. For details to setup the Linux sub-system for MS Windows
|
||||
see <a class="reference external" href="https://docs.microsoft.com/en-us/windows/wsl/install">Install Linux on Windows with WSL</a>.</p>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">For adventurous guys using Windows 10, there is the possibility to activate the built in Ubuntu bash-shell. It allows
|
||||
to install <tt class="docutils literal"><span class="pre">musrfit</span></tt> as described in the Linux section.</p>
|
||||
<p class="last">Another possibility is to setup linux as a virtual machine with VirtualBox are other alike tools. This way you separate
|
||||
Linux / ROOT / musrfit from the default MS Windows system.</p>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
@ -420,259 +419,13 @@ to install <tt class="docutils literal"><span class="pre">musrfit</span></tt> as
|
||||
in the absolute path or in case you do, do not wonder if some errors occur! msr files, however, might be saved in such
|
||||
directories like <tt class="docutils literal"><span class="pre">...\My</span> <span class="pre">Documents\...</span></tt></p>
|
||||
</div>
|
||||
<p>Under Windows a native installation is not supported but there is the possibility to run musrfit through <a class="reference external" href="https://www.cygwin.com/">cygwin</a>
|
||||
which has the great advantage that one gains additionally various nice UNIX tools also for other purposes.
|
||||
Please also be aware of the fact that the X server which is going to be installed with <tt class="docutils literal"><span class="pre">Cygwin</span></tt> has to be started
|
||||
(<em>e.g.</em> by selecting it from the “Programs” folder) before any graphical application (<tt class="docutils literal"><span class="pre">musrview</span></tt>, <tt class="docutils literal"><span class="pre">musrgui</span></tt>, etc.) is started.</p>
|
||||
<div class="section" id="id5">
|
||||
<h3>Requirements<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="setting-up-cygwin">
|
||||
<span id="index-21"></span><h4>Setting up Cygwin<a class="headerlink" href="#setting-up-cygwin" title="Permalink to this headline">¶</a></h4>
|
||||
<p>For the start go to the Cygwin website, download the setup file and use it to install Cygwin 1.7 or newer. During the installation
|
||||
process you will be asked where you want to install Cygwin and normally the default choice should just be fine. At some point you
|
||||
will be asked which packages should be installed. Make sure that you choose at least the following (or packages with revisions close
|
||||
to the following) in order to fulfill the <tt class="docutils literal"><span class="pre">musrfit</span></tt> requirements and be able to work with this base system:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span></span>a2ps, alternatives, autoconf, automake, base-cygwin, base-files, base-passwd bash, bash-completion,
|
||||
bc, binutils, bison, boost, boost-devel, bzip2, cmake, colorgcc, coreutils, curl, cygutils, cygwin,
|
||||
editrights, fftw3, findutils, flex, font-adobe-dpi100, font-adobe-dpi75, font-alias,
|
||||
font-bitstream-dpi100, font-bitstream-dpi75, font-encodings, font-ibm-type1, font-sun-misc, font-util,
|
||||
font-xfree86-type1, fontconfig, freeglut, gawk, gcc-tools-autoconf, gcc-tools-automake, gcc4,
|
||||
gcc4-core, gcc4-fortran, gcc4-g++, gccmakedep, gd, gettext, ghostscript, ghostscript-fonts-std,
|
||||
giflib, gmp, grep, groff, gsl, gsl-apps, gsl-devel, gv, gzip, inputproto, jasper, jpeg, lapack,
|
||||
less, libboost, libbz2_1, libcharset1, libcurl4, libfftw3-devel, libfftw3_3, libgcc1, libgd-devel,
|
||||
libgif-devel, libGL-devel, libGL1, libGLU-devel, libGLU1, libglut-devel, libglut3, libgmp-devel,
|
||||
libgmp3, libgomp1, libICE-devel, libICE6, libjpeg-devel, libjpeg62, liblapack-devel, libmpfr-devel,
|
||||
libmpfr1, libncurses-devel, libncurses9, libOSMesa-devel, libOSMesa7, libpng, libpng14, libpng14-devel,
|
||||
libreadline6, libSM-devel, libSM6, libssh2_1, libstdc++6, libstdc++6-devel, libtiff-devel, libtiff5,
|
||||
libtool, libX11-devel, libX11_6, libXau-devel, libXau6, libXaw7, libxcb-devel, libxcb-xlib-devel,
|
||||
libXcursor-devel, libXcursor1, libXdmcp-devel, libXdmcp6, libXext-devel, libXext6, libXfixes-devel,
|
||||
libXfixes3, libXfont-devel, libXfont1, libXft-devel, libXft2, libXi-devel, libXi6, libxkbfile1,
|
||||
libxml2, libxml2-devel, libXmu-devel, libXmu6, libXpm-devel, libXpm4, libXrender-devel, libXrender1,
|
||||
libXt-devel, libXt6, login, m4, make, makedepend, man, mpfr, nano, opengl, openssh, openssl, pdftk,
|
||||
perl, ping, pkg-config, psutils, python, qt3, qt3-bin, qt3-devel, readline, rebase, rgb, rsync, run,
|
||||
screen, sed, subversion, tar, tcltk, terminfo, unzip, util-linux, vim, w32api, which,
|
||||
X-start-menu-icons, xauth, xextproto, xfontsel, xinit, xkbcomp, xkeyboard-config, xkill, xlogo,
|
||||
xlsfonts, xorg-cf-files, xorg-scripts, xorg-server, xproto, xrdb, xrefresh, xset, xterm, zip, zlib,
|
||||
zlib-devel, zlib0, libQt3Support4-devel, libQtAssistantClient4-devel, libQtCore4-devel,
|
||||
libQtDBus4-devel, libQtDesigner4-devel, libQtGui4-devel, libQtHelp4-devel, libQtNetwork4-devel,
|
||||
libQtOpenGL4-devel, libQtScript4-devel, libQtScriptTools4-devel, libQtSql4-devel, libQtSvg4-devel,
|
||||
libQtTest4-devel, libQtWebKit4-devel, libQtXml4-devel, libQtXmlPatterns4-devel
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>After these installations already most of the required software is present and the Cygwin shell can be started now for the further steps!
|
||||
Inside the shell the POSIX naming convention applies, therefore, paths will be given with separating “/” instead of “” in DOS. The file
|
||||
structure accessible through this shell can also be accessed through the Windows Explorer — just go to the directory which you specified
|
||||
as “cygwin root” during the installation: this is the equivalent to “/” in the shell. By default, the different hard drives or network shares
|
||||
like <tt class="docutils literal"><span class="pre">C:\</span></tt> can be found at <tt class="docutils literal"><span class="pre">/cygdrive/c/</span></tt> in the shell — the cygdrive prefix can in principle also be changed but for now we stick to the default.</p>
|
||||
<p>Since later on the boost header files should be used and in the standard Cygwin installation these are found at a version specific location,
|
||||
the later handling will be easier if a symbolic link to these files is created now in the terminal (in case it had not been present before):</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ ln -sf /usr/include/boost-x_yy_z/boost /usr/include/boost
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>where <tt class="docutils literal"><span class="pre">x_yy_z</span></tt> has to be substituted by the correct version number, <em>e.g.</em> <tt class="docutils literal"><span class="pre">1_33_1</span></tt>.</p>
|
||||
</div>
|
||||
<div class="section" id="id6">
|
||||
<h4>Everything but ROOT and NeXus<a class="headerlink" href="#id6" title="Permalink to this headline">¶</a></h4>
|
||||
</div>
|
||||
<div class="section" id="index-22">
|
||||
<span id="id7"></span><h4>Installation of NeXus requirements (optional)<a class="headerlink" href="#index-22" title="Permalink to this headline">¶</a></h4>
|
||||
<p>Only if <tt class="docutils literal"><span class="pre">musrfit</span></tt> should support reading data files in the <tt class="docutils literal"><span class="pre">NeXus</span></tt> format the further required software has
|
||||
to be set up. Under <tt class="docutils literal"><span class="pre">Cygwin</span></tt> of all the required libraries only <tt class="docutils literal"><span class="pre">HDF5</span></tt> is available. The packages <tt class="docutils literal"><span class="pre">hdf5</span></tt> and
|
||||
<tt class="docutils literal"><span class="pre">libhdf5-devel</span></tt> can be installed through the <tt class="docutils literal"><span class="pre">Cygwin</span></tt> setup. One should also make sure that <tt class="docutils literal"><span class="pre">bison</span></tt>, <tt class="docutils literal"><span class="pre">flex</span></tt>
|
||||
and a package containing <tt class="docutils literal"><span class="pre">/usr/lib/librpc.a</span></tt> (<em>e.g.</em> <tt class="docutils literal"><span class="pre">sunrpc</span> <span class="pre">=</span> <span class="pre">4.0-3</span></tt>, but <em>not</em> <tt class="docutils literal"><span class="pre">sunrpc</span> <span class="pre">=</span> <span class="pre">4.0-4</span></tt>) are installed.</p>
|
||||
<p><strong>Only NeXus Version ≥ 4.4 is support!</strong></p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span>
|
||||
$ mkdir nexus
|
||||
$ <span class="nb">cd</span> nexus
|
||||
$ curl http://www.hdfgroup.org/ftp/lib-external/jpeg/src/jpegsrc.v6b.tar.gz -G <span class="p">|</span> tar xz
|
||||
$ <span class="nb">cd</span> jpeg-6b
|
||||
$ ./configure --prefix<span class="o">=</span>/usr/local --enable-static
|
||||
$ make
|
||||
$ make install
|
||||
$ <span class="nb">cd</span> ..
|
||||
$ <span class="c1"># create a directory for the NeXus source code</span>
|
||||
$ mkdir nexus
|
||||
$ <span class="nb">cd</span> nexus
|
||||
$ <span class="c1"># get the source code from the master repository</span>
|
||||
$ git clone https://github.com/nexusformat/code.git
|
||||
$ <span class="c1"># next we will build NeXus out-of-source</span>
|
||||
$ mkdir build
|
||||
$ <span class="nb">cd</span> build
|
||||
$ cmake -DENABLE_HDF5<span class="o">=</span><span class="m">1</span> -DENABLE_HDF4<span class="o">=</span><span class="m">1</span> -DENABLE_MXML<span class="o">=</span><span class="m">0</span> ../code
|
||||
$ make
|
||||
$ make install
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-23">
|
||||
<span id="id8"></span><h4>ROOT<a class="headerlink" href="#index-23" title="Permalink to this headline">¶</a></h4>
|
||||
<p>In order to install the <tt class="docutils literal"><span class="pre">ROOT</span></tt> system, there are two possibilities:</p>
|
||||
<ul>
|
||||
<li><p class="first">Download the precompiled Cygwin GCC 4.3 (or newer) package of the most recent <tt class="docutils literal"><span class="pre">ROOT</span></tt> version
|
||||
from the <a class="reference external" href="https://root.cern.ch/downloading-root">web page</a> and unpack it in a <tt class="docutils literal"><span class="pre">Cygwin</span></tt> shell
|
||||
(in order to get the line endings correctly) at the final location. Suppose the package has been
|
||||
downloaded to <tt class="docutils literal"><span class="pre">C:\</span></tt> and the <tt class="docutils literal"><span class="pre">ROOT</span></tt> tree should be in <tt class="docutils literal"><span class="pre">C:\root</span></tt>, this is achieved by:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> /cygdrive/c
|
||||
$ tar xzf root_v5.xx.yy.win32gcc-gcc-4.3.tar.gz
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p class="first">If due to some reason there was no precompiled Cygwin GCC 4.3 package available or <tt class="docutils literal"><span class="pre">ROOT</span></tt> should
|
||||
be built from source, one has to visit the <a class="reference external" href="https://root.cern.ch/downloading-root">web page</a>,
|
||||
download the ‘complete source tree for all systems’ and save it for instance in <tt class="docutils literal"><span class="pre">C:\</span></tt>.
|
||||
Then go to the Cygwin shell and unpack this source tree, configure it (here using the minimal set of options)
|
||||
and compile it as follows right below:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> /cygdrive/c
|
||||
$ tar xzf root_v5.xx.yy.source.tar.gz
|
||||
$ <span class="nb">cd</span> root
|
||||
$ ./configure win32gcc --gminimal --enable-asimage --enable-mathmore --enable-minuit2 --enable-xml
|
||||
$ make
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p class="first">In order to finalize the <tt class="docutils literal"><span class="pre">ROOT</span></tt> installation and to prepare already the installation of <tt class="docutils literal"><span class="pre">musrfit</span></tt> and
|
||||
<tt class="docutils literal"><span class="pre">musredit</span></tt> this is a good time for setting necessary environment variables for the use in Cygwin. For
|
||||
accomplishing that put the following lines at the end of the <tt class="docutils literal"><span class="pre">/home/Username/.bashrc</span></tt> (<tt class="docutils literal"><span class="pre">C:\cygwin\home\Username\.bashrc</span></tt>
|
||||
for the user <tt class="docutils literal"><span class="pre">Username</span></tt> and the <tt class="docutils literal"><span class="pre">cygwin</span> <span class="pre">root</span></tt> at <tt class="docutils literal"><span class="pre">C:\cygwin</span></tt>):</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">DISPLAY</span><span class="o">=</span>:0.0
|
||||
<span class="nb">export</span> <span class="nv">QTDIR</span><span class="o">=</span>/usr/lib/qt4
|
||||
<span class="nb">export</span> <span class="nv">ROOTSYS</span><span class="o">=</span>/cygdrive/c/root
|
||||
<span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/bin:<span class="nv">$QTDIR</span>/bin:/usr/i686-pc-cygwin/bin:<span class="nv">$PATH</span>
|
||||
<span class="nb">export</span> <span class="nv">MUSRFITPATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/bin
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Afterwards close the Cygwin shell and reopen it again for the installation of <tt class="docutils literal"><span class="pre">musrfit</span></tt>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-24">
|
||||
<span id="id9"></span><h3>musrfit<a class="headerlink" href="#index-24" title="Permalink to this headline">¶</a></h3>
|
||||
<p>First, the most recent source code should be downloaded. The preferred way of doing so is to clone the <tt class="docutils literal"><span class="pre">musrfit</span></tt>
|
||||
repository via git. Assuming the code should be located in <tt class="docutils literal"><span class="pre">~/musrfit</span></tt> this is achieved most easily calling from the terminal</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span>
|
||||
$ git clone https://bitbucket.org/muonspin/musrfit.git
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>or</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span>
|
||||
$ git clone git://gitlab.psi.ch/nemu/musrfit.git
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If the repository had been checked out already before, one can update the local copy using:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> musrfit
|
||||
$ git pull
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>As an alternative (if git is not available), the source code can also be downloaded from the following
|
||||
web-page: <a class="reference external" href="https://bitbucket.org/muonspin/musrfit/downloads">musrfit at bitbucket</a>.</p>
|
||||
<div class="section" id="index-25">
|
||||
<span id="id10"></span><h4>musrfit build with cmake<a class="headerlink" href="#index-25" title="Permalink to this headline">¶</a></h4>
|
||||
<p>Currently the following configuration switches for <tt class="docutils literal"><span class="pre">musrfit</span></tt> are available:</p>
|
||||
<dl class="docutils">
|
||||
<dt><strong>-DCMAKE_INSTALL_PREFIX=<prefix-path></strong></dt>
|
||||
<dd>Specify the installation prefix, <em>i.e.</em> the place where <tt class="docutils literal"><span class="pre">musrfit</span></tt> shall be installed, <em>e.g.</em> <tt class="docutils literal"><span class="pre">$ROOTSYS</span></tt> if already defined (by default: <tt class="docutils literal"><span class="pre">/usr/local</span></tt>)</dd>
|
||||
<dt><strong>-Dnexus=<value></strong></dt>
|
||||
<dd>enable/disable the support of <tt class="docutils literal"><span class="pre">NeXus</span></tt> data files (requires the <tt class="docutils literal"><span class="pre">HDF4</span></tt>, <tt class="docutils literal"><span class="pre">HDF5</span></tt> and <tt class="docutils literal"><span class="pre">NeXus</span></tt> libraries to be installed).
|
||||
<value>=1 enables <tt class="docutils literal"><span class="pre">NeXus</span></tt>, <value>=0 disables <tt class="docutils literal"><span class="pre">NeXus</span></tt>. The default setting, <em>i.e.</em> the switch is not provided is <tt class="docutils literal"><span class="pre">NeXus</span></tt> support is disabled.</dd>
|
||||
<dt><strong>-DASlibs=<value></strong></dt>
|
||||
<dd>enable/disable the <tt class="docutils literal"><span class="pre">ASlibs</span></tt>. <value>=1 enables the <tt class="docutils literal"><span class="pre">ASlibs</span></tt>, <value>=0 disables the <tt class="docutils literal"><span class="pre">ASlibs</span></tt>.
|
||||
The default setting, <em>i.e.</em> the switch is not provided is <tt class="docutils literal"><span class="pre">ASlibs</span></tt> support is <em>disabled</em>. For details see Documentation of <a class="reference internal" href="user-libs.html#user-libs"><em>user libs</em></a>.</dd>
|
||||
<dt><strong>-DBMWlibs=<value></strong></dt>
|
||||
<dd>enable/disable the <tt class="docutils literal"><span class="pre">BMWlibs</span></tt>. <value>=1 enables the <tt class="docutils literal"><span class="pre">BMWlibs</span></tt>, <value>=0 disables the <tt class="docutils literal"><span class="pre">BMWlibs</span></tt>.
|
||||
The default setting, <em>i.e.</em> the switch is not provided is <tt class="docutils literal"><span class="pre">BMWlibs</span></tt> support is <em>disabled</em>. For details see Documentation of <a class="reference internal" href="user-libs.html#user-libs"><em>user libs</em></a>.</dd>
|
||||
<dt><strong>-DBNMRlibs=<value></strong></dt>
|
||||
<dd>enable/disable the <tt class="docutils literal"><span class="pre">BNMRlibs</span></tt>. <value>=1 enables the <tt class="docutils literal"><span class="pre">BNMRlibs</span></tt>, <value>=0 disables the <tt class="docutils literal"><span class="pre">BNMRlibs</span></tt>.
|
||||
The default setting, <em>i.e.</em> the switch is not provided is <tt class="docutils literal"><span class="pre">BNMRlibs</span></tt> support is <em>disabled</em>.</dd>
|
||||
<dt><strong>-Dqt_based_tools=<value></strong></dt>
|
||||
<dd>Will try to get <tt class="docutils literal"><span class="pre">musredit</span></tt>, <tt class="docutils literal"><span class="pre">musrWiz</span></tt>, <tt class="docutils literal"><span class="pre">musrStep</span></tt>, and <tt class="docutils literal"><span class="pre">mupp</span></tt> installed, if <tt class="docutils literal"><span class="pre">Qt</span></tt> is found.
|
||||
By default this is <em>enabled</em>. Again <value>=0 means disabled, <value>=1 enabled.</dd>
|
||||
<dt><strong>-Dqt_version=<value></strong></dt>
|
||||
<dd>Allows to specify which <tt class="docutils literal"><span class="pre">Qt</span></tt> version shall be tried. <value> can take the values: <tt class="docutils literal"><span class="pre">AUTO,</span> <span class="pre">3,</span> <span class="pre">4,</span> <span class="pre">5,</span> <span class="pre">6</span></tt>.
|
||||
If the value is set to <tt class="docutils literal"><span class="pre">AUTO</span></tt>, this highest installed version is chosen, otherwise the specified version is used.</dd>
|
||||
<dt><strong>-Dtry_OpenMP=<value></strong></dt>
|
||||
<dd>Will check if <tt class="docutils literal"><span class="pre">OpenMP</span></tt> support is possible, and if yes use it. The default is <em>enabled</em>.</dd>
|
||||
</dl>
|
||||
<p>Normally it should not be necessary to make use of any of the options except for specifying the installation path with
|
||||
<tt class="docutils literal"><span class="pre">-DCMAKE_INSTALL_PREFIX</span></tt>. <tt class="docutils literal"><span class="pre">musrfit</span></tt> build with <tt class="docutils literal"><span class="pre">cmake</span></tt> takes the out-of-source approach. Therefore a typical
|
||||
configuration / make / install process including <tt class="docutils literal"><span class="pre">NeXus</span></tt> support would look like</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> <span class="nv">$HOME</span>/Apps/musrfit
|
||||
$ mkdir build
|
||||
$ <span class="nb">cd</span> build
|
||||
$ cmake ../ -DCMAKE_INSTALL_PREFIX<span class="o">=</span><span class="nv">$ROOTSYS</span> -Dnexus<span class="o">=</span><span class="m">1</span>
|
||||
<span class="c1"># below it is assumed that multiple cores are present, hence the -j8 option</span>
|
||||
$ cmake --build ./ --clean-first -- -j8
|
||||
$ make install
|
||||
$ /sbin/ldconfig <span class="c1"># (as superuser)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-26">
|
||||
<span id="id11"></span><h3>musredit<a class="headerlink" href="#index-26" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In the latest version of <tt class="docutils literal"><span class="pre">musrfit</span></tt> the configure script tries to determine automatically if
|
||||
Qt4.5 or higher is set up on the machine. In case this is found, the editor <tt class="docutils literal"><span class="pre">musredit</span></tt> is built
|
||||
readily with <tt class="docutils literal"><span class="pre">musrfit</span></tt>. If not, try the following:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> src/musredit
|
||||
$ qmake-qt4 musredit.pro
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If everything went fine <tt class="docutils literal"><span class="pre">musredit</span></tt> can be compiled and installed:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ make
|
||||
$ make install
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>In case one likes to get the editor started just with starting the X server from the Windows start
|
||||
menu the file <tt class="docutils literal"><span class="pre">~/.startxwinrc</span></tt> with the following contents can be created:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
|
||||
|
||||
<span class="nb">export</span> <span class="nv">DISPLAY</span><span class="o">=</span>:0.0
|
||||
<span class="nb">export</span> <span class="nv">QTDIR</span><span class="o">=</span>/usr/lib/qt4
|
||||
<span class="nb">export</span> <span class="nv">ROOTSYS</span><span class="o">=</span>/cygdrive/c/root
|
||||
<span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/bin:<span class="nv">$QTDIR</span>/bin:/usr/i686-pc-cygwin/bin:<span class="nv">$PATH</span>
|
||||
<span class="nb">export</span> <span class="nv">MUSRFITPATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/bin
|
||||
|
||||
musredit <span class="p">&</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="musrgui-depreciated">
|
||||
<h3>musrgui (depreciated)<a class="headerlink" href="#musrgui-depreciated" title="Permalink to this headline">¶</a></h3>
|
||||
<p>If <tt class="docutils literal"><span class="pre">Qt4.5</span></tt> or higher is not available but <tt class="docutils literal"><span class="pre">Qt3</span></tt> is set up <tt class="docutils literal"><span class="pre">musrgui</span></tt> can be installed. For this
|
||||
please follow the instructions for the <tt class="docutils literal"><span class="pre">musredit</span></tt> installation where simply every <tt class="docutils literal"><span class="pre">musredit</span></tt> occurrence
|
||||
has to be replaced by <tt class="docutils literal"><span class="pre">musrgui</span></tt>, and <tt class="docutils literal"><span class="pre">qt4</span></tt> is replaced by <tt class="docutils literal"><span class="pre">qt3</span></tt>.</p>
|
||||
</div>
|
||||
<div class="section" id="id12">
|
||||
<h3>Check the installation<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In order to perform a quick test for finding out if the installation has been completed successfully,
|
||||
a few msr files together with the corresponding data files can be found in the <tt class="docutils literal"><span class="pre">musrfit</span></tt> source tree
|
||||
at doc/examples/.
|
||||
If <tt class="docutils literal"><span class="pre">musrgui</span></tt> has been installed, just open one of the <tt class="docutils literal"><span class="pre">test-*.msr</span></tt> files in the editor and test
|
||||
the <tt class="docutils literal"><span class="pre">musrfit</span></tt> functionalities. Otherwise, if only the terminal should be used, as an initial test
|
||||
for instance the following could be done:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> doc/examples
|
||||
$ musrview test-histo-ROOT-NPP.msr
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="potential-problems">
|
||||
<h3>Potential Problems<a class="headerlink" href="#potential-problems" title="Permalink to this headline">¶</a></h3>
|
||||
<p>It might be that especially when running on Windows 7 <tt class="docutils literal"><span class="pre">musredit</span></tt> and <tt class="docutils literal"><span class="pre">musrgui</span></tt> produce errors like a
|
||||
“STATUS_ACCESS_VIOLATION”. In this case, try to do the following: Close all Cygwin programs (including
|
||||
the terminals and X server) and run from a Windows command prompt (cmd)</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ C:<span class="se">\c</span>ygwin<span class="se">\b</span>in<span class="se">\a</span>sh.exe /bin/rebaseall
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If this does not resolve the problem, try to change the compatibility settings of <tt class="docutils literal"><span class="pre">C:\cygwin\bin\sh.exe</span></tt>
|
||||
and <tt class="docutils literal"><span class="pre">C:\cygwin\bin\bash.exe</span></tt> so that they are executed with administrator privileges.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="mac-os-x-macos">
|
||||
<h2>Mac OS X / macOS<a class="headerlink" href="#mac-os-x-macos" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">macOS 11.3 alias <strong>Big Sur</strong>: <tt class="docutils literal"><span class="pre">musrfit</span></tt> is ready for <strong>Big Sur</strong> on Intel <strong>and</strong> M1 (Apple Silicon) based macs, both running natively.
|
||||
The <tt class="docutils literal"><span class="pre">DKS</span></tt> version of <tt class="docutils literal"><span class="pre">musrfit</span></tt> for macOS <strong>Big Sur</strong> is ready as well.</p>
|
||||
<p class="last">macOS 12 alias <strong>Monterey</strong>: <tt class="docutils literal"><span class="pre">musrfit</span></tt> is ready for <strong>Monterey</strong> on Intel <strong>and</strong> M1 (Apple Silicon) based macs, both running natively.
|
||||
The <tt class="docutils literal"><span class="pre">DKS</span></tt> version of <tt class="docutils literal"><span class="pre">musrfit</span></tt> for macOS <strong>Monterey</strong> is ready as well.</p>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
@ -691,7 +444,7 @@ unistall <tt class="docutils literal"><span class="pre">musrfit</span></tt>, <tt
|
||||
installation of <a class="reference external" href="https://www.macports.org/">MacPorts</a> / <a class="reference external" href="http://www.finkproject.org/">Fink</a> , <tt class="docutils literal"><span class="pre">ROOT</span></tt>, and <tt class="docutils literal"><span class="pre">musrfit</span></tt> from scratch!</p>
|
||||
</div>
|
||||
<div class="section" id="requirements-macports">
|
||||
<span id="index-27"></span><h3>Requirements (MacPorts)<a class="headerlink" href="#requirements-macports" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="index-21"></span><h3>Requirements (MacPorts)<a class="headerlink" href="#requirements-macports" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Before proceeding with the usage of the <tt class="docutils literal"><span class="pre">MacPorts</span></tt> system first a few useful tools provided by Apple together
|
||||
with OS X (on the installation DVD/CDs) should be installed:</p>
|
||||
<blockquote>
|
||||
@ -748,8 +501,8 @@ add a new line pointing to your local copy, <em>e.g.</em></p>
|
||||
</div>
|
||||
<p>With <tt class="docutils literal"><span class="pre">Qt5</span></tt>, <tt class="docutils literal"><span class="pre">musredit</span></tt> will be installed. If it happens that you used <tt class="docutils literal"><span class="pre">musrgui</span></tt> in the past,
|
||||
please change over to <tt class="docutils literal"><span class="pre">musredit</span></tt> since there will be no further development for <tt class="docutils literal"><span class="pre">musrgui</span></tt> anymore!</p>
|
||||
<div class="section" id="index-28">
|
||||
<span id="id13"></span><h4>Installation of NeXus requirements (optional)<a class="headerlink" href="#index-28" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="index-22">
|
||||
<span id="id6"></span><h4>Installation of NeXus requirements (optional)<a class="headerlink" href="#index-22" title="Permalink to this headline">¶</a></h4>
|
||||
<p><em>Only</em> if <tt class="docutils literal"><span class="pre">musrfit</span></tt> should support reading data files in the <tt class="docutils literal"><span class="pre">NeXus</span></tt> format the further required packages are set up:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ sudo port -v install hdf4 hdf5
|
||||
</pre></div>
|
||||
@ -770,8 +523,8 @@ $ sudo make install
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-29">
|
||||
<span id="id14"></span><h4>ROOT<a class="headerlink" href="#index-29" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="index-23">
|
||||
<span id="id7"></span><h4>ROOT<a class="headerlink" href="#index-23" title="Permalink to this headline">¶</a></h4>
|
||||
<p><strong>The default ROOT version is based on ROOT 6.xx/yy!</strong></p>
|
||||
<div class="section" id="root-installed-via-package-installer">
|
||||
<h5>ROOT installed via package installer<a class="headerlink" href="#root-installed-via-package-installer" title="Permalink to this headline">¶</a></h5>
|
||||
@ -848,15 +601,15 @@ into the file <tt class="docutils literal"><span class="pre">~/.MacOSX/environme
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">ROOTSYS</span><span class="o">=</span><span class="nv">$HOME</span>/Applications/root/root_exec
|
||||
<span class="nb">export</span> <span class="nv">MUSRFITPATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/bin
|
||||
<span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/bin:<span class="nv">$QTDIR</span>/bin:<span class="nv">$PATH</span>
|
||||
<span class="nb">export</span> <span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/lib:<span class="nv">$LD_LIBRARY_PATH</span>
|
||||
<span class="nb">export</span> <span class="nv">DYLD_LIBRARY_PATH</span><span class="o">=</span><span class="nv">$ROOTSYS</span>/lib:<span class="nv">$DYLD_LIBRARY_PATH</span>
|
||||
|
||||
launchctl setenv ROOTSYS <span class="nv">$ROOTSYS</span>
|
||||
launchctl setenv MUSRFITPATH <span class="nv">$MUSRFITPATH</span>
|
||||
launchctl setenv PATH <span class="nv">$PATH</span>
|
||||
launchctl setenv LD_LIBRARY_PATH <span class="nv">$LD_LIBRARY_PATH</span>
|
||||
launchctl setenv DYLD_LIBRARY_PATH <span class="nv">$DYLD_LIBRARY_PATH</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>After this you will need to “execute” <tt class="docutils literal"><span class="pre">.profile</span></tt> before proceeding:</p>
|
||||
<p>After this you will need to “execute” <tt class="docutils literal"><span class="pre">.profile</span></tt> or <tt class="docutils literal"><span class="pre">.zprofile</span></tt> before proceeding:</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>$ <span class="nb">source</span> <span class="nv">$HOME</span>/.profile
|
||||
</pre></div>
|
||||
</div>
|
||||
@ -883,7 +636,7 @@ but no proper fix is available. The workaround to get it right is to install the
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="requirements-fink">
|
||||
<span id="index-30"></span><h3>Requirements (Fink)<a class="headerlink" href="#requirements-fink" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="index-24"></span><h3>Requirements (Fink)<a class="headerlink" href="#requirements-fink" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Before proceeding with the usage of the <a class="reference external" href="http://www.finkproject.org/">Fink</a> system first a few useful tools provided by Apple together with OS X (on the installation DVD/CDs) should be installed:</p>
|
||||
<dl class="docutils">
|
||||
<dt><strong>Xcode</strong></dt>
|
||||
@ -940,8 +693,8 @@ specific location, the later handling will be easier if a symbolic link to this
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>where <tt class="docutils literal"><span class="pre">x_yy_z</span></tt> has to be substituted by the correct version number, <em>e.g.</em> <tt class="docutils literal"><span class="pre">1_63_0</span></tt>.</p>
|
||||
<div class="section" id="index-31">
|
||||
<span id="id16"></span><h4>Installation of NeXus requirements (optional)<a class="headerlink" href="#index-31" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="index-25">
|
||||
<span id="id9"></span><h4>Installation of NeXus requirements (optional)<a class="headerlink" href="#index-25" title="Permalink to this headline">¶</a></h4>
|
||||
<p><em>Only</em> if <tt class="docutils literal"><span class="pre">musrfit</span></tt> should support reading data files in the <tt class="docutils literal"><span class="pre">NeXus</span></tt> format the further required
|
||||
packages can be installed through Fink (check for the most recent versions):</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span></span>libjpeg hdf hdf5-cpp11 hdf5-cpp11-shlibs
|
||||
@ -963,11 +716,11 @@ $ sudo make install
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-32">
|
||||
<span id="id17"></span><h4>ROOT<a class="headerlink" href="#index-32" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="index-26">
|
||||
<span id="id10"></span><h4>ROOT<a class="headerlink" href="#index-26" title="Permalink to this headline">¶</a></h4>
|
||||
<p><strong>The default ROOT version is based on ROOT 6.xx/yy!</strong></p>
|
||||
<div class="section" id="id18">
|
||||
<h5>ROOT installed via package installer<a class="headerlink" href="#id18" title="Permalink to this headline">¶</a></h5>
|
||||
<div class="section" id="id11">
|
||||
<h5>ROOT installed via package installer<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h5>
|
||||
<p>The lazy way to get <tt class="docutils literal"><span class="pre">ROOT</span></tt> installed is via package installer. If your macOS is directly supported
|
||||
by the <tt class="docutils literal"><span class="pre">ROOT</span></tt> people you can download the package installer from the <tt class="docutils literal"><span class="pre">ROOT</span></tt> <a class="reference external" href="https://root.cern.ch/downloading-root">download page</a>.
|
||||
Choose the latest <tt class="docutils literal"><span class="pre">ROOT</span></tt> release and download you macOS version dmg-file, <em>e.g.</em> for macOS 10.13 (High Sierra)
|
||||
@ -981,8 +734,8 @@ $ sudo ln -s root_v6.16.00 root
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="id20">
|
||||
<h5>ROOT installed from source<a class="headerlink" href="#id20" title="Permalink to this headline">¶</a></h5>
|
||||
<div class="section" id="id13">
|
||||
<h5>ROOT installed from source<a class="headerlink" href="#id13" title="Permalink to this headline">¶</a></h5>
|
||||
<p>The best way to get <tt class="docutils literal"><span class="pre">ROOT</span></tt> exactly the way needed for <tt class="docutils literal"><span class="pre">musrfit</span></tt> is to install it from source.
|
||||
Before describing it, please make sure that you have installed all required packages listed under
|
||||
<a class="reference internal" href="#supported-operating-systems"><em>Requested Software</em></a> (<em>e.g.</em> <tt class="docutils literal"><span class="pre">fftw</span></tt>, <tt class="docutils literal"><span class="pre">gsl</span></tt>, etc).</p>
|
||||
@ -1012,8 +765,8 @@ $ make install
|
||||
</div>
|
||||
<p>For further details see <a class="reference external" href="https://root.cern.ch/building-root">Installing ROOT from Source</a>.</p>
|
||||
</div>
|
||||
<div class="section" id="id22">
|
||||
<h5>Setting up Environment Variables for ROOT and musrfit<a class="headerlink" href="#id22" title="Permalink to this headline">¶</a></h5>
|
||||
<div class="section" id="id15">
|
||||
<h5>Setting up Environment Variables for ROOT and musrfit<a class="headerlink" href="#id15" title="Permalink to this headline">¶</a></h5>
|
||||
<p>Since Apple in its wisdom decided that programs started from a shell are treated differently than Apps if it is coming to
|
||||
system variables, we need to work harder compared to a Linux system.</p>
|
||||
<p><strong>For Mac OS X < 10.8:</strong></p>
|
||||
@ -1056,8 +809,8 @@ launchctl setenv LD_LIBRARY_PATH <span class="nv">$LD_LIBRARY_PATH</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-33">
|
||||
<span id="id23"></span><h3>musrfit<a class="headerlink" href="#index-33" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="index-27">
|
||||
<span id="id16"></span><h3>musrfit<a class="headerlink" href="#index-27" title="Permalink to this headline">¶</a></h3>
|
||||
<p>First, the most recent source code should be downloaded. First, the most recent source code should be downloaded.
|
||||
The preferred way of doing so is to clone the <tt class="docutils literal"><span class="pre">musrfit</span></tt> repository via git. Assuming the code should be located
|
||||
in <tt class="docutils literal"><span class="pre">~/Applications/musrfit</span></tt> this is achieved most easily calling from the termin</p>
|
||||
@ -1079,8 +832,8 @@ $ git pull
|
||||
</div>
|
||||
<p>As an alternative (<em>if git is not available</em>), the source code can also be downloaded from the following
|
||||
web-page: <a class="reference external" href="https://bitbucket.org/muonspin/musrfit/downloads">musrfit at bitbucket</a>.</p>
|
||||
<div class="section" id="index-34">
|
||||
<span id="id24"></span><h4>musrfit build with cmake<a class="headerlink" href="#index-34" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="index-28">
|
||||
<span id="id17"></span><h4>musrfit build with cmake<a class="headerlink" href="#index-28" title="Permalink to this headline">¶</a></h4>
|
||||
<p>Currently the following configuration switches for <tt class="docutils literal"><span class="pre">musrfit</span></tt> are available:</p>
|
||||
<dl class="docutils">
|
||||
<dt><strong>-DCMAKE_INSTALL_PREFIX=<prefix-path></strong></dt>
|
||||
@ -1120,8 +873,8 @@ $ /sbin/ldconfig <span class="c1"># (as superus
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="id25">
|
||||
<h4>musrfit last step of the installation<a class="headerlink" href="#id25" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="id18">
|
||||
<h4>musrfit last step of the installation<a class="headerlink" href="#id18" title="Permalink to this headline">¶</a></h4>
|
||||
<p>In order to finish the installation of <tt class="docutils literal"><span class="pre">musrfit</span></tt> two more things should be done:</p>
|
||||
<ul class="simple">
|
||||
<li>Define the <tt class="docutils literal"><span class="pre">MUSRFITPATH</span></tt> environment variable containing the path to the <tt class="docutils literal"><span class="pre">musrfit</span></tt> executables and <tt class="docutils literal"><span class="pre">XML</span></tt> files.
|
||||
@ -1137,8 +890,8 @@ detailed information on this XML file refer to the <a class="reference internal"
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-35">
|
||||
<span id="id26"></span><h3>musredit<a class="headerlink" href="#index-35" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="index-29">
|
||||
<span id="id19"></span><h3>musredit<a class="headerlink" href="#index-29" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In the latest version of <tt class="docutils literal"><span class="pre">musrfit</span></tt> the configure script tries to determine automatically the highest
|
||||
available Qt version. In case this is found, the editor <tt class="docutils literal"><span class="pre">musredit</span></tt> is built already together with <tt class="docutils literal"><span class="pre">musrfit</span></tt>.
|
||||
If not, try the following:</p>
|
||||
@ -1174,8 +927,8 @@ accomplish that, add the following lines to <tt class="docutils literal"><span c
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="id27">
|
||||
<h3>Check the installation<a class="headerlink" href="#id27" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id20">
|
||||
<h3>Check the installation<a class="headerlink" href="#id20" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In order to perform a quick test for finding out if the installation has been completed successfully, a few msr
|
||||
files together with the corresponding data files can be found in the musrfit source tree at <tt class="docutils literal"><span class="pre">doc/examples/</span></tt>.
|
||||
If <tt class="docutils literal"><span class="pre">musrgui</span></tt> has been installed, just open one of the <tt class="docutils literal"><span class="pre">test-*.msr</span></tt> files in the editor and test the <tt class="docutils literal"><span class="pre">musrfit</span></tt>
|
||||
@ -1203,8 +956,8 @@ $ musrview test-histo-ROOT-NPP.msr
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Tutorial for musrfit — musrfit 1.7.6 documentation</title>
|
||||
<title>Tutorial for musrfit — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="User manual" href="user-manual.html" />
|
||||
<link rel="prev" title="How to Cite musrfit?" href="cite.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Tutorial for musrfit</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -392,8 +392,8 @@ For a complete description please refer to the manuals of <a class="reference in
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Documentation of user libs (user functions) — musrfit 1.7.6 documentation</title>
|
||||
<title>Documentation of user libs (user functions) — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="Setting up musrfit on Different Platforms" href="setup-standard.html" />
|
||||
<link rel="prev" title="User manual" href="user-manual.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>Documentation of user libs (user functions)</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -611,8 +611,8 @@ K(m)&=\int_0^{\pi/2}\frac{\mathrm d\varphi}{\sqrt{1-m^2\sin^2{\varphi}}},\en
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>User manual — musrfit 1.7.6 documentation</title>
|
||||
<title>User manual — musrfit 1.8.0 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/haiku.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -14,7 +14,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '1.7.6',
|
||||
VERSION: '1.8.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@ -24,13 +24,13 @@
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<link rel="top" title="musrfit 1.7.6 documentation" href="index.html" />
|
||||
<link rel="top" title="musrfit 1.8.0 documentation" href="index.html" />
|
||||
<link rel="next" title="Documentation of user libs (user functions)" href="user-libs.html" />
|
||||
<link rel="prev" title="Tutorial for musrfit" href="tutorial.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1 class="heading"><a href="index.html">
|
||||
<span>musrfit 1.7.6 documentation</span></a></h1>
|
||||
<span>musrfit 1.8.0 documentation</span></a></h1>
|
||||
<h2 class="heading"><span>User manual</span></h2>
|
||||
</div>
|
||||
<div class="topnav">
|
||||
@ -443,12 +443,77 @@ Supported values for <tt class="docutils literal"><span class="pre"><graphic_
|
||||
</div>
|
||||
<p>Will dump the LEM header information of run 3456 including the content of the run summary file.</p>
|
||||
</div>
|
||||
<div class="section" id="addrun">
|
||||
<span id="index-10"></span><h3>addRun<a class="headerlink" href="#addrun" title="Permalink to this headline">¶</a></h3>
|
||||
<p><tt class="docutils literal"><span class="pre">addRun</span></tt> allows to add the histograms of various runs and save the result in a file.
|
||||
This can be done either by a list of runs (option1), or by a run file (option2).</p>
|
||||
<div class="highlight-bash"><div class="highlight"><pre><span></span>usage0: addRun [--help | -h] | [--version | -v]
|
||||
usage1: addRun <options1> -rl <runList>
|
||||
usage2: addRun <options2> -in <inputFile>
|
||||
|
||||
<option1>:
|
||||
-t0 <ival>: <ival> is a comma separted list of global t0-bin`s, or
|
||||
<ival> is a comma separted list of '-1', then it is assumed that there is a prompt peak.
|
||||
Under this condition the t0-bin will be determined automatically by
|
||||
the position of the max-value of the corresponing histograms.
|
||||
If t0's are not provided, t0-bin will be taken from the file.
|
||||
-f <format>: <format> is the output file format to be used.
|
||||
For supported formats see below.
|
||||
-y <year> : the year at which runs were measured. Format yyyy.
|
||||
If not provided, the current year is used.
|
||||
-i <instrument> : <instrument> is one of gps, ltf, flame, gpd, hifi, dolly, lem
|
||||
-m <dev> : <dev> is pta or tdc (only needed for bulk). Default: tdc
|
||||
-o <fln> : output file name.
|
||||
-rl <runList> can be:
|
||||
(i) <run0> <run1> <run2> ... <runN> : run numbers, e.g. 123 124
|
||||
(ii) <run0>-<runN> : a range, e.g. 123-125 -> 123 124 125
|
||||
(iii) <run0>:<runN>:<step> : a sequence, e.g. 123:127:2 -> 123 125 127
|
||||
<step> will give the step width and has to be a positive number!
|
||||
a <runList> can also combine (i)-(iii), e.g. 123 128-130 133, etc.
|
||||
|
||||
<option2>:
|
||||
-f <format>: <format> is file format of the output-file to be used.
|
||||
-o <fln> : output file name.
|
||||
-in <inputFile>: the file name of the file containing the necessary run information
|
||||
to add runs with various t0's, fgb's, lgb's, different years, etc.
|
||||
The structure of the <inputFile> is:
|
||||
Lines starting with a '%' and empty lines are ignored.
|
||||
A single run needs to provide the following information:
|
||||
file <path-name>: needs to be a full path name
|
||||
t0 <t0-bin> : needs to be the t0 bin or
|
||||
0 to take the t0 bin from the file, or
|
||||
-1 for automatic determination via prompt peak (see above).
|
||||
Example:
|
||||
% file 1. 6 histos present, hence 6 t0-bins
|
||||
file /home/test/data/deltat_tdc_gps_4324.bin
|
||||
t0 401, 400, 399, 400, 358, 400
|
||||
% file 2, take t0-bins from the file
|
||||
file /home/test/data/deltat_tdc_gps_4325.bin
|
||||
% file 3, deduce to t0-bin's from the prompt peak
|
||||
file /home/test/data/deltat_tdc_gps_4325.bin
|
||||
t0 -1, -1, -1, -1, -1, -1
|
||||
|
||||
Supported uSR file formats:
|
||||
MusrRoot, PSI-BIN, PSI-MDU, MUD, NeXus
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="musrfit-startup-xml">
|
||||
<span id="musrfit-startup"></span><span id="index-10"></span><h3>musrfit_startup.xml<a class="headerlink" href="#musrfit-startup-xml" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="musrfit-startup"></span><span id="index-11"></span><h3>musrfit_startup.xml<a class="headerlink" href="#musrfit-startup-xml" title="Permalink to this headline">¶</a></h3>
|
||||
<p><tt class="docutils literal"><span class="pre">musrfit_startup.xml</span></tt> is a configuration file located at <tt class="docutils literal"><span class="pre">$HOME\.musrfit</span></tt>. In this file the following XML tags are allowed to define settings:</p>
|
||||
<dl class="docutils">
|
||||
<dt><strong><data_path>PATH_TO_DATA</data_path></strong></dt>
|
||||
<dd>add the new path <tt class="docutils literal"><span class="pre">PATH_TO_DATA</span></tt> where <tt class="docutils literal"><span class="pre">musrfit</span></tt> and <tt class="docutils literal"><span class="pre">musrview</span></tt> will search for data files.</dd>
|
||||
<dt><strong><run_name_template inst=”instrument_name”>template</run_name_template></strong></dt>
|
||||
<dd><p class="first"><tt class="docutils literal"><span class="pre">instrument_name</span></tt> is the name of the instrument, e.g. gps. <tt class="docutils literal"><span class="pre">template</span></tt> allows to generate the potential path fragment where to search for files.
|
||||
These path fragments are added to all present <tt class="docutils literal"><span class="pre">data_path</span></tt>. This is used e.g. by addRun in order to find runs. To illustrate this here an example:</p>
|
||||
<p><tt class="docutils literal"><span class="pre">d%yyyy%/tdc/lem%yy%_his_%rrrr%.root</span></tt>.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">%yyyy%</span></tt> will be replaced by the provided year (4 digits, e.g. 2020). <tt class="docutils literal"><span class="pre">%yy%</span></tt> will be replaced by the provided year (2 digits, e.g. 18).
|
||||
<tt class="docutils literal"><span class="pre">%rrrr%</span></tt> will be replaced by the run number. Here 4 <tt class="docutils literal"><span class="pre">r</span></tt> are given, hence the run 123 will be replaced to <tt class="docutils literal"><span class="pre">0123</span></tt>, i.e. leading zero’s will be added.
|
||||
For the given example <tt class="docutils literal"><span class="pre">%rrrrr%</span></tt> would be replaced to <tt class="docutils literal"><span class="pre">00123</span></tt> etc.</p>
|
||||
<p>If the year is 2019 and the run 123, the above template would be expanded to</p>
|
||||
<p class="last"><tt class="docutils literal"><span class="pre">d2019/tdc/lem19_his_0123.root</span></tt>.</p>
|
||||
</dd>
|
||||
<dt><strong><write_per_run_block_chisq>y/n</write_per_run_block_chisq></strong></dt>
|
||||
<dd>if enabled <span class="math">\(\chi^2\)</span> for each <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a> will be written to the <a class="reference internal" href="#msr-statistic-block"><em>STATISTIC block</em></a> of the resulting msr file. Additionally,
|
||||
in case a <span class="math">\(\chi^2\)</span> single-histogram fit is done, also <a class="reference external" href="http://en.wikipedia.org/wiki/Pearson's_chi-square_test">Pearson’s</a> <span class="math">\(\chi^2\)</span> will be added.</dd>
|
||||
@ -524,14 +589,14 @@ in case a <span class="math">\(\chi^2\)</span> single-histogram fit is done, als
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="description-of-the-msr-file-format">
|
||||
<span id="msr-file-format"></span><span id="index-11"></span><h2>Description of the msr File Format<a class="headerlink" href="#description-of-the-msr-file-format" title="Permalink to this headline">¶</a></h2>
|
||||
<span id="msr-file-format"></span><span id="index-12"></span><h2>Description of the msr File Format<a class="headerlink" href="#description-of-the-msr-file-format" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The programs are using an input file to control their action. This input file has the extension <tt class="docutils literal"><span class="pre">.msr</span></tt> (msr file). The msr file is built up from different blocks. Each block starts with a keyword and is, with the exception of the title, terminated by an empty line. Comments start with the character <tt class="docutils literal"><span class="pre">#</span></tt>. The various input blocks are described below.</p>
|
||||
<div class="section" id="the-title">
|
||||
<span id="msr-title-block"></span><span id="index-12"></span><h3>The Title<a class="headerlink" href="#the-title" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-title-block"></span><span id="index-13"></span><h3>The Title<a class="headerlink" href="#the-title" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The first line of the msr file is the title line. Unlike all the other input blocks, it does not start with a block keyword. It is just a simple text line, in which any information can be placed. The title text will be used in the graphical representation of the data as a headline.</p>
|
||||
</div>
|
||||
<div class="section" id="the-fitparameter-block">
|
||||
<span id="msr-fitparameter-block"></span><span id="index-13"></span><h3>The FITPARAMETER Block<a class="headerlink" href="#the-fitparameter-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-fitparameter-block"></span><span id="index-14"></span><h3>The FITPARAMETER Block<a class="headerlink" href="#the-fitparameter-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The FITPARAMETER block is used to define the fit parameters in a MINUIT typical style. There are various possible parameter definitions which are listed here:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span></span>1. <no> <name> <value> <step>
|
||||
2. <no> <name> <value> <step> <lower_boundary> <upper_boundary>
|
||||
@ -582,7 +647,7 @@ in case a <span class="math">\(\chi^2\)</span> single-histogram fit is done, als
|
||||
</table>
|
||||
</div>
|
||||
<div class="section" id="the-theory-block">
|
||||
<span id="msr-theory-block"></span><span id="index-14"></span><h3>The THEORY Block<a class="headerlink" href="#the-theory-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-theory-block"></span><span id="index-15"></span><h3>The THEORY Block<a class="headerlink" href="#the-theory-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The THEORY block is used to define the fit function. There is a set of predefined functions available. It is also possible to use externally defined functions. How to use them will be explained afterwards, here only the predefined functions are described.</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
@ -956,7 +1021,7 @@ userFcn libMyLibrary.so TMyFunction 2 3 4 map1 fun1
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-functions-block">
|
||||
<span id="msr-functions-block"></span><span id="index-15"></span><h3>The FUNCTIONS Block<a class="headerlink" href="#the-functions-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-functions-block"></span><span id="index-16"></span><h3>The FUNCTIONS Block<a class="headerlink" href="#the-functions-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Here some auxiliary functions can be defined. These functions can currently <em>only</em> operate on the defined parameters, and some meta information from the data files.
|
||||
They can be used in the <a class="reference internal" href="#msr-theory-block"><em>THEORY block</em></a> and for three specific cases in the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a> (<cite>norm</cite>, <cite>alpha</cite>, and <cite>beta</cite>).
|
||||
Supported is the use of basic arithmetic:</p>
|
||||
@ -981,7 +1046,7 @@ acosh(), asinh(), atanh(), exp(), log(), ln(), sqrt(), pow(base, exponent)</stro
|
||||
</ul>
|
||||
<p>The fit parameters are accessed either directly through parX, where ‘X’ is the number of the parameter in the <a class="reference internal" href="#msr-fitparameter-block"><em>FITPARAMETER block</em></a>,
|
||||
<em>e.g.</em> <em>par5</em> or through a mapping with mapY, where ‘Y’ specifies the mapping number in the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a> as explained below.</p>
|
||||
<p id="index-16">The available meta information form the data files are:</p>
|
||||
<p id="index-17">The available meta information form the data files are:</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="29%" />
|
||||
@ -1041,7 +1106,7 @@ fun2 = par3 * ( 1.0 - par5 )
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-global-block">
|
||||
<span id="msr-global-block"></span><span id="index-17"></span><h3>The GLOBAL Block<a class="headerlink" href="#the-global-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-global-block"></span><span id="index-18"></span><h3>The GLOBAL Block<a class="headerlink" href="#the-global-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The GLOBAL block is used to collect data which otherwise need to be specified in every single run entry of the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a>.
|
||||
Therefore, this block is only present to potentially shorten the msr file and to ease the handling for the user. The logic will by like that:</p>
|
||||
<ol class="arabic simple">
|
||||
@ -1148,7 +1213,7 @@ fittype 0 (single histogram fit)
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-run-block">
|
||||
<span id="msr-run-block"></span><span id="index-18"></span><h3>The RUN Block<a class="headerlink" href="#the-run-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-run-block"></span><span id="index-19"></span><h3>The RUN Block<a class="headerlink" href="#the-run-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The RUN block is used to collect the data needed for a particular run to be fitted. This includes the run name, fit type, data format, etc.
|
||||
The RUN block is slightly differently organized than the other blocks. The information is collected via labels followed by the information.
|
||||
Each run to be fitted has its <em>own</em> RUN block. A RUN block starts with a run-file line which has the structure</p>
|
||||
@ -1222,7 +1287,7 @@ RUN beautiful-data MUE4 PSI DB
|
||||
</div>
|
||||
<p>After this short digression back to the RUN-block description.</p>
|
||||
<p>In order to describe the operations needed for fitting and plotting, quite some information are needed. These information are following the RUN statement and are listed below. Depending on the fit type these information vary and hence it is indicated for which fit/plot type the information is applicable</p>
|
||||
<span id="index-19"></span><dl class="docutils" id="msr-addrun">
|
||||
<span id="index-20"></span><dl class="docutils" id="msr-addrun">
|
||||
<dt><strong>ADDRUN <run_file_name> <beamline> <facility> <file_format></strong> (optional)</dt>
|
||||
<dd><p class="first">If an ADDRUN is just following after a RUN statement, these runs will be added. More than one ADDRUN statements are possible, <em>i.e.</em> adding up as many runs as wished. It is also possible to add runs with different file formats. If the t0’s are given in the data files, the ADDRUN statement is all what is needed, otherwise just add the t0’s with the addt0 statement.</p>
|
||||
<p>For a <a class="reference internal" href="#single-histogram-fit"><em>Single Histogram Fit</em></a> or a <a class="reference internal" href="#negative-muon-musr-fit"><em>MuMinus Fit</em></a> it will be</p>
|
||||
@ -1241,7 +1306,7 @@ etc.
|
||||
<p class="last">ADDRUN is <em>not</em> available for the fit type <a class="reference internal" href="#non-musr-fit"><em>Non-muSR Fit</em></a>.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-20"></span><dl class="docutils" id="msr-fittype">
|
||||
<span id="index-21"></span><dl class="docutils" id="msr-fittype">
|
||||
<dt><strong>fittype</strong> (required if not already defined in the GLOBAL block)</dt>
|
||||
<dd><p class="first">This tag is used to indicate which type of fit is wished. The supported fit types are:</p>
|
||||
<dl class="docutils">
|
||||
@ -1266,7 +1331,7 @@ etc.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-21"></span><dl class="docutils" id="msr-alpha-beta">
|
||||
<span id="index-22"></span><dl class="docutils" id="msr-alpha-beta">
|
||||
<dt><strong>alpha, beta</strong> (fit type 2, 3, 5)</dt>
|
||||
<dd><p class="first">These parameters are used to correct the asymmetry for different detector efficiencies, solid angles and initial asymmetries. They are defined as <span class="math">\(\alpha = N_{0,b}/N_{0,f}\)</span> and <span class="math">\(\beta = A_{0,b}/A_{0,f}\)</span>. If the parameters are not specified in the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a>, for each one the value of 1 is assumed (for fittype 5, alpha is estimated from the ratio of <span class="math">\(\sum_i \left( N_{\mathrm{bp}}(i)+N_{\mathrm{bm}}(i) \right)\)</span> and <span class="math">\(\sum_i \left( N_{\mathrm{fp}}(i)+N_{\mathrm{fm}}(i) \right)\)</span>). Both, <cite>alpha</cite> as well as <cite>beta</cite> can be expressed through a function. Example for alpha with fit parameter number 1:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span></span>alpha 1
|
||||
@ -1278,7 +1343,7 @@ etc.
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-22"></span><dl class="docutils" id="msr-norm">
|
||||
<span id="index-23"></span><dl class="docutils" id="msr-norm">
|
||||
<dt><strong>norm</strong> (fit type 0)</dt>
|
||||
<dd><p class="first">Number of the fit parameter that represents the normalization constant <span class="math">\(N_0\)</span> of the histogram; the value of this parameter is given either per nanosecond or per bin (see <a class="reference internal" href="#msr-commands-block"><em>below</em></a>).
|
||||
It is possible to substitute the parameter number by a function, for instance to relate <span class="math">\(N_0\)</span>‘s of different histograms through an <span class="math">\(\alpha\)</span>
|
||||
@ -1292,25 +1357,25 @@ parameter. Example for a <tt class="docutils literal"><span class="pre">norm</sp
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-23"></span><dl class="docutils" id="msr-backgr-fit">
|
||||
<span id="index-24"></span><dl class="docutils" id="msr-backgr-fit">
|
||||
<dt><strong>backgr.fit</strong> (fit type 0)</dt>
|
||||
<dd>Parameter number specifying the constant background in a histogram. Its value is given either per nanosecond or per bin (see <a class="reference internal" href="#msr-commands-block"><em>below</em></a>). If this keyword is present,
|
||||
any information on a background line are ignored.</dd>
|
||||
</dl>
|
||||
<span id="index-24"></span><dl class="docutils" id="msr-lifetime">
|
||||
<span id="index-25"></span><dl class="docutils" id="msr-lifetime">
|
||||
<dt><strong>lifetime</strong> (fit type 0)</dt>
|
||||
<dd>Fit parameter representing the lifetime of the muon. If it is not specified the value <span class="math">\(\tau_\mu=2.197019~ \mu\mathrm{s}\)</span> is used in the calculations.</dd>
|
||||
<dt><strong>lifetimecorrection</strong> (fit type 0) <em>obsolete</em></dt>
|
||||
<dd>Does not accept any arguments. If present, the output in <tt class="docutils literal"><span class="pre">musrview</span></tt> is corrected for the exponential decay of the muon. This item is <em>obsolete</em> in the RUN block
|
||||
and will be transferred to the <a class="reference internal" href="#msr-plot-block"><em>PLOT block</em></a>, which allows switching between histogram view and asymmetry view much quicker.</dd>
|
||||
</dl>
|
||||
<span id="index-25"></span><dl class="docutils" id="msr-map">
|
||||
<span id="index-26"></span><dl class="docutils" id="msr-map">
|
||||
<dt><strong>map</strong></dt>
|
||||
<dd>On this line the mapping of run-dependent parameters is done. Parameter numbers given here may be accessed through map1, map2, etc. in the
|
||||
<a class="reference internal" href="#msr-theory-block"><em>THEORY</em></a> and <a class="reference internal" href="#msr-functions-block"><em>FUNCTIONS</em></a> blocks (see also <a class="reference internal" href="#msr-map-intro"><em>maps</em></a>). The first ten maps
|
||||
are always present and have the value 0 if not used; however, the total number of maps is not restricted!</dd>
|
||||
</dl>
|
||||
<span id="index-26"></span><dl class="docutils" id="msr-forward">
|
||||
<span id="index-27"></span><dl class="docutils" id="msr-forward">
|
||||
<dt><strong>forward</strong> (fit type 0, 1, 4)</dt>
|
||||
<dd><p class="first">Number of the histogram in the data file to be processed. If histograms shall be grouped, all the numbers which shall be grouped. Examples:</p>
|
||||
<div class="last highlight-python"><div class="highlight"><pre><span></span>forward 3 # no grouping, take histogram number 3
|
||||
@ -1320,7 +1385,7 @@ forward 1-10 12 # group histograms with numbers from 1 to 10 and additionally hi
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-27"></span><dl class="docutils" id="msr-forward-backward">
|
||||
<span id="index-28"></span><dl class="docutils" id="msr-forward-backward">
|
||||
<dt><strong>forward, backward</strong> (fit types 2, 3)</dt>
|
||||
<dd><p class="first">Numbers of the histograms in the data file that should be taken to calculate the asymmetry. If histograms shall be grouped, all the numbers which shall be grouped. Examples:</p>
|
||||
<div class="last highlight-python"><div class="highlight"><pre><span></span># build forward/backward asymmetry with histogram 1 and 3
|
||||
@ -1344,12 +1409,12 @@ backward 3 4
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-28"></span><dl class="docutils" id="msr-backgr-fix">
|
||||
<span id="index-29"></span><dl class="docutils" id="msr-backgr-fix">
|
||||
<dt><strong>backgr.fix</strong> (fit types 0, 1, 2, 3, 5)</dt>
|
||||
<dd>A fixed constant background in counts per nanosecond or per bin (see <a class="reference internal" href="#msr-commands-block"><em>below</em></a>) may be given at this point.
|
||||
The background is specified for all histograms in the order <span class="math">\(B_f B_b [B_r B_l]\)</span>. If this keyword is present, <em>any</em> information on a <tt class="docutils literal"><span class="pre">background</span></tt> line is ignored.</dd>
|
||||
</dl>
|
||||
<span id="index-29"></span><dl class="docutils" id="msr-background-single-histo">
|
||||
<span id="index-30"></span><dl class="docutils" id="msr-background-single-histo">
|
||||
<dt><strong>background</strong> (fit type 0, 1)</dt>
|
||||
<dd><p class="first">The numbers of the first and the last channel of an interval from which the constant background should be calculated are specified here.
|
||||
In case histograms are being grouped, the specified channels are interpreted with respect to the first histogram. Example:</p>
|
||||
@ -1358,7 +1423,7 @@ In case histograms are being grouped, the specified channels are interpreted wit
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-30"></span><dl class="docutils" id="msr-background-asymmetry">
|
||||
<span id="index-31"></span><dl class="docutils" id="msr-background-asymmetry">
|
||||
<dt><strong>background</strong> (fit types 2, 3, 5)</dt>
|
||||
<dd><p class="first">The numbers of the first and the last channel of an interval from which the constant background should be calculated are specified here.
|
||||
For all the histograms this is done together in the following order: <span class="math">\(k_{f,\rm first} k_{f,\rm last} k_{b,\rm first} k_{b, \rm last} [k_{r,\rm first} k_{r,\rm last} k_{l,\rm first} k_{l,\rm last}]\)</span>.
|
||||
@ -1368,7 +1433,7 @@ In case histograms are being grouped, the specified channels are interpreted wit
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-31"></span><dl class="docutils" id="msr-data-single-histo">
|
||||
<span id="index-32"></span><dl class="docutils" id="msr-data-single-histo">
|
||||
<dt><strong>data</strong> (fit type 0, 1, 4)</dt>
|
||||
<dd><p class="first">The numbers of the first and the last channel of an interval from which the data is taken are specified here.
|
||||
In case histograms are being grouped, the specified channels are interpreted with respect to the first histogram.
|
||||
@ -1378,7 +1443,7 @@ Typically these channels are referred to as <tt class="docutils literal"><span c
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-32"></span><dl class="docutils" id="msr-data-asymmetry">
|
||||
<span id="index-33"></span><dl class="docutils" id="msr-data-asymmetry">
|
||||
<dt><strong>data</strong> (fit type 2, 3, 5)</dt>
|
||||
<dd><p class="first">The numbers of the first and the last channel of an interval from which the data is taken are specified here.
|
||||
Typically these channels are referred to as first good bin / last good bin (fgb/lgb). For all the histograms this is
|
||||
@ -1389,7 +1454,7 @@ In case histograms are being grouped, the specified channels are interpreted wit
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-33"></span><dl class="docutils" id="msr-t0-single-histo">
|
||||
<span id="index-34"></span><dl class="docutils" id="msr-t0-single-histo">
|
||||
<dt><strong>t0</strong> (fit type 0, 1, 4)</dt>
|
||||
<dd><p class="first">The number of the time-zero channel of the histogram. Example:</p>
|
||||
<div class="last highlight-python"><div class="highlight"><pre><span></span>t0 3419 # t0 channel = 3419
|
||||
@ -1398,7 +1463,7 @@ t0 3419 3434 # t0 channels for groupings: forward f1 f2. 3419 t0 for f1, 3434
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-34"></span><dl class="docutils" id="msr-t0-asymmetry">
|
||||
<span id="index-35"></span><dl class="docutils" id="msr-t0-asymmetry">
|
||||
<dt><strong>t0</strong> (fit type 2, 3, 5)</dt>
|
||||
<dd><p class="first">The numbers of time-zero channels of the histograms in the order <span class="math">\(t_{0,f} t_{0,b}\)</span>. For fit type 5, the time-zero is the channel of the start of beam pulse. Example:</p>
|
||||
<div class="last highlight-python"><div class="highlight"><pre><span></span>t0 3419 3418 # t0 channels: forward (3419), backward (3418)
|
||||
@ -1407,25 +1472,25 @@ t0 3419 3418 3417 3416 # t0 channels (assuming forward f1 f2, backward b1 b2): f
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-35"></span><dl class="docutils" id="msr-addt0-single-histo">
|
||||
<span id="index-36"></span><dl class="docutils" id="msr-addt0-single-histo">
|
||||
<dt><strong>addt0</strong> (fit type 0, 1, 4)</dt>
|
||||
<dd>The number of the time-zero channel of the histogram. If grouping of histograms is present (see <a class="reference internal" href="#msr-forward"><em>forward</em></a>) the
|
||||
same syntax as for <a class="reference internal" href="#msr-t0-single-histo"><em>t0</em></a> applies. If one addt0 is given, the total number of addt0’s needs to be equal to
|
||||
the total number of <a class="reference internal" href="#msr-addrun"><em>ADDRUN</em></a>‘s!</dd>
|
||||
</dl>
|
||||
<span id="index-36"></span><dl class="docutils" id="msr-addt0-asymmetry">
|
||||
<span id="index-37"></span><dl class="docutils" id="msr-addt0-asymmetry">
|
||||
<dt><strong>addt0</strong> (fit type 2, 3, 5)</dt>
|
||||
<dd>The numbers of time-zero channels of the histograms in the order <span class="math">\(t_{0,f} t_{0,b} [t_{0,r} t_{0,l}]\)</span>.
|
||||
If grouping of histograms is present (see <a class="reference internal" href="#msr-forward-backward"><em>forward</em></a>) the same syntax as for <a class="reference internal" href="#msr-t0-asymmetry"><em>t0</em></a> applies.
|
||||
If one addt0 is given, the total number of addt0’s needs to be equal to the total number of <a class="reference internal" href="#msr-addrun"><em>ADDRUN</em></a>‘s!</dd>
|
||||
</dl>
|
||||
<span id="index-37"></span><dl class="docutils" id="msr-xy-data">
|
||||
<span id="index-38"></span><dl class="docutils" id="msr-xy-data">
|
||||
<dt><strong>xy-data</strong> (fit type 8)</dt>
|
||||
<dd>Specification of the data from an ASCII or DB file which should be used as <em>x</em> and <em>y</em> data (in this order).
|
||||
For a simple ASCII file the column numbers are used, in the case of a DB file one can either specify the variable
|
||||
numbers or the name of the variables as given in the DB header.</dd>
|
||||
</dl>
|
||||
<span id="index-38"></span><dl class="docutils" id="msr-fit">
|
||||
<span id="index-39"></span><dl class="docutils" id="msr-fit">
|
||||
<dt><strong>fit</strong></dt>
|
||||
<dd><p class="first">The range of data that should be considered when the fitting is done. For the μSR fit types 0, 1, 2, 3, and 4 the
|
||||
starting and end times are given in micro-seconds. For the non-μSR fit type 8 the starting and end points of the
|
||||
@ -1449,19 +1514,19 @@ An example:</p>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-39"></span><dl class="docutils" id="msr-packing">
|
||||
<span id="index-40"></span><dl class="docutils" id="msr-packing">
|
||||
<dt><strong>packing</strong></dt>
|
||||
<dd>Number of data channels to be binned together. For the non-μSR fit type 8 the binning is supposed to be 1.
|
||||
For the single histogram RRF fit (fittype 1) and asymmetry RRF fit (fittype 3) this parameter is meaningless.</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="section" id="the-commands-block">
|
||||
<span id="msr-commands-block"></span><span id="index-40"></span><h3>The COMMANDS Block<a class="headerlink" href="#the-commands-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-commands-block"></span><span id="index-41"></span><h3>The COMMANDS Block<a class="headerlink" href="#the-commands-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The COMMANDS block is used to specify the commands which are passed from <tt class="docutils literal"><span class="pre">musrfit</span></tt> to <tt class="docutils literal"><span class="pre">MINUIT2</span></tt>. The supported commands
|
||||
after the <tt class="docutils literal"><span class="pre">COMMANDS</span></tt> keyword are listed in the two tables below (<a class="reference internal" href="#minuit2-command-overview"><em>Minuit2 Command Overview</em></a> and <a class="reference internal" href="#dks-command-overview"><em>DKS Command Overview</em></a>)
|
||||
and further described in <a class="reference internal" href="#musrfit-command-block-details"><em>musrfit Command Block Details</em></a>.</p>
|
||||
<div class="section" id="minuit2-command-overview">
|
||||
<span id="index-41"></span><span id="id21"></span><h4>Minuit2 Command Overview<a class="headerlink" href="#minuit2-command-overview" title="Permalink to this headline">¶</a></h4>
|
||||
<span id="index-42"></span><span id="id21"></span><h4>Minuit2 Command Overview<a class="headerlink" href="#minuit2-command-overview" title="Permalink to this headline">¶</a></h4>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="20%" />
|
||||
@ -1610,7 +1675,7 @@ Used for statistical analysis only.</td>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section" id="dks-command-overview">
|
||||
<span id="index-42"></span><span id="id31"></span><h4>DKS Command Overview<a class="headerlink" href="#dks-command-overview" title="Permalink to this headline">¶</a></h4>
|
||||
<span id="index-43"></span><span id="id31"></span><h4>DKS Command Overview<a class="headerlink" href="#dks-command-overview" title="Permalink to this headline">¶</a></h4>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="28%" />
|
||||
@ -1678,7 +1743,7 @@ It allows to use all your threads of your CPU(s) during the minimization.</td></
|
||||
</table>
|
||||
</div>
|
||||
<div class="section" id="musrfit-command-block-details">
|
||||
<span id="index-43"></span><span id="id36"></span><h4><tt class="docutils literal"><span class="pre">musrfit</span></tt> Command Block Details<a class="headerlink" href="#musrfit-command-block-details" title="Permalink to this headline">¶</a></h4>
|
||||
<span id="index-44"></span><span id="id36"></span><h4><tt class="docutils literal"><span class="pre">musrfit</span></tt> Command Block Details<a class="headerlink" href="#musrfit-command-block-details" title="Permalink to this headline">¶</a></h4>
|
||||
<p>A standard COMMANDS block then looks like this:</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="n">COMMANDS</span>
|
||||
<span class="n">MINIMIZE</span>
|
||||
@ -1775,7 +1840,7 @@ SAVE
|
||||
<p><em>Note:</em> If a fit is invoked, the sector command results will only be written to file, if the fit <em>has converged</em>!</p>
|
||||
</div>
|
||||
<div class="section" id="dks-extensions-of-the-commands-block-enabling-gpu-and-general-opencl-support">
|
||||
<span id="msr-commands-block-dks"></span><span id="index-44"></span><h4>DKS extensions of the COMMANDS block enabling GPU and general OpenCL support<a class="headerlink" href="#dks-extensions-of-the-commands-block-enabling-gpu-and-general-opencl-support" title="Permalink to this headline">¶</a></h4>
|
||||
<span id="msr-commands-block-dks"></span><span id="index-45"></span><h4>DKS extensions of the COMMANDS block enabling GPU and general OpenCL support<a class="headerlink" href="#dks-extensions-of-the-commands-block-enabling-gpu-and-general-opencl-support" title="Permalink to this headline">¶</a></h4>
|
||||
<p>In case you are running the musrfit / DKS version, there are a couple commands which allow you to control the way how the fit shall be performed. These commands are:</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
@ -1808,27 +1873,27 @@ In the <a class="reference internal" href="#msr-theory-block"><em>THEORY table</
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-fourier-block">
|
||||
<span id="msr-fourier-block"></span><span id="index-45"></span><h3>The FOURIER Block<a class="headerlink" href="#the-fourier-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-fourier-block"></span><span id="index-46"></span><h3>The FOURIER Block<a class="headerlink" href="#the-fourier-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>If a Fourier transform is carried out the results are plotted within <tt class="docutils literal"><span class="pre">musrview</span></tt>. As input data the actual data <em>shown</em> in <tt class="docutils literal"><span class="pre">musrview</span></tt> is used,
|
||||
<em>i.e.</em> the currently time range shown in <tt class="docutils literal"><span class="pre">musrview</span></tt>! In the FOURIER block of the msr file all necessary parameters for calculating and presenting
|
||||
the Fourier transform of the data specified in the <a class="reference internal" href="#msr-plot-block"><em>PLOT block</em></a> is given. If the FOURIER block is not present in the msr file,
|
||||
either the parameters set in the <a class="reference internal" href="#musrfit-startup"><em>XML startup</em></a> file or the system defaults are taken when the Fourier transform is performed.
|
||||
The block starts with the <em>FOURIER</em> keyword and may contain the following entries on the successive lines:</p>
|
||||
<span id="index-46"></span><dl class="docutils" id="msr-fourier-block-units">
|
||||
<span id="index-47"></span><dl class="docutils" id="msr-fourier-block-units">
|
||||
<dt><strong>units</strong></dt>
|
||||
<dd>Here is specified in which domain the Fourier-transformed data is presented. One may choose between the fields (<em>Gauss</em>) or (<em>Tesla</em>), the frequency (<em>MHz</em>), and the angular-frequency domain (<em>Mc/s</em>).</dd>
|
||||
</dl>
|
||||
<span id="index-47"></span><dl class="docutils" id="msr-fourier-block-fourier-power">
|
||||
<span id="index-48"></span><dl class="docutils" id="msr-fourier-block-fourier-power">
|
||||
<dt><strong>fourier_power</strong></dt>
|
||||
<dd>It is possible (but not necessary) to set the number of data points used for the Fourier transform here. As argument the exponent <em>n<21</em> of a power of 2 is accepted.
|
||||
The number of data points is then 2<sup>n</sup>. <strong>Attention:</strong> If the number of points given here is bigger than the actual number of available data points,
|
||||
the input data vector is filled with zeros until the number of requested points is reached (<em>zero padding</em>)!</dd>
|
||||
</dl>
|
||||
<span id="index-48"></span><dl class="docutils" id="msr-fourier-block-dc-corrected">
|
||||
<span id="index-49"></span><dl class="docutils" id="msr-fourier-block-dc-corrected">
|
||||
<dt><strong>dc-corrected</strong></dt>
|
||||
<dd>a flag to remove a potential DC-offset of the signal. Allowed entries are <tt class="docutils literal"><span class="pre">dc-corrected</span> <span class="pre">true</span> <span class="pre">|</span> <span class="pre">1</span> <span class="pre">|</span> <span class="pre">false</span> <span class="pre">|</span> <span class="pre">0</span></tt>.</dd>
|
||||
</dl>
|
||||
<span id="index-49"></span><dl class="docutils" id="msr-fourier-block-apodization">
|
||||
<span id="index-50"></span><dl class="docutils" id="msr-fourier-block-apodization">
|
||||
<dt><strong>apodization</strong></dt>
|
||||
<dd><p class="first">Here is decided if the data should be apodized before the Fourier transform is performed and if yes, which apodization should be used (for further details about apodization of
|
||||
μSR data refer to the <a class="reference external" href="https://open.library.ubc.ca/cIRcle/collections/ubctheses/831/items/1.0085550">PhD thesis of T.M. Riseman (UBC)</a>). The argument to be put after the
|
||||
@ -1846,7 +1911,7 @@ keyword is therefore one of the following: <strong>NONE, WEAK, MEDIUM</strong> o
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-50"></span><dl class="docutils" id="msr-fourier-block-plot">
|
||||
<span id="index-51"></span><dl class="docutils" id="msr-fourier-block-plot">
|
||||
<dt><strong>plot</strong></dt>
|
||||
<dd><p class="first">At this point it is possible to set the part of the Fourier-transformed data which should be plotted by default if the Fourier transform is done by pressing the <em>f</em>-key in <tt class="docutils literal"><span class="pre">musrview</span></tt>.
|
||||
The argument may be one of the following:</p>
|
||||
@ -1864,7 +1929,7 @@ The argument may be one of the following:</p>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-51"></span><dl class="docutils" id="msr-fourier-block-phase">
|
||||
<span id="index-52"></span><dl class="docutils" id="msr-fourier-block-phase">
|
||||
<dt><strong>phase</strong></dt>
|
||||
<dd><p class="first">If a real Fourier shall be plotted, it is necessary to adopt the phases of the different detectors. The number of potentially provided phases can be either <strong>one</strong>, which means that this phase will be applied to <em>all</em> Fourier spectra,
|
||||
or the number of phases have to correspond to the number of runs in the plot block.</p>
|
||||
@ -1917,12 +1982,12 @@ list example, the first parameter number will be the reference phase. The compac
|
||||
</ol>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-52"></span><dl class="docutils" id="msr-fourier-block-range-for-phase-correction">
|
||||
<span id="index-53"></span><dl class="docutils" id="msr-fourier-block-range-for-phase-correction">
|
||||
<dt><strong>range_for_phase_correction</strong></dt>
|
||||
<dd>An interval in Fourier space given in units as define with the ‘units’ tag, or the tag ‘all’ in which case the range given under ‘range’ will be used.
|
||||
The given interval will be used for an automatic phasing of the real Fourier transform. This will allow to add real Fourier spectra coherently.</dd>
|
||||
</dl>
|
||||
<span id="index-53"></span><dl class="docutils" id="msr-fourier-block-range">
|
||||
<span id="index-54"></span><dl class="docutils" id="msr-fourier-block-range">
|
||||
<dt><strong>range</strong></dt>
|
||||
<dd>The plotting range is set here. The interval is specified through its start and end points given in the <em>units</em> set after the <strong>units</strong> tag.</dd>
|
||||
</dl>
|
||||
@ -1938,20 +2003,20 @@ range 0.0 17.03
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-plot-block">
|
||||
<span id="msr-plot-block"></span><span id="index-54"></span><h3>The PLOT Block<a class="headerlink" href="#the-plot-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-plot-block"></span><span id="index-55"></span><h3>The PLOT Block<a class="headerlink" href="#the-plot-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The PLOT block is intended to collect all the information needed for the graphical presentation of the data and fits using <tt class="docutils literal"><span class="pre">musrview</span></tt>.
|
||||
The PLOT keyword at the beginning of the block is followed by a number which indicates the plot type. The plot types have to match the <a class="reference internal" href="#fit-types"><em>fit types</em></a>.
|
||||
Additionally, it is possible to provide information using the following keywords:</p>
|
||||
<span id="index-55"></span><dl class="docutils" id="msr-plot-block-lifetimecorrection">
|
||||
<span id="index-56"></span><dl class="docutils" id="msr-plot-block-lifetimecorrection">
|
||||
<dt><strong>lifetimecorrection</strong></dt>
|
||||
<dd>Does not accept any arguments. If present, the output in <tt class="docutils literal"><span class="pre">musrview</span></tt> is corrected for the exponential decay of the muon. Only relevant for (type 0).</dd>
|
||||
</dl>
|
||||
<span id="index-56"></span><dl class="docutils" id="msr-plot-block-runs">
|
||||
<span id="index-57"></span><dl class="docutils" id="msr-plot-block-runs">
|
||||
<dt><strong>runs</strong></dt>
|
||||
<dd>The numbers of the runs to be plotted have to be put here. The runs are numbered according to their appearance in the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a>.
|
||||
The numbers is either a space separated list of numbers, an interval <em>e.g.</em> 1-16, or a combination of both.</dd>
|
||||
</dl>
|
||||
<span id="index-57"></span><dl class="docutils" id="msr-plot-block-range">
|
||||
<span id="index-58"></span><dl class="docutils" id="msr-plot-block-range">
|
||||
<dt><strong>range</strong></dt>
|
||||
<dd><p class="first">Here it is possible to define the plotting range explicitly. Depending on the plot type the following settings are allowed where the times are given in
|
||||
micro-seconds and the <em>N</em> in counts (types 0-4) or in counts/nsec (type 0, 1):</p>
|
||||
@ -1965,7 +2030,7 @@ micro-seconds and the <em>N</em> in counts (types 0-4) or in counts/nsec (type 0
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-58"></span><dl class="docutils" id="msr-plot-block-sub-ranges">
|
||||
<span id="index-59"></span><dl class="docutils" id="msr-plot-block-sub-ranges">
|
||||
<dt><strong>sub_ranges</strong></dt>
|
||||
<dd><p class="first">Here it is possible to define the plotting range for each run individually. For the different plot types the command has the structure:</p>
|
||||
<dl class="last docutils">
|
||||
@ -1978,31 +2043,31 @@ micro-seconds and the <em>N</em> in counts (types 0-4) or in counts/nsec (type 0
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<span id="index-59"></span><dl class="docutils" id="msr-plot-block-use-fit-ranges">
|
||||
<span id="index-60"></span><dl class="docutils" id="msr-plot-block-use-fit-ranges">
|
||||
<dt><strong>use_fit_ranges</strong> [ <em>y</em><sub>min</sub> <em>y</em><sub>max</sub> ]</dt>
|
||||
<dd>The fit ranges of the individual runs are used to present the data. Optionally, an ordinate range can be provided.</dd>
|
||||
</dl>
|
||||
<span id="index-60"></span><dl class="docutils" id="msr-plot-block-view-packing">
|
||||
<span id="index-61"></span><dl class="docutils" id="msr-plot-block-view-packing">
|
||||
<dt><strong>view_packing</strong></dt>
|
||||
<dd>The data are presented in the packing given here rather than the binning used for the fit. <strong>WARNING:</strong> This is a global option and applies to all PLOT-blocks.</dd>
|
||||
</dl>
|
||||
<span id="index-61"></span><dl class="docutils" id="msr-plot-block-logx">
|
||||
<span id="index-62"></span><dl class="docutils" id="msr-plot-block-logx">
|
||||
<dt><strong>logx</strong></dt>
|
||||
<dd>Will present the time axis in a logarithmic scale. <em>So far no checking of negative and zero-valued data is performed, hence expect interesting output!</em></dd>
|
||||
</dl>
|
||||
<span id="index-62"></span><dl class="docutils" id="msr-plot-block-logy">
|
||||
<span id="index-63"></span><dl class="docutils" id="msr-plot-block-logy">
|
||||
<dt><strong>logy</strong></dt>
|
||||
<dd>Will present the axis of ordinates in a logarithmic scale. <em>So far no checking of negative and zero-valued data is performed, hence expect interesting output!</em></dd>
|
||||
</dl>
|
||||
<span id="index-63"></span><dl class="docutils" id="msr-plot-block-rrf-packing">
|
||||
<span id="index-64"></span><dl class="docutils" id="msr-plot-block-rrf-packing">
|
||||
<dt><strong>rrf_packing</strong> value</dt>
|
||||
<dd>In the rotating-reference-frame (RRF) representation, this will be the value for the packing. <strong>WARNING:</strong> For the time being, this is a global option and applies to all PLOT blocks.</dd>
|
||||
</dl>
|
||||
<span id="index-64"></span><dl class="docutils" id="msr-plot-block-rrf-freq">
|
||||
<span id="index-65"></span><dl class="docutils" id="msr-plot-block-rrf-freq">
|
||||
<dt><strong>rrf_freq</strong> value unit</dt>
|
||||
<dd>This entry provides the RRF “frequency” given by the value and the unit which can be: <em>kHz</em>, <em>MHz</em>, <em>Mc/s</em>, <em>G</em>, or <em>T</em>.</dd>
|
||||
</dl>
|
||||
<span id="index-65"></span><dl class="docutils" id="msr-plot-block-rrf-phase">
|
||||
<span id="index-66"></span><dl class="docutils" id="msr-plot-block-rrf-phase">
|
||||
<dt><strong>rrf_phase</strong> value</dt>
|
||||
<dd>A phase of the RRF can be provided, either as a value in degrees, or as a parX, <em>e.g.</em> par4, where ‘X’ is supposed to be the phase parameter number in the <a class="reference internal" href="#msr-fitparameter-block"><em>FITPARAMETER block</em></a>.</dd>
|
||||
<dt><strong>Notes:</strong></dt>
|
||||
@ -2037,7 +2102,7 @@ rrf_packing 75
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-statistic-block">
|
||||
<span id="msr-statistic-block"></span><span id="index-66"></span><h3>The STATISTIC Block<a class="headerlink" href="#the-statistic-block" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="msr-statistic-block"></span><span id="index-67"></span><h3>The STATISTIC Block<a class="headerlink" href="#the-statistic-block" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The STATISTIC 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 <span class="math">\(\chi^2\)</span> and the number of degrees of freedom in the fit.
|
||||
If enabled in the <a class="reference internal" href="#musrfit-startup"><em>XML file</em></a> for <span class="math">\(\chi^2\)</span>-single-histogram fits also <a class="reference external" href="http://en.wikipedia.org/wiki/Pearson's_chi-square_test">Pearson’s</a>
|
||||
@ -2046,9 +2111,9 @@ If enabled in the <a class="reference internal" href="#musrfit-startup"><em>XML
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="fit-types">
|
||||
<span id="index-67"></span><span id="id37"></span><h2>Fit Types<a class="headerlink" href="#fit-types" title="Permalink to this headline">¶</a></h2>
|
||||
<span id="index-68"></span><span id="id37"></span><h2>Fit Types<a class="headerlink" href="#fit-types" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="single-histogram-fit-fit-type-0">
|
||||
<span id="single-histogram-fit"></span><span id="index-68"></span><h3>Single Histogram Fit (fit type 0)<a class="headerlink" href="#single-histogram-fit-fit-type-0" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="single-histogram-fit"></span><span id="index-69"></span><h3>Single Histogram Fit (fit type 0)<a class="headerlink" href="#single-histogram-fit-fit-type-0" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The single-histogram fit (fit type 0) is used to fit a function directly to the raw data using</p>
|
||||
<div class="math">
|
||||
\[N(t) = N_0 e^{-t/\tau_\mu} [ 1 + A(t) ] + N_{\rm bkg}\]</div>
|
||||
@ -2069,7 +2134,7 @@ If the option lifetimecorrection is <em>set</em> in the PLOT block the asymmetry
|
||||
\[A(t) = \frac{N(t) - N_{\rm bkg}}{N_0} e^{+t/\tau_\mu} - 1\]</div>
|
||||
</div>
|
||||
<div class="section" id="single-histogram-rrf-fit-fit-type-1">
|
||||
<span id="single-histogram-rrf-fit"></span><span id="index-69"></span><h3>Single Histogram RRF Fit (fit type 1)<a class="headerlink" href="#single-histogram-rrf-fit-fit-type-1" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="single-histogram-rrf-fit"></span><span id="index-70"></span><h3>Single Histogram RRF Fit (fit type 1)<a class="headerlink" href="#single-histogram-rrf-fit-fit-type-1" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The single-histogram RRF fit (fit type 1) is used to fit the rotating reference frame asymmetry <span class="math">\(A_{\rm rrf}(t)\)</span> extracted from the raw data.
|
||||
The currently implemented version will fail at low fields/frequencies (for about < 1 Tesla). The same is true, if multiple frequencies with large
|
||||
enough separation are present, <em>e.g.</em> when dealing with muonium. <span class="math">\(A_{\rm rrf}(t)\)</span> is estimated the following way (for more details see the
|
||||
@ -2093,7 +2158,7 @@ of the <span class="math">\(N_0\)</span> estimate, line shape distortion due to
|
||||
For more details see the rrf-memo found in the source code under <musrfit>/doc/memo/rrf/rrf-notes.pdf or <a class="reference external" href="http://dx.doi.org/10.7566/JPSCP.21.011051">Musrfit–Real Time Parameter Fitting Using GPUs</a></p>
|
||||
</div>
|
||||
<div class="section" id="asymmetry-fit-fit-type-2">
|
||||
<span id="asymmetry-fit"></span><span id="index-70"></span><h3>Asymmetry Fit (fit type 2)<a class="headerlink" href="#asymmetry-fit-fit-type-2" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="asymmetry-fit"></span><span id="index-71"></span><h3>Asymmetry Fit (fit type 2)<a class="headerlink" href="#asymmetry-fit-fit-type-2" title="Permalink to this headline">¶</a></h3>
|
||||
<p>For an asymmetry fit (fit type 2) two histograms are needed. These are given by the <a class="reference internal" href="#msr-forward-backward"><em>forward</em></a> and <a class="reference internal" href="#msr-forward-backward"><em>backward</em></a> keywords
|
||||
in the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a>. Additionally, the parameters <a class="reference internal" href="#msr-alpha-beta"><em>alpha</em></a> and <a class="reference internal" href="#msr-alpha-beta"><em>beta</em></a> which relate the detector
|
||||
efficiencies, solid angles and initial asymmetries of the two detectors can be supplied. The constant background for the two histograms is either given by
|
||||
@ -2127,13 +2192,13 @@ efficiencies, solid angles and initial asymmetries of the two detectors can be s
|
||||
<p>and plotted together with the function given in the THEORY block.</p>
|
||||
</div>
|
||||
<div class="section" id="asymmetry-rrf-fit-fit-type-3">
|
||||
<span id="asymmetry-rrf-fit"></span><span id="index-71"></span><h3>Asymmetry RRF Fit (fit type 3)<a class="headerlink" href="#asymmetry-rrf-fit-fit-type-3" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="asymmetry-rrf-fit"></span><span id="index-72"></span><h3>Asymmetry RRF Fit (fit type 3)<a class="headerlink" href="#asymmetry-rrf-fit-fit-type-3" title="Permalink to this headline">¶</a></h3>
|
||||
<p>For asymmetry RRF Fit (fit type 3) two histograms are needed. In a first step, the unbinned asymmetry is formed as described for the asymmetry fit.
|
||||
Afterwards the RRF transformation is carried out, <em>i.e.</em> point 4. and 5. as sketched in the single histogramm RRF fit. The same reservations as for
|
||||
the single histogram RRF fit apply: <strong>if you not urgently need it: do not use it! There are better ways to deal with the analysis of high frequency data!</strong></p>
|
||||
</div>
|
||||
<div class="section" id="negative-muon-mgrsr-fit-fit-type-4">
|
||||
<span id="negative-muon-musr-fit"></span><span id="index-72"></span><h3>Negative Muon μSR Fit (fit type 4)<a class="headerlink" href="#negative-muon-mgrsr-fit-fit-type-4" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="negative-muon-musr-fit"></span><span id="index-73"></span><h3>Negative Muon μSR Fit (fit type 4)<a class="headerlink" href="#negative-muon-mgrsr-fit-fit-type-4" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The negative muon μSR fit (fit type 4) is used for single histogram fits of MuMinus, <em>i.e.</em></p>
|
||||
<div class="math">
|
||||
\[N(t) = \sum_i N_i\,\mathrm{e}^{-t/\tau_i} \left[ 1 + A_i(t)\right] + N_{\rm bkg}(t)\]</div>
|
||||
@ -2149,7 +2214,7 @@ the single histogram RRF fit apply: <strong>if you not urgently need it: do not
|
||||
<p>Since MuMinus is quite generic, the full functional depends has to be written in the <a class="reference internal" href="#msr-theory-block"><em>THEORY Block</em></a>.</p>
|
||||
</div>
|
||||
<div class="section" id="beta-nmr-asymmetry-fit-fit-type-5">
|
||||
<span id="bnmr-asymmetry-fit"></span><span id="index-73"></span><h3>beta-NMR Asymmetry Fit (fit type 5)<a class="headerlink" href="#beta-nmr-asymmetry-fit-fit-type-5" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="bnmr-asymmetry-fit"></span><span id="index-74"></span><h3>beta-NMR Asymmetry Fit (fit type 5)<a class="headerlink" href="#beta-nmr-asymmetry-fit-fit-type-5" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Four histograms are needed for a beta-NMR asymmetry fit (fit type 5), two for positive helecity and two for negative. These are given by the <a class="reference internal" href="#msr-forward-backward"><em>forward</em></a> and <a class="reference internal" href="#msr-forward-backward"><em>backward</em></a> keywords
|
||||
in the <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a>. Additionally, the parameters <a class="reference internal" href="#msr-alpha-beta"><em>alpha</em></a> and <a class="reference internal" href="#msr-alpha-beta"><em>beta</em></a> which relate the detector
|
||||
efficiencies, solid angles and initial asymmetries of the two detectors can be supplied. The constant background for the two histograms is either given by
|
||||
@ -2189,7 +2254,7 @@ efficiencies, solid angles and initial asymmetries of the two detectors can be s
|
||||
<p>and plotted together with the function given in the THEORY block.</p>
|
||||
</div>
|
||||
<div class="section" id="non-mgrsr-fit-fit-type-8">
|
||||
<span id="non-musr-fit"></span><span id="index-74"></span><h3>Non-μSR Fit (fit type 8)<a class="headerlink" href="#non-mgrsr-fit-fit-type-8" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="non-musr-fit"></span><span id="index-75"></span><h3>Non-μSR Fit (fit type 8)<a class="headerlink" href="#non-mgrsr-fit-fit-type-8" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In the case of a non-μSR fit (fit type 8) the fitting function is</p>
|
||||
<div class="math">
|
||||
\[y = f(x),\]</div>
|
||||
@ -2198,7 +2263,7 @@ efficiencies, solid angles and initial asymmetries of the two detectors can be s
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="id38">
|
||||
<span id="index-75"></span><span id="id39"></span><h2>User Functions<a class="headerlink" href="#id38" title="Permalink to this headline">¶</a></h2>
|
||||
<span id="index-76"></span><span id="id39"></span><h2>User Functions<a class="headerlink" href="#id38" title="Permalink to this headline">¶</a></h2>
|
||||
<p><tt class="docutils literal"><span class="pre">musrfit</span></tt> offers the possibility to plug-in user-defined functions implemented in <tt class="docutils literal"><span class="pre">C++</span></tt> classes to the fitting and plotting routines.
|
||||
In order to do so, basically two things are needed:</p>
|
||||
<blockquote>
|
||||
@ -2216,7 +2281,7 @@ In order to do so, basically two things are needed:</p>
|
||||
</div></blockquote>
|
||||
<p>Since the first is simpler this will be explained using an explicit example, before it is discussed why the second option is needed and how it can be used.</p>
|
||||
<div class="section" id="user-function-without-global-user-function-object-access">
|
||||
<span id="user-functions-without-global-part"></span><span id="index-76"></span><h3>User Function without global user-function-object access<a class="headerlink" href="#user-function-without-global-user-function-object-access" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="user-functions-without-global-part"></span><span id="index-77"></span><h3>User Function without global user-function-object access<a class="headerlink" href="#user-function-without-global-user-function-object-access" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In the following it is explained in detail how the implementation of a user function is done using the simple example of <span class="math">\(f_a(x) = \sin(a x)/(a x)\)</span>,
|
||||
where the parameter <span class="math">\(a\)</span> should be determined by the fit. Although not necessary for this simple example, the source code is split into two parts,
|
||||
namely a header file <tt class="docutils literal"><span class="pre">TMyFunction.h</span></tt> containing the class declaration and a second file <tt class="docutils literal"><span class="pre">TMyFunction.cpp</span></tt> including the function implementation
|
||||
@ -2314,7 +2379,7 @@ refer to the <a class="reference external" href="https://root.cern.ch/interactin
|
||||
<p>Finally, please be aware of the <a class="reference internal" href="#user-function-important"><em>remark</em></a> at the end of this section.</p>
|
||||
</div>
|
||||
<div class="section" id="user-function-with-global-user-function-object-access">
|
||||
<span id="user-functions-with-global-part"></span><span id="index-77"></span><h3>User Function with global user-function-object access<a class="headerlink" href="#user-function-with-global-user-function-object-access" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="user-functions-with-global-part"></span><span id="index-78"></span><h3>User Function with global user-function-object access<a class="headerlink" href="#user-function-with-global-user-function-object-access" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Before explaining how to use global objects within user functions, it will be shortly explained where is the problem and why this might be a sensible approach.
|
||||
In <tt class="docutils literal"><span class="pre">musrfit</span></tt> each <a class="reference internal" href="#msr-run-block"><em>RUN block</em></a> (histogram, asymmetry, ...) is owning its own theory-function tree. An example is shown in the figure below.
|
||||
The bluish nodes are default musrfit functions, whereas the red nodes represent user functions (here labeled by <tt class="docutils literal"><span class="pre">uF1</span></tt> and <tt class="docutils literal"><span class="pre">uF2</span></tt>). Without global user-function
|
||||
@ -2453,7 +2518,7 @@ In case this cannot be ensured, the parallelization can be disabled by <em>̵
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="rge-file-handler-for-low-energy-mgrsr">
|
||||
<span id="rge-handler"></span><span id="index-78"></span><h3>rge-file handler for Low-Energy μSR<a class="headerlink" href="#rge-file-handler-for-low-energy-mgrsr" title="Permalink to this headline">¶</a></h3>
|
||||
<span id="rge-handler"></span><span id="index-79"></span><h3>rge-file handler for Low-Energy μSR<a class="headerlink" href="#rge-file-handler-for-low-energy-mgrsr" title="Permalink to this headline">¶</a></h3>
|
||||
<p>In the case of LE-μSR, the muon stopping distribution might have a profound impact on the muon polarization function <span class="math">\(P(t)\)</span>. In case of transverse field μSR measurements it can be written as</p>
|
||||
<div class="math">
|
||||
\[P(t) = \int_0^\infty n(z) \cos(\gamma_\mu B(z) t + \varphi) \, dz\]</div>
|
||||
@ -2597,7 +2662,7 @@ here:</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="technical-description-of-the-musrfit-framework">
|
||||
<span id="technical-musrfit"></span><span id="index-79"></span><h2>Technical Description of the musrfit framework<a class="headerlink" href="#technical-description-of-the-musrfit-framework" title="Permalink to this headline">¶</a></h2>
|
||||
<span id="technical-musrfit"></span><span id="index-80"></span><h2>Technical Description of the musrfit framework<a class="headerlink" href="#technical-description-of-the-musrfit-framework" title="Permalink to this headline">¶</a></h2>
|
||||
<p>A technical description of the musrfit framework can be found on its own <a class="reference external" href="http://lmu.web.psi.ch/musrfit/technical/index.html">docu</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -2617,8 +2682,8 @@ here:</p>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
© Copyright 2021, Andreas Suter.
|
||||
Last updated on Oct 06, 2021.
|
||||
© Copyright 2022, Andreas Suter.
|
||||
Last updated on May 29, 2022.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
|
||||
</div>
|
||||
</body>
|
||||
|
Loading…
x
Reference in New Issue
Block a user