Merge branch 'master' of ssh://gitorious.psi.ch/nemu/musrfit
This commit is contained in:
65
README
65
README
@ -1,33 +1,32 @@
|
|||||||
# musrfit - muSR data analysis package #
|
# musrfit - muSR data analysis package #
|
||||||
|
|
||||||
### Contents ###
|
### Contents ###
|
||||||
|
|
||||||
This is a data analysis package to analyze time differential muSR data.
|
This is a data analysis package to analyze time differential muSR and beta-NMR data.
|
||||||
Currently it allows the following things:
|
Currently it allows the following things:
|
||||||
|
|
||||||
* setting up most commonly used fitting functions for muSR
|
* setting up most commonly used fitting functions for muSR and beta-NMR
|
||||||
* fitting data, including global fits
|
* fitting data, including global fits
|
||||||
* showing the fit results and the residuals
|
* showing the fit results and the residuals
|
||||||
* showing the Fourier transform of the data
|
* showing the Fourier transform of the data
|
||||||
* extracting easily the fitting parameters to be used in other programs (gnuplot, qtiplot/origin, ...)
|
* 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 fitting input files for follow-up runs
|
||||||
* allows to generate global fitting input files based on a single run template
|
* allows to generate global fitting input files based on a single run template
|
||||||
* allows to implement more sophisticated user functions
|
* allows to implement more sophisticated user functions
|
||||||
(e.g. GL vortex lattice, Meissner screening including low-energy muon stopping profiles)
|
(e.g. GL vortex lattice, Meissner screening including low-energy muon stopping profiles)
|
||||||
|
|
||||||
### Currently supported platforms: ###
|
### Currently supported platforms: ###
|
||||||
|
|
||||||
* Linux
|
* Linux
|
||||||
* Mac OS X
|
* Mac OS X
|
||||||
* Windows - not really, only for the very brave ones
|
* Windows - not really, only for the very brave ones
|
||||||
|
|
||||||
### Documentation ####
|
### Documentation ####
|
||||||
|
|
||||||
For a more exhaustive user documentation see:
|
For a more exhaustive user documentation see:
|
||||||
|
|
||||||
http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html
|
http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html
|
||||||
|
|
||||||
### Contact ###
|
### Contact ###
|
||||||
|
|
||||||
<andreas.suter@psi.ch>
|
<andreas.suter@psi.ch>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
BIN
src/external/libBNMR/045674.msr
vendored
Normal file
BIN
src/external/libBNMR/045674.msr
vendored
Normal file
Binary file not shown.
73
src/external/libBNMR/ExpRlx-MUD.msr
vendored
Normal file
73
src/external/libBNMR/ExpRlx-MUD.msr
vendored
Normal 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
|
@ -229,6 +229,7 @@ class PMusrCanvas : public TObject, public TQObject
|
|||||||
virtual void LastCanvasClosed(); // SLOT
|
virtual void LastCanvasClosed(); // SLOT
|
||||||
|
|
||||||
virtual void SaveGraphicsAndQuit(Char_t *fileName, Char_t *graphicsFormat);
|
virtual void SaveGraphicsAndQuit(Char_t *fileName, Char_t *graphicsFormat);
|
||||||
|
virtual void SaveDataAscii();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Int_t fTimeout; ///< timeout after which the Done signal should be emited. If timeout <= 0, no timeout is taking place
|
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 IncrementFourierPhase();
|
||||||
virtual void DecrementFourierPhase();
|
virtual void DecrementFourierPhase();
|
||||||
|
|
||||||
virtual void SaveDataAscii();
|
|
||||||
|
|
||||||
virtual Bool_t IsScaleN0AndBkg();
|
virtual Bool_t IsScaleN0AndBkg();
|
||||||
virtual UInt_t GetNeededAccuracy(PMsrParamStructure param);
|
virtual UInt_t GetNeededAccuracy(PMsrParamStructure param);
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ void musrview_syntax()
|
|||||||
cout << endl << " eps, pdf, gif, jpg, png, svg, xpm, root";
|
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 << " 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 << " 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 << " --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 << " If <timeout> <= 0, no timeout will take place. Default <timeout> is 0.";
|
||||||
cout << endl;
|
cout << endl;
|
||||||
@ -100,6 +102,7 @@ int main(int argc, char *argv[])
|
|||||||
bool success = true;
|
bool success = true;
|
||||||
char fileName[128];
|
char fileName[128];
|
||||||
bool graphicsOutput = false;
|
bool graphicsOutput = false;
|
||||||
|
bool asciiOutput = false;
|
||||||
char graphicsExtension[128];
|
char graphicsExtension[128];
|
||||||
int timeout = 0;
|
int timeout = 0;
|
||||||
|
|
||||||
@ -135,6 +138,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
graphicsOutput = true;
|
graphicsOutput = true;
|
||||||
strcpy(graphicsExtension, argv[i]+2);
|
strcpy(graphicsExtension, argv[i]+2);
|
||||||
|
} else if (!strcmp(argv[i], "--ascii")) {
|
||||||
|
asciiOutput = true;
|
||||||
} else if (!strcmp(argv[i], "--timeout")) {
|
} else if (!strcmp(argv[i], "--timeout")) {
|
||||||
if (i+1 < argc) {
|
if (i+1 < argc) {
|
||||||
TString str(argv[i+1]);
|
TString str(argv[i+1]);
|
||||||
@ -280,7 +285,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
// generate Root application needed for PMusrCanvas
|
// generate Root application needed for PMusrCanvas
|
||||||
if (graphicsOutput) {
|
if (graphicsOutput || asciiOutput) {
|
||||||
argv[argc] = (char*)malloc(16*sizeof(char));
|
argv[argc] = (char*)malloc(16*sizeof(char));
|
||||||
strcpy(argv[argc], "-b");
|
strcpy(argv[argc], "-b");
|
||||||
argc++;
|
argc++;
|
||||||
@ -299,10 +304,10 @@ int main(int argc, char *argv[])
|
|||||||
startupHandler->GetFourierDefaults(),
|
startupHandler->GetFourierDefaults(),
|
||||||
startupHandler->GetMarkerList(),
|
startupHandler->GetMarkerList(),
|
||||||
startupHandler->GetColorList(),
|
startupHandler->GetColorList(),
|
||||||
graphicsOutput);
|
graphicsOutput||asciiOutput);
|
||||||
else
|
else
|
||||||
musrCanvas = new PMusrCanvas(i, msrHandler->GetMsrTitle()->Data(),
|
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()) {
|
if (!musrCanvas->IsValid()) {
|
||||||
cerr << endl << ">> musrview **SEVERE ERROR** Couldn't invoke all necessary objects, will quit.";
|
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);
|
musrCanvas->SaveGraphicsAndQuit(fileName, graphicsExtension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (asciiOutput) {
|
||||||
|
// save data in batch mode
|
||||||
|
musrCanvas->SaveDataAscii();
|
||||||
|
musrCanvas->Done(0);
|
||||||
|
}
|
||||||
|
|
||||||
// keep musrCanvas objects
|
// keep musrCanvas objects
|
||||||
canvasVector.push_back(musrCanvas);
|
canvasVector.push_back(musrCanvas);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user