From cb995d984d9a4bfbad1b80edd4dd8ce69f13c8ef Mon Sep 17 00:00:00 2001 From: "Bastian M. Wojek" Date: Mon, 9 May 2011 13:06:27 +0000 Subject: [PATCH] Commit some code snippets lying around here already for a few years --- configure.ac | 1 + src/external/Makefile.am | 1 + src/external/libZFRelaxation/Makefile.am | 57 +++++++++++ src/external/libZFRelaxation/ZFRelaxation.cpp | 73 ++++++++++++++ src/external/libZFRelaxation/ZFRelaxation.h | 89 ++++++++++++++++++ .../libZFRelaxation/ZFRelaxationLinkDef.h | 43 +++++++++ .../BMWlibs/data/deltat_pta_gps_4255.bin | Bin 0 -> 164864 bytes .../BMWlibs/test-libZFRelaxation-PSI-BIN.msr | 57 +++++++++++ 8 files changed, 321 insertions(+) create mode 100644 src/external/libZFRelaxation/Makefile.am create mode 100644 src/external/libZFRelaxation/ZFRelaxation.cpp create mode 100644 src/external/libZFRelaxation/ZFRelaxation.h create mode 100644 src/external/libZFRelaxation/ZFRelaxationLinkDef.h create mode 100644 src/tests/CheckMusrfitInstall/BMWlibs/data/deltat_pta_gps_4255.bin create mode 100644 src/tests/CheckMusrfitInstall/BMWlibs/test-libZFRelaxation-PSI-BIN.msr diff --git a/configure.ac b/configure.ac index a9eda71b..1c82456d 100644 --- a/configure.ac +++ b/configure.ac @@ -811,6 +811,7 @@ AC_CONFIG_FILES([Makefile \ src/external/libFitPofB/Makefile \ src/external/libFitPofB/classes/Makefile \ src/external/libLFRelaxation/Makefile \ + src/external/libZFRelaxation/Makefile \ src/external/libGapIntegrals/Makefile \ src/external/libCalcMeanFieldsLEM/Makefile \ src/external/Nonlocal/Makefile \ diff --git a/src/external/Makefile.am b/src/external/Makefile.am index ad090ce6..2f5f75e7 100644 --- a/src/external/Makefile.am +++ b/src/external/Makefile.am @@ -13,6 +13,7 @@ if BUILD_BMWLIBS BMWDIRS = BMWtools \ libFitPofB \ libLFRelaxation \ + libZFRelaxation \ libGapIntegrals \ libCalcMeanFieldsLEM endif diff --git a/src/external/libZFRelaxation/Makefile.am b/src/external/libZFRelaxation/Makefile.am new file mode 100644 index 00000000..139dbb67 --- /dev/null +++ b/src/external/libZFRelaxation/Makefile.am @@ -0,0 +1,57 @@ +## Process this file with automake to create Makefile.in +## $Id$ + +h_sources = \ + ZFRelaxation.h + +h_linkdef = \ + ZFRelaxationLinkDef.h + +dict_h_sources = \ + ZFRelaxationDict.h + +cpp_sources = \ + ZFRelaxation.cpp + +dict_cpp_sources = \ + ZFRelaxationDict.cpp + +include_HEADERS = $(h_sources) +noinst_HEADERS = $(h_linkdef) $(dict_h_sources) + +INCLUDES = -I$(top_srcdir)/src/include $(PMUSR_CFLAGS) $(ROOT_CFLAGS) +AM_CXXFLAGS = $(LOCAL_LIB_CXXFLAGS) + +BUILT_SOURCES = $(dict_cpp_sources) $(dict_h_sources) +AM_LDFLAGS = $(LOCAL_LIB_LDFLAGS) -L@ROOTLIBDIR@ +CLEANFILES = *Dict.cpp *Dict.h *~ core + +%Dict.cpp %Dict.h: %.h %LinkDef.h + @ROOTCINT@ -v -f $*Dict.cpp -c -p $(INCLUDES) $^ + +lib_LTLIBRARIES = libZFRelaxation.la + +libZFRelaxation_la_SOURCES = $(h_sources) $(cpp_sources) $(dict_h_sources) $(dict_cpp_sources) +libZFRelaxation_la_LIBADD = $(USERFCN_LIBS) $(ROOT_LIBS) +libZFRelaxation_la_LDFLAGS = -version-info $(PLUGIN_LIBRARY_VERSION) -release $(PLUGIN_RELEASE) $(AM_LDFLAGS) + +## For the moment do not build pkgconfig files for musrfit plug-ins... +## pkgconfigdir = $(libdir)/pkgconfig +## pkgconfig_DATA = ZFRelaxation.pc + +## However, create some symbolic links to the shared library +## in order to unify the function call on different operating systems + +if IS_DARWIN +install-exec-hook: + $(LN_S) $(libdir)/libZFRelaxation.dylib $(libdir)/libZFRelaxation.so +uninstall-hook: + rm -f $(libdir)/libZFRelaxation.so +endif + +if IS_CYGWIN +install-exec-hook: + $(LN_S) $(bindir)/cygZFRelaxation-$(PLUGIN_MAJOR_VERSION)-$(PLUGIN_MINOR_VERSION)-$(PLUGIN_MAJOR_VERSION).dll $(libdir)/libZFRelaxation.so +uninstall-hook: + rm -f $(libdir)/libZFRelaxation.so +endif diff --git a/src/external/libZFRelaxation/ZFRelaxation.cpp b/src/external/libZFRelaxation/ZFRelaxation.cpp new file mode 100644 index 00000000..4cd656a1 --- /dev/null +++ b/src/external/libZFRelaxation/ZFRelaxation.cpp @@ -0,0 +1,73 @@ +/*************************************************************************** + + ZFRelaxation.cpp + + Author: Bastian M. Wojek + + $Id$ + +***************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2009 by Bastian M. Wojek * + * * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#define TWO_PI 6.28318530717958623 +#define DEG_TO_RAD 0.0174532925199432955 + +#include "ZFRelaxation.h" + +#include +#include +#include + +using namespace std; + +ClassImp(ZFMagGss) +ClassImp(ZFMagExp) + +//-------------------------------------------------------------------------- +// ZFMagGss::operator() +//-------------------------------------------------------------------------- +/** + *

Method returning the function value at a given time for a given set of parameters. + * + * \param t time \htmlonly (μs) \endhtmlonly \latexonly ($\mu\mathrm{s}$) \endlatexonly + * \param par parameters [\htmlonly α (1), ν (MHz), σT; (μs-1), σL; (μs-1)\endhtmlonly \latexonly $\alpha~(1)$, $\nu~(\mathrm{MHz})$, $\sigma_{\mathrm{T}}~(\mu\mathrm{s}^{-1})$, $\sigma_{\mathrm{L}}~(\mu\mathrm{s}^{-1})$ \endlatexonly] + */ +double ZFMagGss::operator()(double t, const vector &par) const { + assert(par.size()==4); + double w(TWO_PI * par[1]), sst(par[2]*par[2]*t); + return par[0] * (cos(w*t) - sst/w*sin(w*t)) * exp(-0.5*sst*t) + (1.0-par[0]) * exp(-0.5*par[3]*par[3]*t*t); +} + +//-------------------------------------------------------------------------- +// ZFMagExp::operator() +//-------------------------------------------------------------------------- +/** + *

Method returning the function value at a given time for a given set of parameters. + * + * \param t time \htmlonly (μs) \endhtmlonly \latexonly ($\mu\mathrm{s}$) \endlatexonly + * \param par parameters [\htmlonly α (1), ν (MHz), aT; (μs-1), aL; (μs-1)\endhtmlonly \latexonly $\alpha~(1)$, $\nu~(\mathrm{MHz})$, $a_{\mathrm{T}}~(\mu\mathrm{s}^{-1})$, $a_{\mathrm{L}}~(\mu\mathrm{s}^{-1})$ \endlatexonly] + */ +double ZFMagExp::operator()(double t, const vector &par) const { + assert(par.size()==4); + double w(TWO_PI * par[1]); + return par[0] * (cos(w*t) - par[2]/w*sin(w*t)) * exp(-par[2]*t) + (1.0-par[0]) * exp(-par[3]*t); +} diff --git a/src/external/libZFRelaxation/ZFRelaxation.h b/src/external/libZFRelaxation/ZFRelaxation.h new file mode 100644 index 00000000..8d8c8865 --- /dev/null +++ b/src/external/libZFRelaxation/ZFRelaxation.h @@ -0,0 +1,89 @@ +/*************************************************************************** + + ZFRelaxation.h + + Author: Bastian M. Wojek + + $Id$ + +***************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2009 by Bastian M. Wojek * + * * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef _ZFRelaxation_H_ +#define _ZFRelaxation_H_ + +#include "PUserFcnBase.h" + +#include +using namespace std; + +//----------------------------------------------------------------------------------------------------------------- +/** + *

User function for the muon spin depolarization resulting from static Gaussian broadened randomly oriented internal fields + * See also: E.I. Kornilov and V.Yu. Pomjakushin + * \htmlonly Phys. Lett. A 153, 364–367 (1991), doi:10.1016/0375-9601(91)90959-C + * \endhtmlonly + * \latexonly Phys. Lett. A \textbf{153}, 364--367 (1991), \texttt{http://dx.doi.org/10.1016/0375-9601(91)90959-C} + * \endlatexonly + */ +class ZFMagGss : public PUserFcnBase { + +public: + // default constructor + ZFMagGss(){} ///< default constructor + ~ZFMagGss(){} ///< default destructor + + Bool_t NeedGlobalPart() const { return false; } + void SetGlobalPart(vector &globalPart, UInt_t idx) { } + Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const vector&) const; + + ClassDef(ZFMagGss,1) +}; + +//----------------------------------------------------------------------------------------------------------------- +/** + *

User function for the muon spin depolarization resulting from static Lorentzian broadened randomly oriented internal fields + * See also: M. I. Larkin, Y. Fudamoto, I. M. Gat, A. Kinkhabwala, K. M. Kojima, G. M. Luke, J. Merrin, B. Nachumi, Y. J. Uemura, M. Azuma, T. Saito, and M. Takano + * \htmlonly Physica B 289–290, 153–156 (2000), doi:10.1016/S0921-4526(00)00337-9 + * \endhtmlonly + * \latexonly Physica B \textbf{289--290}, 153--156 (2000), \texttt{http://dx.doi.org/10.1016/S0921-4526(00)00337-9} + * \endlatexonly + */ +class ZFMagExp : public PUserFcnBase { + +public: + // default constructor + ZFMagExp(){} ///< default constructor + ~ZFMagExp(){} ///< default destructor + + Bool_t NeedGlobalPart() const { return false; } + void SetGlobalPart(vector &globalPart, UInt_t idx) { } + Bool_t GlobalPartIsValid() const { return true; } + + double operator()(double, const vector&) const; + + ClassDef(ZFMagExp,1) +}; + +#endif //_ZFRelaxation_H_ diff --git a/src/external/libZFRelaxation/ZFRelaxationLinkDef.h b/src/external/libZFRelaxation/ZFRelaxationLinkDef.h new file mode 100644 index 00000000..d817b1dc --- /dev/null +++ b/src/external/libZFRelaxation/ZFRelaxationLinkDef.h @@ -0,0 +1,43 @@ +/*************************************************************************** + + ZFRelaxationLinkDef.h + + Author: Bastian M. Wojek + + $Id$ + +***************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2009 by Bastian M. Wojek * + * * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +// root dictionary stuff -------------------------------------------------- +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class ZFMagGss+; +#pragma link C++ class ZFMagExp+; + +#endif //__CINT__ +// root dictionary stuff -------------------------------------------------- + diff --git a/src/tests/CheckMusrfitInstall/BMWlibs/data/deltat_pta_gps_4255.bin b/src/tests/CheckMusrfitInstall/BMWlibs/data/deltat_pta_gps_4255.bin new file mode 100644 index 0000000000000000000000000000000000000000..70fb2977401c03f610fa810d1c1f9939aacdce3b GIT binary patch literal 164864 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%0Dyi<1O!pGTY5mT@A)ETW-dA(6RG&6d| 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 J4IJX=`akUY$!`Dv literal 0 HcmV?d00001 diff --git a/src/tests/CheckMusrfitInstall/BMWlibs/test-libZFRelaxation-PSI-BIN.msr b/src/tests/CheckMusrfitInstall/BMWlibs/test-libZFRelaxation-PSI-BIN.msr new file mode 100644 index 00000000..3e5cdb7d --- /dev/null +++ b/src/tests/CheckMusrfitInstall/BMWlibs/test-libZFRelaxation-PSI-BIN.msr @@ -0,0 +1,57 @@ +Test libZFRelaxation random fields Lorentzian broadened, asymmetry plot, PSI-BIN data file +############################################################### +FITPARAMETER +# No Name Value Step Pos_Error Boundaries + 1 precFrac 0.666667 0 none 0 1 + 2 field 171.20 0.55 none 0 none + 3 lambdaT 1.303 0.061 none 0 none + 4 lambdaL 0.099 0.012 none 0 none + + 5 asymmetry 0.1429 0.0039 none 0 0.3 + 6 alpha 0.8209 0.0027 none + +############################################################### +THEORY +asymmetry 5 +userFcn libZFRelaxation ZFMagExp 1 fun1 3 4 + +############################################################### +FUNCTIONS +fun1 = par2 * gamma_mu + +############################################################### +RUN data/deltat_pta_gps_4255 PIM3 PSI PSI-BIN (name beamline institute data-file-format) +fittype 2 (asymmetry fit) +alpha 6 +map 0 0 0 0 0 0 0 0 0 0 +forward 2 +backward 1 +t0 125 128 +data 128 8097 131 8112 +background 45 113 40 117 +fit 0 8 +packing 30 + +############################################################### +COMMANDS +MINIMIZE +HESSE +SAVE + +############################################################### +FOURIER +units Gauss # units either 'Gauss', 'MHz', or 'Mc/s' +fourier_power 8 +apodization NONE # NONE, WEAK, MEDIUM, STRONG +plot POWER # REAL, IMAG, REAL_AND_IMAG, POWER, PHASE +phase 0 +range 0 500 + +############################################################### +PLOT 2 (asymmetry plot) +runs 1 +range 0 4 -0.25 0.25 + +############################################################### +STATISTIC --- 2011-05-09 14:56:44 + chisq = 470.01394974044985, NDF = 208, chisq/NDF = 2.2596824506752395