diff --git a/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp index 9a0d40df..c79c61f9 100644 --- a/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp +++ b/src/tests/MeissnerNonMuSR/PMeissnerNonMuSR.cpp @@ -57,10 +57,14 @@ 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] + *

Example of a thin film Meissner screening user function (\f$B_{\rm G}\f$ versus \f$\langle z \rangle\f$). * - * meaning of paramValues: \f$c_0\f$, \f$c_1\f$, \f$c_2\f$, \f$c_3\f$ + * \f[ B_{\rm G}(\langle z \rangle\) = B_0 \cosh((t-d-[z-d])/\lambda_{ab}) / \cos((t-d)/\lambda_{ab}) \f] + * + * - \f$B_{\rm G}\f$ is the screened field value obtained from a Gaussian fit + * - \f$\langle z \rangle\f$ is the mean muon stopping range obtained from trim.sp. + * + * meaning of param: \f$B_0\f$, \f$2 t\f$ = film thickness, \f$d\f$ = dead layer thickness, \f$\lambda_{ab}\f$ * * return: function value * @@ -69,15 +73,15 @@ PMeissnerNonMuSR::~PMeissnerNonMuSR() */ Double_t PMeissnerNonMuSR::operator()(Double_t z, const std::vector ¶m) const { - // expected parameters: Bext, t=thickness/2, deadLayer, lambda_ab + // expected parameters: Bext, t=thickness, deadLayer, lambda_ab assert(param.size() == 4); - // if z2t-deadLayer + // if z2tt-deadLayer + Double_t tt = param[1]/2.0; 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]); - + if ((z > param[2]) && (z < param[1]-param[2])) + result = param[0]*cosh((tt-z)/param[3])/cosh((tt-param[2])/param[3]); return result; } diff --git a/src/tests/MeissnerNonMuSR/README b/src/tests/MeissnerNonMuSR/README new file mode 100644 index 00000000..64663ed0 --- /dev/null +++ b/src/tests/MeissnerNonMuSR/README @@ -0,0 +1,25 @@ +$Id$ + +This is a simple example for a Meissner screening user function for non-muSR input for musrfit. + +It is very simple and has the following parameters: + +1. field, i.e. external field value +2. thickness +3. dead layer thickness +4. lambda_ab + +The following function are needed to geht the needed ROOT shared library: + +Makefile.PMeissnerNonMuSR +PMeissnerNonMuSR.cpp +PMeissnerNonMuSR.h +PMeissnerNonMuSRLinkDef.h <- this header is needed to generate the dictionary stub + +The following files are examples how to generate the needed parameter input files, and how +to analyze it + +runlist.txt <- used together with msr2data to add the zMean data into the db-file +YBCO-Meissner.db <- db-file generate with msr2data by using runlist.txt +YBCO-Meissner.msr <- msr-file used to fit B versus zMean + diff --git a/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr b/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr index 885f17c7..ef38ff32 100644 --- a/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr +++ b/src/tests/MeissnerNonMuSR/YBCO-Meissner.msr @@ -3,7 +3,7 @@ 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 + 2 halfThick 300.0 0.0 none 3 deadLayer 15.0 1.0 none 0 none 4 lambda 150.0 0.1 none 0 none