* Changed the exit condition for a few external classes in case the xml-file is not found.

Until now the program terminated with a segmentation fault which was not very user friendly...

* Got rid of a strange construction in the TRIM.SP handler (vector<pair> -> map)
This commit is contained in:
Bastian M. Wojek 2010-06-20 10:34:49 +00:00
parent f1a0dc72fc
commit 440d22bc99
17 changed files with 138 additions and 64 deletions

11
NEWS
View File

@ -1,9 +1,18 @@
#---------------------------------------------------------------------
# NEWS
# Andreas Suter, 2009/06/21
# Andreas Suter, 2010/06/15
# $Id: NEWS 4013 2009-06-21
#---------------------------------------------------------------------
musrfit 0.6.0
+ Added grouping of histograms
+ Added global mode to msr2data
+
+
+
+
musrfit 0.5.0
+ Initial release supporting building by autotools

6
README
View File

@ -1,16 +1,16 @@
#---------------------------------------------------------------------
# README
# Andreas Suter, 2009/06/21
# Andreas Suter, 2010/06/20
# $Id: README 4013 2009-06-21
#---------------------------------------------------------------------
musrfit - muSR data analysis package
Installation instructions can be found in INSTALL and at
https://wiki.intranet.psi.ch/MUSR/MusrFitSetup
https://intranet.psi.ch/MUSR/MusrFitSetup
For further documentation, please visit
https://wiki.intranet.psi.ch/MUSR/MusrFit
https://intranet.psi.ch/MUSR/MusrFit
#---------------------------------------------------------------------
# this is the end ...

View File

@ -79,9 +79,9 @@ AC_SUBST(CUBA_API_VERSION)
CUBA_LIBRARY_VERSION=1:6:0
PLUGIN_LIBRARY_VERSION=1:0:0
LEM_LIBRARY_VERSION=1:5:0
PSIBIN_LIBRARY_VERSION=0:0:0
PSIBIN_LIBRARY_VERSION=0:1:0
MUD_LIBRARY_VERSION=0:0:0
MUSR_LIBRARY_VERSION=0:5:0
MUSR_LIBRARY_VERSION=0:6:0
# | | |
# +------+ | +---+
# | | |

View File

@ -456,7 +456,7 @@ TProximity1D_1LHS::TProximity1D_1LHS(const vector<double> &param, unsigned int s
fParam.resize(param.size());
fParam[0] = param[0]; // Bext
(param[0] != param[1]) ? fParam[1] = param[1] : fParam[1] = param[1]-0.01; // B1
(param[0] != param[1]) ? fParam[1] = param[1] : fParam[1] = param[1]-0.001; // B1
(param[2] >= 0.) ? fParam[2] = param[2] : fParam[2] = 0.; // deadlayer
(param[3] >= 0.) ? fParam[3] = param[3] : fParam[3] = 0.; // thickness1
(param[3] >= 1.) ? fParam[4] = param[4] : fParam[4] = 1.; // lambda

View File

@ -351,19 +351,16 @@ void TFitPofBStartupHandler::CheckLists()
}
}
// fill the energies and labels in the pair-vector
// fill the energies and labels in the map
fEnergies.clear();
pair<double, string> p;
for(unsigned int i(0); i < fEnergyList.size(); i++) {
p.first = fEnergyList[i];
p.second = fEnergyLabelList[i];
fEnergies.push_back(p);
fEnergies[fEnergyList[i]] = fEnergyLabelList[i];
}
if(fDebug) {
cout << "Energies and Labels:";
for (unsigned int i (0); i < fEnergies.size(); i++)
cout << fEnergies[i].first << " " << fEnergies[i].second << endl;
for ( map<double, string>::const_iterator iter(fEnergies.begin()); iter != fEnergies.end(); ++iter )
cout << iter->first << " " << iter->second << endl;
}
// check if any number of steps for the theory function is specified

View File

@ -187,13 +187,16 @@ TLondon1DHS::TLondon1DHS() : fCalcNeeded(true), fFirstCall(true) {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0); // phase
fParForPofT.push_back(startupHandler->GetDeltat());
@ -348,13 +351,16 @@ TLondon1D1L::TLondon1D1L() : fCalcNeeded(true), fFirstCall(true), fCallCounter(0
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());
@ -499,13 +505,16 @@ TLondon1D2L::TLondon1D2L() : fCalcNeeded(true), fFirstCall(true), fLastTwoChange
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());
@ -653,13 +662,16 @@ TProximity1D1LHS::TProximity1D1LHS() : fCalcNeeded(true), fFirstCall(true) {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());
@ -819,13 +831,16 @@ TProximity1D1LHSGss::TProximity1D1LHSGss() : fCalcNeeded(true), fFirstCall(true)
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());
@ -957,13 +972,16 @@ TLondon1D3L::TLondon1D3L() : fCalcNeeded(true), fFirstCall(true), fLastThreeChan
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());
@ -1125,13 +1143,16 @@ TLondon1D3LS::TLondon1D3LS() : fCalcNeeded(true), fFirstCall(true), fLastThreeCh
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());
@ -1445,13 +1466,16 @@ TLondon1D3LSub::TLondon1D3LSub() : fCalcNeeded(true), fFirstCall(true), fWeights
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fNSteps = startupHandler->GetNSteps();
fWisdom = startupHandler->GetWisdomFile();
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
fParForPofT.push_back(0.0);
fParForPofT.push_back(startupHandler->GetDeltat());

View File

@ -531,3 +531,14 @@ void TPofBCalc::ConvolveGss(double w) {
return;
}
double TPofBCalc::GetFirstMoment() const {
double pBsum(0.0);
for (unsigned int i(0); i < fPBSize; i++)
pBsum += fB[i]*fPB[i];
pBsum *= fDB;
return pBsum;
}

View File

@ -58,18 +58,19 @@ using namespace std;
// Also always use the same format within one energyVec - otherwise sorting of the vector will not work properly!
//--------------------
TTrimSPData::TTrimSPData(const string &path, vector< pair<double, string> > &energies) {
TTrimSPData::TTrimSPData(const string &path, map<double, string> &energies) {
// sort the energies in ascending order - this might be useful for later applications (energy-interpolations etc.)
sort(energies.begin(), energies.end());
// after the change from the vector to the map this is not necessary any more - since maps are always ordered!
// sort(energies.begin(), energies.end());
double zz(0.0), nzz(0.0);
vector<double> vzz, vnzz;
string word, energyStr;
for(unsigned int i(0); i<energies.size(); i++) {
for ( map<double, string>::const_iterator iter(energies.begin()); iter != energies.end(); ++iter ) {
energyStr = path + energies[i].second + ".rge";
energyStr = path + iter->second + ".rge";
ifstream *rgeFile = new ifstream(energyStr.c_str());
if(! *rgeFile) {
@ -77,7 +78,7 @@ TTrimSPData::TTrimSPData(const string &path, vector< pair<double, string> > &ene
delete rgeFile;
rgeFile = 0;
} else {
fEnergy.push_back(energies[i].first);
fEnergy.push_back(iter->first);
while(*rgeFile >> word)
if(word == "PARTICLES") break;

View File

@ -127,7 +127,10 @@ TBulkTriVortexLondon::TBulkTriVortexLondon() : fCalcNeeded(true), fFirstCall(tru
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fGridSteps = startupHandler->GetGridSteps();
@ -265,7 +268,10 @@ TBulkTriVortexML::TBulkTriVortexML() : fCalcNeeded(true), fFirstCall(true) {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fGridSteps = startupHandler->GetGridSteps();
@ -404,7 +410,10 @@ TBulkTriVortexAGL::TBulkTriVortexAGL() : fCalcNeeded(true), fFirstCall(true) {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fGridSteps = startupHandler->GetGridSteps();
@ -543,7 +552,10 @@ TBulkTriVortexNGL::TBulkTriVortexNGL() : fCalcNeeded(true), fFirstCall(true) {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
fGridSteps = startupHandler->GetGridSteps();

View File

@ -40,6 +40,7 @@
#include <TQObject.h>
#include <string>
#include <vector>
#include <map>
class TFitPofBStartupHandler : public TQObject {
public:
@ -60,7 +61,7 @@ class TFitPofBStartupHandler : public TQObject {
virtual void CheckLists();
virtual const string GetDataPath() const { return fDataPath; }
virtual vector< pair<double, string> > GetEnergies() const { return fEnergies; }
virtual map<double, string> GetEnergies() const { return fEnergies; }
virtual const double GetDeltat() const { return fDeltat; }
virtual const double GetDeltaB() const { return fDeltaB; }
virtual const string GetWisdomFile() const { return fWisdomFile; }
@ -79,7 +80,7 @@ class TFitPofBStartupHandler : public TQObject {
string fDataPath;
vector<string> fEnergyLabelList;
vector<double> fEnergyList;
vector< pair<double, string> > fEnergies;
map<double, string> fEnergies;
double fDeltat;
double fDeltaB;
string fWisdomFile;

View File

@ -64,6 +64,7 @@ public:
unsigned int GetPBSize() const {return fPBSize;}
void ConvolveGss(double);
void AddBackground(double, double, double);
double GetFirstMoment() const;
void UnsetPBExists();
private:

View File

@ -34,13 +34,14 @@
#include <vector>
#include <string>
#include <map>
using namespace std;
class TTrimSPData {
public:
TTrimSPData(const string&, vector< pair<double, string> >&);
TTrimSPData(const string&, map<double, string>&);
~TTrimSPData() {
fDataZ.clear();

View File

@ -29,6 +29,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include <cassert>
#include <algorithm>
#include <functional>
#include <string>
@ -58,11 +59,14 @@ TMeanFieldsForScHalfSpace::TMeanFieldsForScHalfSpace() {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
fImpProfile = x;
@ -147,11 +151,14 @@ TMeanFieldsForScSingleLayer::TMeanFieldsForScSingleLayer() {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
fImpProfile = x;
@ -244,11 +251,14 @@ TMeanFieldsForScBilayer::TMeanFieldsForScBilayer() {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
fImpProfile = x;
@ -345,11 +355,14 @@ TMeanFieldsForScTrilayer::TMeanFieldsForScTrilayer() {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
fImpProfile = x;
@ -448,11 +461,14 @@ TMeanFieldsForScTrilayerWithInsulator::TMeanFieldsForScTrilayerWithInsulator() {
int status (saxParser->ParseFile(startup_path_name.c_str()));
// check for parse errors
if (status) { // error
cout << endl << "**WARNING** reading/parsing TFitPofB_startup.xml failed." << endl;
cerr << endl << "**ERROR** reading/parsing TFitPofB_startup.xml failed." \
<< endl << "**ERROR** Please make sure that the file exists in the local directory and it is set up correctly!" \
<< endl;
assert(false);
}
string rge_path(startupHandler->GetDataPath());
vector< pair<double, string> > energy_vec(startupHandler->GetEnergies());
map<double, string> energy_vec(startupHandler->GetEnergies());
TTrimSPData *x = new TTrimSPData(rge_path, energy_vec);
fImpProfile = x;

View File

@ -32,6 +32,7 @@
#include <cassert>
#include <sys/time.h>
#include <iostream>
#include <cmath>
#include "../BMWIntegrator/BMWIntegrator.h"
#include "TLFRelaxation.h"
@ -135,7 +136,7 @@ double TLFStatLorKT::operator()(double t, const vector<double> &par) const {
TLFDynGssKT::TLFDynGssKT() : fCalcNeeded(true), fFirstCall(true), fWisdom("WordsOfWisdom.dat"), fNSteps(524288), fDt(0.00004), fCounter(0) {
// Calculate d_omega and C for given NFFT and dt
fDw = PI/fNSteps/fDt;
fC = 2.0*gsl_sf_log(double(fNSteps))/(double(fNSteps-1)*fDt);
fC = 2.0*TMath::Log(double(fNSteps))/(double(fNSteps-1)*fDt);
// Load FFTW Wisdom
int wisdomLoaded(0);
@ -223,7 +224,7 @@ double TLFDynGssKT::operator()(double t, const vector<double> &par) const {
}
if((par[2] >= 5.0*par[1]) || (omegaL >= 10.0*par[1])) {
return exp(-2.0*sigsq/(omegaLnusqp*omegaLnusqp)*(omegaLnusqp*nut+omegaLnusqm*(1.0-enut*gsl_sf_cos(wt))-2.0*par[2]*omegaL*enut*gsl_sf_sin(wt))); // Keren
return exp(-2.0*sigsq/(omegaLnusqp*omegaLnusqp)*(omegaLnusqp*nut+omegaLnusqm*(1.0-enut*cos(wt))-2.0*par[2]*omegaL*enut*sin(wt))); // Keren
}
if(fCalcNeeded) {
@ -251,7 +252,7 @@ double TLFDynGssKT::operator()(double t, const vector<double> &par) const {
for(unsigned int i(1); i<fNSteps; i++) {
tt=(double(i)-0.5)*fDt;
fFFTtime[i]=(gsl_sf_sin(omegaL*tt) * exp(-0.5*sigsq*tt*tt))*fDt;
fFFTtime[i]=(sin(omegaL*tt) * exp(-0.5*sigsq*tt*tt))*fDt;
}
double totoIntegrale(0.);
@ -259,7 +260,7 @@ double TLFDynGssKT::operator()(double t, const vector<double> &par) const {
for(unsigned int i(1); i<fNSteps; i++) {
tt=double(i)*fDt;
totoIntegrale+=fFFTtime[i];
fFFTtime[i]=(1.0-(coeff1*(1.0-exp(-0.5*sigsq*tt*tt)*gsl_sf_cos(omegaL*tt)))+(coeff2*totoIntegrale))*exp(mcplusnu*tt)*fDt;
fFFTtime[i]=(1.0-(coeff1*(1.0-exp(-0.5*sigsq*tt*tt)*cos(omegaL*tt)))+(coeff2*totoIntegrale))*exp(mcplusnu*tt)*fDt;
}
}
/*

View File

@ -38,11 +38,11 @@
using namespace std;
#include "gsl/gsl_math.h"
#include "gsl/gsl_sf_exp.h"
#include "gsl/gsl_sf_log.h"
#include "gsl/gsl_sf_trig.h"
#include "gsl/gsl_sf_bessel.h"
//#include "gsl/gsl_math.h"
//#include "gsl/gsl_sf_exp.h"
//#include "gsl/gsl_sf_log.h"
//#include "gsl/gsl_sf_trig.h"
//#include "gsl/gsl_sf_bessel.h"
//#include "TMath.h"

View File

@ -12,7 +12,7 @@ cpp_sources = mud_all.c \
include_HEADERS = mud.h
INCLUDES = -I.
AM_CXXFLAGS = $(LOCAL_MUD_LIB_CXXFLAGS)
AM_CFLAGS = $(LOCAL_MUD_LIB_CXXFLAGS)
AM_LDFLAGS = $(LOCAL_LIB_LDFLAGS)
CLEANFILES = *~ core

View File

@ -106,10 +106,10 @@ void msr2data_syntax()
cout << endl << " global : switch on the global-fit mode";
cout << endl << " Within that mode all specified runs will be united in a single msr-file!";
cout << endl << " The fit parameters can be either run specific or common to all runs.";
cout << endl << " For a complete description of this feature please refer to the manual (yet to be written).";
cout << endl << " For a complete description of this feature please refer to the manual.";
cout << endl;
cout << endl << " For further information please refer to";
cout << endl << " https://wiki.intranet.psi.ch/MUSR/Msr2Data";
cout << endl << " https://intranet.psi.ch/MUSR/Msr2Data";
cout << endl << endl;
}