From e3ac790371140897238b0af8a41cffb04aae7621 Mon Sep 17 00:00:00 2001 From: "Bastian M. Wojek" Date: Sun, 20 Sep 2009 11:35:01 +0000 Subject: [PATCH] PSIBIN-changes... --- configure.ac | 41 ++++++++++++++++--- src/external/Makefile.am | 2 +- .../Class_MuSR_PSI/Class_MuSR_PSI.pc.in | 10 +++++ .../MuSR_software/Class_MuSR_PSI/Makefile.am | 22 ++++++++++ src/external/MuSR_software/Makefile.am | 1 + .../TFitPofB-lib/classes/TLondon1D.cpp | 12 +++++- .../libGapIntegrals/Makefile.libGapIntegrals | 10 ++++- src/external/libGapIntegrals/TIntegrator.cpp | 2 +- .../libLFRelaxation/Makefile.libLFRelaxation | 12 +++--- src/external/libLFRelaxation/TIntegrator.h | 17 ++++++++ src/external/libLFRelaxation/TLFRelaxation.h | 17 +++++--- 11 files changed, 123 insertions(+), 23 deletions(-) create mode 100644 src/external/MuSR_software/Class_MuSR_PSI/Class_MuSR_PSI.pc.in create mode 100644 src/external/MuSR_software/Class_MuSR_PSI/Makefile.am create mode 100644 src/external/MuSR_software/Makefile.am diff --git a/configure.ac b/configure.ac index 08519f48..38702112 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,7 @@ dnl ----------------------------------------------- MUSR_PROGRAM_NAME=musrfit MUSR_LIBRARY_NAME=PMusr LEM_LIBRARY_NAME=TLemRunHeader +PSIBIN_LIBRARY_NAME=Class_MuSR_PSI #release versioning MUSR_MAJOR_VERSION=0 @@ -20,6 +21,11 @@ LEM_MAJOR_VERSION=1 LEM_MINOR_VERSION=5 LEM_MICRO_VERSION=0 +#release versioning +PSIBIN_MAJOR_VERSION=0 +PSIBIN_MINOR_VERSION=0 +PSIBIN_MICRO_VERSION=0 + #API version MUSR_API_VERSION=MUSR_MAJOR_VERSION.MUSR_MINOR_VERSION AC_SUBST(MUSR_API_VERSION) @@ -27,8 +33,12 @@ AC_SUBST(MUSR_API_VERSION) LEM_API_VERSION=LEM_MAJOR_VERSION.LEM_MINOR_VERSION AC_SUBST(LEM_API_VERSION) +PSIBIN_API_VERSION=PSIBIN_MAJOR_VERSION.PSIBIN_MINOR_VERSION +AC_SUBST(PSIBIN_API_VERSION) + #shared library versioning LEM_LIBRARY_VERSION=1:5:0 +PSIBIN_LIBRARY_VERSION=0:0:0 MUSR_LIBRARY_VERSION=0:5:0 # | | | # +------+ | +---+ @@ -44,10 +54,17 @@ MUSR_LIBRARY_VERSION=0:5:0 AC_SUBST(MUSR_LIBRARY_VERSION) AC_SUBST(LEM_LIBRARY_VERSION) +AC_SUBST(PSIBIN_LIBRARY_VERSION) PACKAGE=$MUSR_PROGRAM_NAME AC_SUBST(MUSR_LIBRARY_NAME) AC_SUBST(LEM_LIBRARY_NAME) +AC_SUBST(PSIBIN_LIBRARY_NAME) + +PSIBIN_VERSION=$PSIBIN_MAJOR_VERSION.$PSIBIN_MINOR_VERSION.$PSIBIN_MICRO_VERSION +PSIBIN_RELEASE=$PSIBIN_MAJOR_VERSION.$PSIBIN_MINOR_VERSION +AC_SUBST(PSIBIN_RELEASE) +AC_SUBST(PSIBIN_VERSION) LEM_VERSION=$LEM_MAJOR_VERSION.$LEM_MINOR_VERSION.$LEM_MICRO_VERSION LEM_RELEASE=$LEM_MAJOR_VERSION.$LEM_MINOR_VERSION @@ -70,12 +87,12 @@ AC_CONFIG_HEADER([config.h]) AC_LANG(C++) # Checks for programs. -AC_PROG_AWK +# AC_PROG_AWK AC_PROG_CXX -AC_PROG_CC -AC_PROG_LEX +# AC_PROG_CC +# AC_PROG_LEX AC_PROG_LN_S -AC_PROG_YACC +# AC_PROG_YACC AC_PROG_INSTALL AM_PROG_LIBTOOL ROOT_PATH @@ -224,11 +241,17 @@ AC_CHECK_FILE([${ROOTINCDIR}/../include/Minuit2/MnMinimize.h], AC_MSG_RESULT([Mi dnl ----------------------------------------------- -dnl Set some paths and flags for PMusr and TLemRunHeader +dnl Set some paths and flags for PMusr and TLemRunHeader and Class_MuSR_PSI dnl ----------------------------------------------- SRCDIR="$(pwd)" +PSIBIN_SRCDIR="${SRCDIR}/src/external/MuSR_software/Class_MuSR_PSI" +PSIBIN_LIBS="-L${PSIBIN_SRCDIR} -l${PSIBIN_LIBRARY_NAME}" +PSIBIN_CFLAGS="-I${PSIBIN_SRCDIR}" +AC_SUBST(PSIBIN_LIBS) +AC_SUBST(PSIBIN_CFLAGS) + LEM_SRCDIR="${SRCDIR}/src/external/TLemRunHeader" LEM_LIBS="-L${LEM_SRCDIR} -l${LEM_LIBRARY_NAME}" LEM_CFLAGS="-I${LEM_SRCDIR}" @@ -247,6 +270,7 @@ dnl ----------------------------------------------- LOCAL_BIN_CXXFLAGS="-Wall -Wno-trigraphs" LOCAL_LIB_CXXFLAGS="${LOCAL_BIN_CXXFLAGS}" +LOCAL_PSIBIN_LIB_CXXFLAGS="${LOCAL_LIB_CXXFLAGS}" LOCAL_BIN_LDFLAGS= LOCAL_LIB_LDFLAGS= @@ -254,6 +278,7 @@ case "$host" in *-*-cygwin) LOCAL_BIN_CXXFLAGS="${LOCAL_BIN_CXXFLAGS}" LOCAL_LIB_CXXFLAGS="${LOCAL_BIN_CXXFLAGS} -D_DLL" + LOCAL_PSIBIN_LIB_CXXFLAGS="${LOCAL_LIB_CXXFLAGS} -D_WIN32" LOCAL_BIN_LDFLAGS="${LOCAL_BIN_LDFLAGS} -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" LOCAL_LIB_LDFLAGS="-no-undefined ${LOCAL_BIN_LDFLAGS} -Wl,--export-all-symbols" ;; @@ -261,6 +286,7 @@ esac AC_SUBST(LOCAL_BIN_CXXFLAGS) AC_SUBST(LOCAL_LIB_CXXFLAGS) +AC_SUBST(LOCAL_PSIBIN_LIB_CXXFLAGS) AC_SUBST(LOCAL_BIN_LDFLAGS) AC_SUBST(LOCAL_LIB_LDFLAGS) @@ -296,5 +322,8 @@ AC_CONFIG_FILES([Makefile \ src/classes/PMusr.pc \ src/external/Makefile \ src/external/TLemRunHeader/Makefile \ - src/external/TLemRunHeader/TLemRunHeader.pc]) + src/external/TLemRunHeader/TLemRunHeader.pc \ + src/external/MuSR_software/Makefile \ + src/external/MuSR_software/Class_MuSR_PSI/Makefile \ + src/external/MuSR_software/Class_MuSR_PSI/Class_MuSR_PSI.pc]) AC_OUTPUT diff --git a/src/external/Makefile.am b/src/external/Makefile.am index b8345b71..20485dca 100644 --- a/src/external/Makefile.am +++ b/src/external/Makefile.am @@ -1 +1 @@ -SUBDIRS = TLemRunHeader +SUBDIRS = TLemRunHeader MuSR_software diff --git a/src/external/MuSR_software/Class_MuSR_PSI/Class_MuSR_PSI.pc.in b/src/external/MuSR_software/Class_MuSR_PSI/Class_MuSR_PSI.pc.in new file mode 100644 index 00000000..0cb47085 --- /dev/null +++ b/src/external/MuSR_software/Class_MuSR_PSI/Class_MuSR_PSI.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: Class_MuSR_PSI +Description: C++ shared library providing the MuSR_td_PSI_bin class +Version: @PSIBIN_VERSION@ +Libs: -L${libdir} -l@PSIBIN_LIBRARY_NAME@ +Cflags: -I${includedir} diff --git a/src/external/MuSR_software/Class_MuSR_PSI/Makefile.am b/src/external/MuSR_software/Class_MuSR_PSI/Makefile.am new file mode 100644 index 00000000..f5b08178 --- /dev/null +++ b/src/external/MuSR_software/Class_MuSR_PSI/Makefile.am @@ -0,0 +1,22 @@ +## Process this file with automake to create Makefile.in + +h_sources = MuSR_td_PSI_bin.h tydefs.h +cpp_sources = MuSR_td_PSI_bin.cpp + +include_HEADERS = MuSR_td_PSI_bin.h +noinst_HEADERS = tydefs.h + +INCLUDES = -I. +AM_CXXFLAGS = $(LOCAL_PSIBIN_LIB_CXXFLAGS) + +AM_LDFLAGS = $(LOCAL_LIB_LDFLAGS) +CLEANFILES = *~ core + +lib_LTLIBRARIES = libClass_MuSR_PSI.la + +libClass_MuSR_PSI_la_SOURCES = $(h_sources) $(cpp_sources) +libClass_MuSR_PSI_la_LDFLAGS = $(AM_LDFLAGS) + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = Class_MuSR_PSI.pc + diff --git a/src/external/MuSR_software/Makefile.am b/src/external/MuSR_software/Makefile.am new file mode 100644 index 00000000..3721bf7a --- /dev/null +++ b/src/external/MuSR_software/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = Class_MuSR_PSI diff --git a/src/external/TFitPofB-lib/classes/TLondon1D.cpp b/src/external/TFitPofB-lib/classes/TLondon1D.cpp index 6bcec9e4..15cf6fc8 100644 --- a/src/external/TFitPofB-lib/classes/TLondon1D.cpp +++ b/src/external/TFitPofB-lib/classes/TLondon1D.cpp @@ -199,12 +199,13 @@ TLondon1DHS::TLondon1DHS() : fCalcNeeded(true), fFirstCall(true) { double TLondon1DHS::operator()(double t, const vector &par) const { - assert(par.size() == 5); + assert(par.size() == 5 || par.size() == 6); if(t<0.0) return cos(par[0]*0.017453293); bool dead_layer_changed(false); + bool width_changed(false); // check if the function is called the first time and if yes, read in parameters @@ -221,7 +222,8 @@ double TLondon1DHS::operator()(double t, const vector &par) const { } fFirstCall = false; dead_layer_changed = true; -// cout << this << endl; + if(par.size() == 6) + width_changed = true; } // check if any parameter has changed @@ -239,6 +241,8 @@ double TLondon1DHS::operator()(double t, const vector &par) const { only_phase_changed = false; if (i == 3) { dead_layer_changed = true; + } else if (i == 5) { + width_changed = true; } } } @@ -260,6 +264,10 @@ double TLondon1DHS::operator()(double t, const vector &par) const { for (unsigned int i(2); iConvolveGss(par[5], par[1]); + } + fParForPofB[2] = par[1]; // energy fParForPofB[3] = par[2]; // Bkg-Field //fParForPofB[4] = 0.005; // Bkg-width (in principle zero) diff --git a/src/external/libGapIntegrals/Makefile.libGapIntegrals b/src/external/libGapIntegrals/Makefile.libGapIntegrals index ff85507b..f992d44e 100644 --- a/src/external/libGapIntegrals/Makefile.libGapIntegrals +++ b/src/external/libGapIntegrals/Makefile.libGapIntegrals @@ -93,12 +93,16 @@ GLIBS = $(ROOTGLIBS) GSLLIB = -lgslcblas -lgsl # Cuba lib CUBALIB = -L/usr/local/lib -lcuba -lm +# PMusr lib +PMUSRLIB = -L$(ROOTSYS)/lib -lPMusr ifeq ($(OS),WIN32GCC) # GSL lib GSLLIB = -L/usr/lib -lgslcblas -lgsl # Cuba lib CUBALIB = -L/usr/local/lib -lcuba -lm +# PMusr lib +PMUSRLIB = -L$(ROOTSYS)/lib -lPMusr -lMathMore endif ifeq ($(OS),DARWIN) @@ -106,6 +110,8 @@ ifeq ($(OS),DARWIN) GSLLIB = -L/sw/lib -lgslcblas -lgsl # Cuba lib CUBALIB = -L/sw/lib -lcuba -lm +# PMusr lib +PMUSRLIB = -L$(ROOTSYS)/lib -lPMusr -lMathMore endif # some definitions: headers (used to generate *Dict* stuff), sources, objects,... @@ -120,7 +126,7 @@ all: $(SHLIB) $(SHLIB): $(OBJS) @echo "---> Building shared library $(SHLIB) ..." /bin/rm -f $(SHLIB) - $(LD) $(SOFLAGS) -o $(SHLIB) $(OBJS) $(LDFLAGS) $(LIBS) $(GSLLIB) $(CUBALIB) + $(LD) $(SOFLAGS) $(LDFLAGS) -o $(SHLIB) $(OBJS) $(LIBS) $(PMUSRLIB) $(GSLLIB) $(CUBALIB) @echo "done" # clean up: remove all object file (and core files) @@ -138,7 +144,7 @@ $(OBJS): %.o: %.cpp TGapIntegralsDict.cpp: ./TIntegrator.h ./TGapIntegrals.h ./TGapIntegralsLinkDef.h @echo "Generating dictionary $@..." - rootcint -f $@ -c -p -I$(PMUSRPATH) $^ + rootcint -f $@ -c -p $^ install: all @echo "Installing shared lib: $(SHLIB)" diff --git a/src/external/libGapIntegrals/TIntegrator.cpp b/src/external/libGapIntegrals/TIntegrator.cpp index 129bcaa2..f20c5274 100644 --- a/src/external/libGapIntegrals/TIntegrator.cpp +++ b/src/external/libGapIntegrals/TIntegrator.cpp @@ -1,6 +1,6 @@ /*************************************************************************** - TIntegrator.h + TIntegrator.cpp Author: Bastian M. Wojek e-mail: bastian.wojek@psi.ch diff --git a/src/external/libLFRelaxation/Makefile.libLFRelaxation b/src/external/libLFRelaxation/Makefile.libLFRelaxation index bd752a6a..21563e4d 100644 --- a/src/external/libLFRelaxation/Makefile.libLFRelaxation +++ b/src/external/libLFRelaxation/Makefile.libLFRelaxation @@ -7,16 +7,16 @@ ROOTCFLAGS = $(shell $(ROOTSYS)/bin/root-config --cflags) #--------------------------------------------------- OS = LINUX -CXX = g++ -CXXFLAGS = -g -Wall -Wno-trigraphs -fPIC +CXX = g++-4.4.0 +CXXFLAGS = -O3 -Wall -Wno-trigraphs -fPIC MUSRFITINCLUDE = ../../include #MUSRFITINCLUDE = /home/l_wojek/rep/analysis/musrfit/src/include LOCALINCLUDE = . -ROOTINCLUDE = $(ROOTSYS)/include/root +ROOTINCLUDE = $(ROOTSYS)/include INCLUDES = -I$(LOCALINCLUDE) -I$(MUSRFITINCLUDE) -I$(ROOTINCLUDE) -LD = g++ -LDFLAGS = -g -SOFLAGS = -O -shared +LD = g++-4.4.0 +LDFLAGS = -O3 +SOFLAGS = -shared # the output from the root-config script: CXXFLAGS += $(ROOTCFLAGS) diff --git a/src/external/libLFRelaxation/TIntegrator.h b/src/external/libLFRelaxation/TIntegrator.h index ea96d2e1..43fbf622 100644 --- a/src/external/libLFRelaxation/TIntegrator.h +++ b/src/external/libLFRelaxation/TIntegrator.h @@ -90,4 +90,21 @@ inline double TIntSinGss::FuncAtX(double x) const return TMath::Sin(TMath::TwoPi()*fPar[0]*x) * TMath::Exp(-0.5*fPar[1]*fPar[1]*x*x); } +// To be integrated: df/dE * E / sqrt(E^2+ Delta^2) + +class TGapIntegral : public TIntegrator { + public: + TGapIntegral() {} + ~TGapIntegral() {} + double FuncAtX(double) const; // parameter: E + +}; + +inline double TGapIntegral::FuncAtX(double e) const +{ + double kt(0.08617384436*fPar[0]); // kB in meV/K + double expekt(TMath::Exp(e/kt)); + return -expekt*e/(kt*(1.0+expekt)*TMath::Sqrt(e*e+fPar[1]*fPar[1])); +} + #endif //_TIntegrator_H_ diff --git a/src/external/libLFRelaxation/TLFRelaxation.h b/src/external/libLFRelaxation/TLFRelaxation.h index 005aa383..f541ee10 100644 --- a/src/external/libLFRelaxation/TLFRelaxation.h +++ b/src/external/libLFRelaxation/TLFRelaxation.h @@ -18,11 +18,18 @@ using namespace std; -#include -#include -#include -#include -#include +//#include +//#include +//#include +//#include +//#include + +#include "/usr/include/gsl/gsl_math.h" +#include "/usr/include/gsl/gsl_sf_exp.h" +#include "/usr/include/gsl/gsl_sf_log.h" +#include "/usr/include/gsl/gsl_sf_trig.h" +#include "/usr/include/gsl/gsl_sf_bessel.h" + //#include "TMath.h" #include "PUserFcnBase.h"