From c4e7d3c57b4834ae244b165078be773cfb535416 Mon Sep 17 00:00:00 2001 From: nemu Date: Fri, 4 Jun 2010 11:31:30 +0000 Subject: [PATCH] newly added --- .../test-libTFitPofB_Meissner-ROOT-NPP.msr | 31 ++-- .../CheckMusrfitInstall/test-asy-PSI-BIN.msr | 16 +- src/tests/FIR/Makefile | 31 ++++ src/tests/FIR/remez.c | 2 + src/tests/FIR/remez.h | 2 +- src/tests/FIR/test.c | 46 +++-- .../MeissnerNonMuSR/Makefile.PMeissnerNonMuSR | 99 +++++++++++ .../MeissnerNonMuSR/PMeissnerNonMuSR.cpp | 83 +++++++++ src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.h | 57 ++++++ .../MeissnerNonMuSR/PMeissnerNonMuSRLinkDef.h | 9 + src/tests/MeissnerNonMuSR/YBCO-Meissner.db | 162 ++++++++++++++++++ src/tests/MeissnerNonMuSR/YBCO-Meissner.msr | 37 ++++ src/tests/MeissnerNonMuSR/runlist.txt | 7 + .../t0NotEqFirstGoodData.C | 29 ++-- 14 files changed, 556 insertions(+), 55 deletions(-) create mode 100644 src/tests/FIR/Makefile create mode 100644 src/tests/MeissnerNonMuSR/Makefile.PMeissnerNonMuSR create mode 100644 src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp create mode 100644 src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.h create mode 100644 src/tests/MeissnerNonMuSR/PMeissnerNonMuSRLinkDef.h create mode 100644 src/tests/MeissnerNonMuSR/YBCO-Meissner.db create mode 100644 src/tests/MeissnerNonMuSR/YBCO-Meissner.msr create mode 100644 src/tests/MeissnerNonMuSR/runlist.txt diff --git a/src/tests/CheckMusrfitInstall/BMWlibs/test-libTFitPofB_Meissner-ROOT-NPP.msr b/src/tests/CheckMusrfitInstall/BMWlibs/test-libTFitPofB_Meissner-ROOT-NPP.msr index 2e375f31..c74f7a51 100644 --- a/src/tests/CheckMusrfitInstall/BMWlibs/test-libTFitPofB_Meissner-ROOT-NPP.msr +++ b/src/tests/CheckMusrfitInstall/BMWlibs/test-libTFitPofB_Meissner-ROOT-NPP.msr @@ -4,19 +4,19 @@ FITPARAMETER # No Name Value Step Pos_Error Boundaries 1 field 94.717 0 none 2 deadlayer 10.5 0 none - 3 lambda 115.947 -0.91963 0.884948 + 3 lambda 115.947 -0.91963 none # E = 22keV 4 phase22 25.4956 0 none - 5 asym22 0.104724 -0.00293244 0.00297537 0 0.3 - 6 rate22 0.558459 -0.0323891 0.0325438 - 7 NormL22 753.067 -0.86835 0.866368 - 8 BGL22 51.0796 -0.132894 0.132971 - 9 NormR22 545.968 -0.762193 0.766843 - 10 BGR22 38.5992 -0.115679 0.115309 - 11 relasyR22 1.0697 -0.0377904 0.0388018 0.2 2 - 12 relphaR22 162.711 -1.53722 1.51998 110 210 + 5 asym22 0.104724 -0.00293244 none 0 0.3 + 6 rate22 0.558459 -0.0323891 none + 7 NormL22 753.067 -0.86835 none + 8 BGL22 51.0796 -0.132894 none + 9 NormR22 545.968 -0.762193 none + 10 BGR22 38.5992 -0.115679 none + 11 relasyR22 1.0697 -0.0377904 none 0.2 2 + 12 relphaR22 162.711 -1.53722 none 110 210 13 energy22 22 0 none 14 one 1 0 none @@ -41,7 +41,7 @@ norm 7 backgr.fit 8 lifetimecorrection map 4 5 6 14 15 13 0 0 0 0 -forward 1 +forward 1 background 65000 66500 data 3419 63000 t0 3419 @@ -54,7 +54,7 @@ norm 9 backgr.fit 10 lifetimecorrection map 4 5 6 11 12 13 0 0 0 0 -forward 3 +forward 3 background 65000 66500 data 3419 63000 t0 3419 @@ -65,7 +65,10 @@ packing 150 COMMANDS MINIMIZE #HESSE -MINOS +#MINOS +#SCAN 3 +CONTOURS 2 3 +MNPLOT SAVE ############################################################### @@ -83,5 +86,5 @@ runs 1 2 range 0.00 4.00 -0.25 0.25 ############################################################### -STATISTIC --- 2010-01-08 14:15:38 - chisq = 700.410521, NDF = 663, chisq/NDF = 1.05642612 +STATISTIC --- 2010-03-12 11:22:43 +*** FIT DID NOT CONVERGE *** diff --git a/src/tests/CheckMusrfitInstall/test-asy-PSI-BIN.msr b/src/tests/CheckMusrfitInstall/test-asy-PSI-BIN.msr index e9c4927c..c2069949 100644 --- a/src/tests/CheckMusrfitInstall/test-asy-PSI-BIN.msr +++ b/src/tests/CheckMusrfitInstall/test-asy-PSI-BIN.msr @@ -3,10 +3,10 @@ Test asymmetry plot, PSI-BIN data file FITPARAMETER # Nr. Name Value Step Pos_Error Boundaries 1 alpha 0.954734 0 none 0 2 - 2 asy 0.262608 0.00143923 none 0 0.33 - 3 phase -0.699373 0.328173 none - 4 field 97.9126 0.0550285 none 0 none - 5 rate 0.316773 0.0044115 none 0 none + 2 asy 0.262387 0.00144114 none 0 0.33 + 3 phase -0.0892349 0.327999 none + 4 field 97.9113 0.0550109 none 0 none + 5 rate 0.31646 0.00441463 none 0 none ############################################################### THEORY @@ -23,8 +23,8 @@ RUN data/deltat_pta_gpd_0423 PIE1 PSI PSI-BIN (name beamline institute data-fi fittype 2 (asymmetry fit) alpha 1 map 0 0 0 0 0 0 0 0 0 0 0 -forward 2 -backward 1 +forward 2 +backward 1 background 61 184 57 145 data 207 7994 167 8009 t0 202 162 @@ -55,5 +55,5 @@ range 0.00 8.00 -0.30 0.30 view_packing 38 ############################################################### -STATISTIC --- 2010-01-08 14:45:44 - chisq = 543.235673, NDF = 351, chisq/NDF = 1.54767998 +STATISTIC --- 2010-05-26 21:27:41 + chisq = 545.990682, NDF = 351, chisq/NDF = 1.55552901 diff --git a/src/tests/FIR/Makefile b/src/tests/FIR/Makefile new file mode 100644 index 00000000..20da8dc7 --- /dev/null +++ b/src/tests/FIR/Makefile @@ -0,0 +1,31 @@ +# Makefile for the remez exchange algorithm +# +# Author: Andreas Suter +# e-mail: andreas.suter@psi.ch +# +# $Id$ +#---------------------------------------------------------------- + +CXX = gcc +CXXFLAGS = -g -Wall -fPIC +LD = g++ +LDFLAGS = -g + +LIBS = -lm + +OBJS = remez.o +OBJS += test.o + +EXEC = remez_test + +all: $(EXEC) + +$(EXEC): $(OBJS) + $(LD) $(OBJS) -o $(EXEC) $(LIBS) + +clean: + @rm -f $(OBJS) + @echo ">> removing $(OBJS)" + +$(OBJS): %.o: %.c + $(CXX) $(CXXFLAGS) -c $< diff --git a/src/tests/FIR/remez.c b/src/tests/FIR/remez.c index afdce2c0..bffc6d24 100644 --- a/src/tests/FIR/remez.c +++ b/src/tests/FIR/remez.c @@ -21,6 +21,8 @@ #include "remez.h" +#include +#include #include /******************* diff --git a/src/tests/FIR/remez.h b/src/tests/FIR/remez.h index 3c51bd46..53e5c622 100644 --- a/src/tests/FIR/remez.h +++ b/src/tests/FIR/remez.h @@ -32,7 +32,7 @@ #define Pi2 6.2831853071795865 #define GRIDDENSITY 16 -#define MAXITERATIONS 40 +#define MAXITERATIONS 100 /* Function prototype for remez() - the only function that should need be * called from external code diff --git a/src/tests/FIR/test.c b/src/tests/FIR/test.c index e6e44bb0..88ee15d5 100644 --- a/src/tests/FIR/test.c +++ b/src/tests/FIR/test.c @@ -26,9 +26,11 @@ **************************************************************************/ #include "remez.h" +#include +#include #include -main() +int main() { double *weights, *desired, *bands; double *h; @@ -37,40 +39,50 @@ main() bands = (double *)malloc(10 * sizeof(double)); weights = (double *)malloc(5 * sizeof(double)); desired = (double *)malloc(5 * sizeof(double)); - h = (double *)malloc(300 * sizeof(double)); + h = (double *)malloc(600 * sizeof(double)); desired[0] = 0; - desired[1] = 1; + desired[1] = 1; desired[2] = 0; - desired[3] = 1; - desired[4] = 0; +// desired[3] = 1; +// desired[4] = 0; +/* weights[0] = 10; weights[1] = 1; weights[2] = 3; weights[3] = 1; weights[4] = 20; +*/ + + weights[0] = 1; + weights[1] = 1; + weights[2] = 1; +// weights[3] = 1; +// weights[4] = 1; bands[0] = 0; - bands[1] = 0.05; - bands[2] = 0.1; - bands[3] = 0.15; - bands[4] = 0.18; - bands[5] = 0.25; - bands[6] = 0.3; - bands[7] = 0.36; - bands[8] = 0.41; - bands[9] = 0.5; + bands[1] = 0.12; + bands[2] = 0.17; + bands[3] = 0.28; + bands[4] = 0.33; + bands[5] = 0.50; +// bands[6] = 0.3; +// bands[7] = 0.36; +// bands[8] = 0.41; +// bands[9] = 0.5; - remez(h, 104, 5, bands, desired, weights, BANDPASS); - for (i=0; i<104; i++) + remez(h, 102, 2, bands, desired, weights, BANDPASS); + for (i=0; i<102; i++) { - printf("%23.20f\n", h[i]); + printf("%3d, %23.20f\n", i, h[i]); } free(bands); free(weights); free(desired); free(h); + + return 1; } diff --git a/src/tests/MeissnerNonMuSR/Makefile.PMeissnerNonMuSR b/src/tests/MeissnerNonMuSR/Makefile.PMeissnerNonMuSR new file mode 100644 index 00000000..e685ae28 --- /dev/null +++ b/src/tests/MeissnerNonMuSR/Makefile.PMeissnerNonMuSR @@ -0,0 +1,99 @@ +#--------------------------------------------------- +# Makefile.PMeissnerNonMuSR +# +# Author: Andreas Suter +# e-mail: andreas.suter@psi.ch +# +# $Id$ +# +#--------------------------------------------------- + +#--------------------------------------------------- +# get compilation and library flags from root-config + +ROOTCFLAGS = $(shell $(ROOTSYS)/bin/root-config --cflags) +ROOTLIBS = $(shell $(ROOTSYS)/bin/root-config --libs) +ROOTGLIBS = $(shell $(ROOTSYS)/bin/root-config --glibs) + +#--------------------------------------------------- +# depending on the architecture, choose the compiler, +# linker, and the flags to use +# + +OSTYPE = $(shell uname) + +ifeq ($(OSTYPE),Linux) +OS = LINUX +endif +ifeq ($(OSTYPE),linux-gnu) +OS = LINUX +endif +ifeq ($(OSTYPE),darwin) +OS = DARWIN +endif + +# -- Linux +ifeq ($(OS),LINUX) +CXX = g++ +CXXFLAGS = -g -Wall -Wno-trigraphs -fPIC +INCLUDES = -I./ +LD = g++ +LDFLAGS = -g +SOFLAGS = -O -shared +endif + +# -- Darwin +ifeq ($(OS),DARWIN) +CXX = g++ +CXXFLAGS = -g -Wall -Wno-trigraphs -fPIC +INCLUDES = -I../include +LD = g++ +LDFLAGS = -g +SOFLAGS = -dynamic +endif + +# the output from the root-config script: +CXXFLAGS += $(ROOTCFLAGS) +LDFLAGS += + +# the ROOT libraries (G = graphic) +LIBS = $(ROOTLIBS) -lXMLParser +GLIBS = $(ROOTGLIBS) -lXMLParser + +# some definitions: headers (used to generate *Dict* stuff), sources, objects,... +OBJS = +OBJS += PMeissnerNonMuSR.o PMeissnerNonMuSRDict.o + +SHLIB = libPMeissnerNonMuSR.so + +# make the shared lib: +# +all: $(SHLIB) + +$(SHLIB): $(OBJS) + @echo "---> Building shared library $(SHLIB) ..." + /bin/rm -f $(SHLIB) + $(LD) $(OBJS) $(SOFLAGS) -o $(SHLIB) $(LIBS) + @echo "done" + +# clean up: remove all object file (and core files) +# semicolon needed to tell make there is no source +# for this target! +# +clean:; @rm -f $(OBJS) *Dict* core* + @echo "---> removing $(OBJS)" + +# +$(OBJS): %.o: %.cpp + $(CXX) $(INCLUDES) $(CXXFLAGS) -c $< + +PMeissnerNonMuSRDict.cpp: PMeissnerNonMuSR.h PMeissnerNonMuSRLinkDef.h + @echo "Generating dictionary $@..." + rootcint -f $@ -c -p $^ + +install: all + @echo "Installing shared lib: libTUserFcn.so ( you must be root ;-) )" +ifeq ($(OS),LINUX) + cp -pv $(SHLIB) $(ROOTSYS)/lib + cp -pv PMeissnerNonMuSR.h $(ROOTSYS)/include +endif diff --git a/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp new file mode 100644 index 00000000..9a0d40df --- /dev/null +++ b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp @@ -0,0 +1,83 @@ +/*************************************************************************** + + PMeissnerNonMuSR.cpp + + Author: Andreas Suter + e-mail: andreas.suter@psi.ch + + $Id$ + +***************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2007 by Andreas Suter * + * andreas.suter@psi.c * + * * + * 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. * + ***************************************************************************/ + +#include +using namespace std; + +#include +#include + +#include "PMeissnerNonMuSR.h" + +ClassImp(PMeissnerNonMuSR) + +//------------------------------------------------------ +/** + *

Constructor + */ +PMeissnerNonMuSR::PMeissnerNonMuSR() +{ +} + +//------------------------------------------------------ +/** + *

Destructor + */ +PMeissnerNonMuSR::~PMeissnerNonMuSR() +{ +} + +//------------------------------------------------------ +/** + *

Example of a user defined function. This example implements a 3rd order polynom + * \f[ = \sum_{k=0}^3 c_k t^k\f] + * + * meaning of paramValues: \f$c_0\f$, \f$c_1\f$, \f$c_2\f$, \f$c_3\f$ + * + * return: function value + * + * \param z mean distance from the surface + * \param param parameter vector + */ +Double_t PMeissnerNonMuSR::operator()(Double_t z, const std::vector ¶m) const +{ + // expected parameters: Bext, t=thickness/2, deadLayer, lambda_ab + + assert(param.size() == 4); + + // if z2t-deadLayer + Double_t result = param[0]; + if ((z > param[2]) && (z < 2.0*param[1]-param[2])) + result = param[0]*cosh((param[1]-param[2]-(z-param[2]))/param[3])/cosh((param[1]-param[2])/param[3]); + + + return result; +} diff --git a/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.h b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.h new file mode 100644 index 00000000..5483ef07 --- /dev/null +++ b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.h @@ -0,0 +1,57 @@ +/*************************************************************************** + + PMeissnerNonMuSR.h + + Author: Andreas Suter + e-mail: andreas.suter@psi.ch + + $Id$ + +***************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2007 by Andreas Suter * + * andreas.suter@psi.c * + * * + * 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 _PMEISSNERNONMUSR_H_ +#define _PMEISSNERNONMUSR_H_ + +#include + +#include "PUserFcnBase.h" + +/** + *

Meissner screen profile for non-muSR \f$B_{\rm G}\f$ versus \f$\langle z \rangle\f$, + * where \f$B_{\rm G}\f$ is the screened field obtained from a Gaussian fit, and \f$\langle z \rangle\f$ + * is the mean muon stopping range. The functional dependency is + * \f[ B_{\rm G}(\langle z \rangle) = B_0 \cosh\left[(\tilde{t}-z)/\lambda_{ab}\right]/\cosh\left[\tilde{t}/\lambda_{ab}\right] \f] + * where \f$\tilde{t} = t-d\f$ with \f$2 t\f$ the thickness of the sample, and \f$d\f$ the dead layer. + */ +class PMeissnerNonMuSR : public PUserFcnBase +{ + public: + PMeissnerNonMuSR(); + ~PMeissnerNonMuSR(); + + Double_t operator()(Double_t z, const std::vector ¶m) const; + + ClassDef(PMeissnerNonMuSR, 1) +}; + +#endif // _PMEISSNERNONMUSR_H_ diff --git a/src/tests/MeissnerNonMuSR/PMeissnerNonMuSRLinkDef.h b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSRLinkDef.h new file mode 100644 index 00000000..5e9674b4 --- /dev/null +++ b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSRLinkDef.h @@ -0,0 +1,9 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class PMeissnerNonMuSR+; + +#endif diff --git a/src/tests/MeissnerNonMuSR/YBCO-Meissner.db b/src/tests/MeissnerNonMuSR/YBCO-Meissner.db new file mode 100644 index 00000000..3cffd18e --- /dev/null +++ b/src/tests/MeissnerNonMuSR/YBCO-Meissner.db @@ -0,0 +1,162 @@ +TITLE +>>>Put your title here<<< + +Abstract +>>>Put your abstract here<<< + +LABELS +T (K) +mu0 H (G) +Implantation Energy (keV) +Transport (kV) +RAL-RAR (kV) +RAT-RAB (kV) +meanZ +phase +field +asymS +rateS +asymF +rateF +Norm_L +BG_L +Norm_R +BG_R +relasy_R +relphase_R +one +zero +CHISQ +NDF +CHISQred +RUN + +Data dataT dataB dataE dataTr dataRALRAR dataRATRAB meanZ phase field asymS rateS asymF rateF Norm_L BG_L Norm_R BG_R relasy_R relphase_R one zero CHISQ NDF CHISQred RUN +\-e +dataT = 4.99941, 0.00650997, 0.00650997,\ +dataB = 48.0186, 0, 0,\ +dataE = 12.5235, 0, 0,\ +dataTr = 15.0182, 0, 0,\ +dataRALRAR = -0.139, 0, 0,\ +dataRATRAB = 0.101, 0, 0,\ +meanZ = 20, 0, 0,\ +phase = 21.3446, 0.546258, 0.54555,\ +field = 46.5739, 0.0441267, 0.0441304,\ +asymS = 0.211786, 0.00180491, 0.00179975,\ +rateS = 0.130139, 0.00550913, 0.00565179,\ +asymF = 0, 0, 0,\ +rateF = 0, 0, 0,\ +Norm_L = 499.926, 0.74285, 0.744386,\ +BG_L = 28.5418, 0.143533, 0.14318,\ +Norm_R = 519.636, 0.754036, 0.754018,\ +BG_R = 31.1182, 0.147768, 0.147756,\ +relasy_R = 1.04062, 0.0113913, 0.0112727,\ +relphase_R = 159.803, 0.586514, 0.587173,\ +one = 1, 0, 0,\ +zero = 0, 0, 0,\ +CHISQ = 424.81, 0, 0,\ +NDF = 392, 0, 0,\ +CHISQred = 1.0837, 0, 0,\ +261,,, LSCO (949,951,952) ZFC T=4.98 K,E=12.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/1.60 kV,RAL-RAR=-0.14 kV,RAT-RAB=0.10 kV +dataT = 4.99564, 0.0621208, 0.0621208,\ +dataB = 48.0453, 0, 0,\ +dataE = 22.5189, 0, 0,\ +dataTr = 15.0181, 0, 0,\ +dataRALRAR = -0.111, 0, 0,\ +dataRATRAB = 0.101, 0, 0,\ +meanZ = 50, 0, 0,\ +phase = 21.219, 0.543271, 0.543954,\ +field = 46.5715, 0.0440877, 0.0440207,\ +asymS = 0.21447, 0.00180433, 0.00180653,\ +rateS = 0.132167, 0.00532286, 0.00546076,\ +asymF = 0, 0, 0,\ +rateF = 0, 0, 0,\ +Norm_L = 495.542, 0.741127, 0.73896,\ +BG_L = 28.1408, 0.142324, 0.142839,\ +Norm_R = 527.913, 0.758809, 0.757839,\ +BG_R = 30.8471, 0.14803, 0.148163,\ +relasy_R = 1.02787, 0.0111753, 0.0110297,\ +relphase_R = 160.378, 0.5825, 0.582385,\ +one = 1, 0, 0,\ +zero = 0, 0, 0,\ +CHISQ = 363.518, 0, 0,\ +NDF = 392, 0, 0,\ +CHISQred = 0.927341, 0, 0,\ +262,,, LSCO (949,951,952) ZFC T=5.00 K,E=22.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/-8.40 kV,RAL-RAR=-0.11 kV,RAT-RAB=0.10 kV +dataT = 4.99984, 0.00585447, 0.00585447,\ +dataB = 48.039, 0, 0,\ +dataE = 4.52904, 0, 0,\ +dataTr = 15.0181, 0, 0,\ +dataRALRAR = -0.148, 0, 0,\ +dataRATRAB = 0.101, 0, 0,\ +meanZ = 130.3, 0, 0,\ +phase = 22.2369, 0.705849, 0.705242,\ +field = 46.8346, 0.0562009, 0.0561931,\ +asymS = 0.162166, 0.00181365, 0.00181091,\ +rateS = 0.129029, 0.00710755, 0.00735287,\ +asymF = 0, 0, 0,\ +rateF = 0, 0, 0,\ +Norm_L = 503.131, 0.743846, 0.744346,\ +BG_L = 28.6006, 0.143795, 0.143646,\ +Norm_R = 517.372, 0.752304, 0.752205,\ +BG_R = 30.6729, 0.147208, 0.147209,\ +relasy_R = 1.08117, 0.015245, 0.0150009,\ +relphase_R = 160.517, 0.752318, 0.753607,\ +one = 1, 0, 0,\ +zero = 0, 0, 0,\ +CHISQ = 414.826, 0, 0,\ +NDF = 392, 0, 0,\ +CHISQred = 1.05823, 0, 0,\ +263,,, LSCO (949,951,952) ZFC T=5.00 K,E=4.53 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/9.59 kV,RAL-RAR=-0.15 kV,RAT-RAB=0.10 kV +dataT = 40.0008, 0.000682791, 0.000682791,\ +dataB = 48.0408, 0, 0,\ +dataE = 12.5235, 0, 0,\ +dataTr = 15.0181, 0, 0,\ +dataRALRAR = -0.138, 0, 0,\ +dataRATRAB = 0.101, 0, 0,\ +meanZ = 227.8, 0, 0,\ +phase = 22.3589, 0.543593, 0.542181,\ +field = 46.8825, 0.0418532, 0.0419479,\ +asymS = 0.209744, 0.00176668, 0.00176403,\ +rateS = 0.101772, 0.00629342, 0.00660049,\ +asymF = 0, 0, 0,\ +rateF = 0, 0, 0,\ +Norm_L = 499.612, 0.741729, 0.741754,\ +BG_L = 28.5143, 0.143253, 0.143207,\ +Norm_R = 519.682, 0.752879, 0.752248,\ +BG_R = 31.0601, 0.147658, 0.147804,\ +relasy_R = 1.04906, 0.0113501, 0.0112243,\ +relphase_R = 159.343, 0.581261, 0.58179,\ +one = 1, 0, 0,\ +zero = 0, 0, 0,\ +CHISQ = 422.237, 0, 0,\ +NDF = 392, 0, 0,\ +CHISQred = 1.07713, 0, 0,\ +264,,, LSCO (949,951,952) ZFC T=40.01 K,E=12.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/1.60 kV,RAL-RAR=-0.14 kV,RAT-RAB=0.10 kV +dataT = 40.0001, 0.000412161, 0.000412161,\ +dataB = 48.0451, 0, 0,\ +dataE = 22.5195, 0, 0,\ +dataTr = 15.0182, 0, 0,\ +dataRALRAR = -0.112, 0, 0,\ +dataRATRAB = 0.101, 0, 0,\ +meanZ = 340.1, 0, 0,\ +phase = 20.8701, 0.518675, 0.51845,\ +field = 46.9052, 0.0410536, 0.0410349,\ +asymS = 0.223576, 0.00178038, 0.00177858,\ +rateS = 0.112782, 0.00560028, 0.00579775,\ +asymF = 0, 0, 0,\ +rateF = 0, 0, 0,\ +Norm_L = 495.429, 0.739729, 0.739417,\ +BG_L = 28.2599, 0.142554, 0.142607,\ +Norm_R = 525.303, 0.75693, 0.756255,\ +BG_R = 31.3186, 0.14834, 0.148485,\ +relasy_R = 1.01191, 0.0105013, 0.0103782,\ +relphase_R = 160.605, 0.557402, 0.557926,\ +one = 1, 0, 0,\ +zero = 0, 0, 0,\ +CHISQ = 381.779, 0, 0,\ +NDF = 392, 0, 0,\ +CHISQred = 0.973927, 0, 0,\ +265,,, LSCO (949,951,952) ZFC T=40.00 K,E=22.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/-8.40 kV,RAL-RAR=-0.11 kV,RAT-RAB=0.10 kV + + diff --git a/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr b/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr new file mode 100644 index 00000000..885f17c7 --- /dev/null +++ b/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr @@ -0,0 +1,37 @@ +YBCO Meissner +############################################################### +FITPARAMETER +# Nr. Name Value Step Pos_Error Boundaries + 1 field 100.0 1.0 none 0 none + 2 thickness 150.0 0.0 none + 3 deadLayer 15.0 1.0 none 0 none + 4 lambda 150.0 0.1 none 0 none + +############################################################### +THEORY +userFcn libPMeissnerNonMuSR.so PMeissnerNonMuSR 1 2 3 4 + +############################################################### +RUN YBCO-Meissner MUE4 PSI DB (name beamline institute data-file-format) +fittype 8 (non musr fit) +map 0 0 0 0 0 0 0 0 0 0 +xy-data meanZ field +fit 0 400 +packing 1 + +############################################################### +COMMANDS +STRATEGY 1 +MINIMIZE +#MINOS +SAVE +END RETURN + +############################################################### +PLOT 8 (non muSR plot) +runs 1 +range 0 400 + +############################################################### +STATISTIC --- 2008-04-04 07:44:31 + chisq = 569.50931, NDF = 542, chisq/NDF = 1.05075518 diff --git a/src/tests/MeissnerNonMuSR/runlist.txt b/src/tests/MeissnerNonMuSR/runlist.txt new file mode 100644 index 00000000..defdddbd --- /dev/null +++ b/src/tests/MeissnerNonMuSR/runlist.txt @@ -0,0 +1,7 @@ +# YBCO Meissner runlist test +RUN meanZ +261 20 +262 50 +263 130.3 +264 227.8 +265 340.1 diff --git a/src/tests/t0NotEqFirstGoodData/t0NotEqFirstGoodData.C b/src/tests/t0NotEqFirstGoodData/t0NotEqFirstGoodData.C index 8ed45621..fe191b84 100644 --- a/src/tests/t0NotEqFirstGoodData/t0NotEqFirstGoodData.C +++ b/src/tests/t0NotEqFirstGoodData/t0NotEqFirstGoodData.C @@ -32,6 +32,7 @@ void t0NotEqFirstGoodData() { // load library + gSystem->Load("$ROOTSYS/lib/libTLemRunHeader"); gSystem->Load("$ROOTSYS/lib/libPAddPoissonNoise"); // generate data @@ -44,7 +45,7 @@ void t0NotEqFirstGoodData() decayAnaModule = histosFolder->AddFolder("DecayAnaModule", "muSR decay histograms"); // feed run info header - UInt_t runNo = 20001; + UInt_t runNo = 30002; TString tstr; runInfo = gROOT->GetRootFolder()->AddFolder("RunInfo", "LEM RunInfo"); gROOT->GetListOfBrowsables()->Add(runInfo, "RunInfo"); @@ -67,23 +68,23 @@ void t0NotEqFirstGoodData() header->SetNHist(8); header->SetCuts("none"); header->SetModerator("none"); - Double_t tt0[8] = {3419.0, 3519.0, 3419.0, 3519.0, 3419.0, 3519.0, 3419.0, 3519.0}; + Double_t tt0[8] = {3419.0, 3420.0, 3520.0, 3521.0, 3417.0, 3418.0, 3522.0, 3523.0}; header->SetTimeZero(tt0); runInfo->Add(header); //add header to RunInfo folder // create histos - UInt_t t0[8] = {3419, 3519, 3419, 3519, 3419.0, 3519.0, 3419.0, 3519.0}; + UInt_t t0[8] = {3419, 3420, 3520, 3521, 3417, 3418, 3522, 3523}; UInt_t n0[8] = {10000.0, 10000.0, 10000.0, 10000.0, 10000.0, 10000.0, 10000.0, 10000.0}; - UInt_t bkg[8] = {11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0}; + UInt_t bkg[8] = {10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0}; const Double_t tau = 2197.019; // ns // asymmetry related stuff const Double_t timeResolution = 0.1953125; // ns Double_t a0[8] = {0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26}; Double_t a1[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; - Double_t phase[8] = {0.0*TMath::Pi()/180.0, 45.0*TMath::Pi()/180.0, 90.0*TMath::Pi()/180.0, 135.0*TMath::Pi()/180.0, - 180.0*TMath::Pi()/180.0, 225.0*TMath::Pi()/180.0, 270.0*TMath::Pi()/180.0, 315.0*TMath::Pi()/180.0,}; + Double_t phase[8] = {5.0*TMath::Pi()/180.0, 50.0*TMath::Pi()/180.0, 95.0*TMath::Pi()/180.0, 140.0*TMath::Pi()/180.0, + 185.0*TMath::Pi()/180.0, 230.0*TMath::Pi()/180.0, 275.0*TMath::Pi()/180.0, 320.0*TMath::Pi()/180.0,}; const Double_t gamma = 0.00001355; // gamma/(2pi) - Double_t bb0 = 200.0; // field in Gauss + Double_t bb0 = 15000.0; // field in Gauss Double_t bb1 = 400.0; // field in Gauss Double_t sigma0 = 0.05/1000.0; // Gaussian sigma in 1/ns Double_t sigma1 = 0.005/1000.0; // Gaussian sigma in 1/ns @@ -99,32 +100,30 @@ void t0NotEqFirstGoodData() Double_t time; Double_t dval; for (UInt_t i=0; i<8; i++) { - for (UInt_t j=1; j<66601; j++) { + for (UInt_t j=0; j<66600; j++) { if (jSetBinContent(j, bkg[i]); + histo[i]->SetBinContent(j+1, bkg[i]); } else { time = (Double_t)(j-t0[i])*timeResolution; dval = (Double_t)n0[i]*TMath::Exp(-time/tau)*(1.0+a0[i]*TMath::Exp(-0.5*TMath::Power(time*sigma0,1.2))*TMath::Cos(TMath::TwoPi()*gamma*bb0*time+phase[i]) +a1[i]*TMath::Exp(-0.5*TMath::Power(time*sigma1,2.0))*TMath::Cos(TMath::TwoPi()*gamma*bb1*time+phase[i]))+(Double_t)bkg[i]; - histo[i]->SetBinContent(j, (UInt_t)dval); + histo[i]->SetBinContent(j+1, (UInt_t)dval); } } } // add a promp peak -/* - Double_t ampl = 500.0; + Double_t ampl = 10000.0; Double_t promptLambda = 500.0/1000.0; // Lorentzain in 1/ns - for (UInt_t i=0; i<4; i++) { + for (UInt_t i=0; i<8; i++) { for (UInt_t j=1; j<66601; j++) { dval = histo[i]->GetBinContent(j); time = (Double_t)(j-t0[i])*timeResolution; dval += ampl*TMath::Exp(-fabs(time)*promptLambda); histo[i]->SetBinContent(j, (UInt_t)dval); - histo[i+4]->SetBinContent(j, (UInt_t)dval); + histo[i+8]->SetBinContent(j, (UInt_t)dval); } } -*/ // add Poisson noise PAddPoissonNoise *addNoise = new PAddPoissonNoise();