Merge branch 'master' of ssh://gitorious.psi.ch/nemu/musrfit

This commit is contained in:
suter_a 2015-02-02 15:54:01 +01:00
commit f56c2b5fda
6 changed files with 1037 additions and 951 deletions

65
README
View File

@ -1,33 +1,32 @@
# musrfit - muSR data analysis package #
### Contents ###
This is a data analysis package to analyze time differential muSR data.
Currently it allows the following things:
* setting up most commonly used fitting functions for muSR
* fitting data, including global fits
* showing the fit results and the residuals
* showing the Fourier transform of the data
* extracting easily the fitting parameters to be used in other programs (gnuplot, qtiplot/origin, ...)
* allows to generate fitting input files for follow-up runs
* allows to generate global fitting input files based on a single run template
* allows to implement more sophisticated user functions
(e.g. GL vortex lattice, Meissner screening including low-energy muon stopping profiles)
### Currently supported platforms: ###
* Linux
* Mac OS X
* Windows - not really, only for the very brave ones
### Documentation ####
For a more exhaustive user documentation see:
http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html
### Contact ###
<andreas.suter@psi.ch>
# musrfit - muSR data analysis package #
### Contents ###
This is a data analysis package to analyze time differential muSR and beta-NMR data.
Currently it allows the following things:
* setting up most commonly used fitting functions for muSR and beta-NMR
* fitting data, including global fits
* showing the fit results and the residuals
* showing the Fourier transform of the data
* extracting easily the fitting parameters to be used in other programs (gnuplot, qtiplot/origin, ...)
* allows to generate fitting input files for follow-up runs
* allows to generate global fitting input files based on a single run template
* allows to implement more sophisticated user functions
(e.g. GL vortex lattice, Meissner screening including low-energy muon stopping profiles)
### Currently supported platforms: ###
* Linux
* Mac OS X
* Windows - not really, only for the very brave ones
### Documentation ####
For a more exhaustive user documentation see:
http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html
### Contact ###
<andreas.suter@psi.ch>

File diff suppressed because it is too large Load Diff

BIN
src/external/libBNMR/045674.msr vendored Normal file

Binary file not shown.

73
src/external/libBNMR/ExpRlx-MUD.msr vendored Normal file
View File

@ -0,0 +1,73 @@
# Run Numbers: 1111
###############################################################
FITPARAMETER
###############################################################
# No Name Value Err Min Max
1 Alphap 1.11662 0.00020 none
2 Asyp 0 0.00038 none
3 T 1e6 0 none
4 Rlx 0.969e6 0.020 none
5 Pos 1 0 none
6 Neg -1 0 none
###############################################################
THEORY
###############################################################
asymmetry fun1
userFcn libBNMR.so ExpRlx 3 4
###############################################################
FUNCTIONS
###############################################################
fun1 = map1 * map2
###############################################################
RUN 045674 BNMR TRIUMF MUD (name beamline institute data-file-format)
fittype 2 (asymmetry fit)
alpha 1
forward 3
backward 4
data 11 799 11 799
background 800 900 800 900 # estimated bkg: 416.9700 / 465.7600
t0 0.0 0.0
map 2 5 0 0 0 0 0 0 0 0
fit 5e5 8e6
packing 5
RUN 045674 BNMR TRIUMF MUD (name beamline institute data-file-format)
fittype 2 (asymmetry fit)
alpha 1
forward 5
backward 6
data 11 799 11 799
background 800 900 800 900 # estimated bkg: 430.9200 / 479.4500
t0 0.0 0.0
map 2 6 0 0 0 0 0 0 0 0
fit 5e5 8e6
packing 5
###############################################################
COMMANDS
MINIMIZE
HESSE
SAVE
###############################################################
PLOT 2 (asymmetry plot)
runs 1 2
use_fit_ranges
###############################################################
FOURIER
units MHz # units either 'Gauss', 'MHz', or 'Mc/s'
fourier_power 12
apodization STRONG # NONE, WEAK, MEDIUM, STRONG
plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE
phase 8
#range FRQMIN FRQMAX
###############################################################
STATISTIC --- 2014-11-14 16:37:41
chisq = 372.2, NDF = 295, chisq/NDF = 1.261744

View File

@ -229,6 +229,7 @@ class PMusrCanvas : public TObject, public TQObject
virtual void LastCanvasClosed(); // SLOT
virtual void SaveGraphicsAndQuit(Char_t *fileName, Char_t *graphicsFormat);
virtual void SaveDataAscii();
private:
Int_t fTimeout; ///< timeout after which the Done signal should be emited. If timeout <= 0, no timeout is taking place
@ -329,8 +330,6 @@ class PMusrCanvas : public TObject, public TQObject
virtual void IncrementFourierPhase();
virtual void DecrementFourierPhase();
virtual void SaveDataAscii();
virtual Bool_t IsScaleN0AndBkg();
virtual UInt_t GetNeededAccuracy(PMsrParamStructure param);

View File

@ -67,6 +67,8 @@ void musrview_syntax()
cout << endl << " eps, pdf, gif, jpg, png, svg, xpm, root";
cout << endl << " example: musrview 3310.msr --png, will produce a files 3310_X.png";
cout << endl << " where 'X' stands for the plot number (starting form 0)";
cout << endl << " --ascii: ";
cout << endl << " will produce an ascii dump of the data and fit as plotted.";
cout << endl << " --timeout <timeout>: <timeout> given in seconds after which musrview terminates.";
cout << endl << " If <timeout> <= 0, no timeout will take place. Default <timeout> is 0.";
cout << endl;
@ -100,6 +102,7 @@ int main(int argc, char *argv[])
bool success = true;
char fileName[128];
bool graphicsOutput = false;
bool asciiOutput = false;
char graphicsExtension[128];
int timeout = 0;
@ -135,6 +138,8 @@ int main(int argc, char *argv[])
graphicsOutput = true;
strcpy(graphicsExtension, argv[i]+2);
} else if (!strcmp(argv[i], "--ascii")) {
asciiOutput = true;
} else if (!strcmp(argv[i], "--timeout")) {
if (i+1 < argc) {
TString str(argv[i+1]);
@ -280,7 +285,7 @@ int main(int argc, char *argv[])
if (success) {
// generate Root application needed for PMusrCanvas
if (graphicsOutput) {
if (graphicsOutput || asciiOutput) {
argv[argc] = (char*)malloc(16*sizeof(char));
strcpy(argv[argc], "-b");
argc++;
@ -299,10 +304,10 @@ int main(int argc, char *argv[])
startupHandler->GetFourierDefaults(),
startupHandler->GetMarkerList(),
startupHandler->GetColorList(),
graphicsOutput);
graphicsOutput||asciiOutput);
else
musrCanvas = new PMusrCanvas(i, msrHandler->GetMsrTitle()->Data(),
10+i*100, 10+i*100, 800, 600, graphicsOutput);
10+i*100, 10+i*100, 800, 600, graphicsOutput||asciiOutput);
if (!musrCanvas->IsValid()) {
cerr << endl << ">> musrview **SEVERE ERROR** Couldn't invoke all necessary objects, will quit.";
@ -334,6 +339,12 @@ int main(int argc, char *argv[])
musrCanvas->SaveGraphicsAndQuit(fileName, graphicsExtension);
}
if (asciiOutput) {
// save data in batch mode
musrCanvas->SaveDataAscii();
musrCanvas->Done(0);
}
// keep musrCanvas objects
canvasVector.push_back(musrCanvas);
}