some more info, and replacing the parameter half-thickness through the film thickness

This commit is contained in:
nemu 2010-06-04 12:39:30 +00:00
parent c4e7d3c57b
commit e4fa408420
3 changed files with 38 additions and 9 deletions

View File

@ -57,10 +57,14 @@ PMeissnerNonMuSR::~PMeissnerNonMuSR()
//------------------------------------------------------
/**
* <p>Example of a user defined function. This example implements a 3rd order polynom
* \f[ = \sum_{k=0}^3 c_k t^k\f]
* <p>Example of a thin film Meissner screening user function (\f$B_{\rm G}\f$ versus \f$\langle z \rangle\f$).
*
* <b>meaning of paramValues:</b> \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.
*
* <b>meaning of param:</b> \f$B_0\f$, \f$2 t\f$ = film thickness, \f$d\f$ = dead layer thickness, \f$\lambda_{ab}\f$
*
* <b>return:</b> function value
*
@ -69,15 +73,15 @@ PMeissnerNonMuSR::~PMeissnerNonMuSR()
*/
Double_t PMeissnerNonMuSR::operator()(Double_t z, const std::vector<Double_t> &param) const
{
// expected parameters: Bext, t=thickness/2, deadLayer, lambda_ab
// expected parameters: Bext, t=thickness, deadLayer, lambda_ab
assert(param.size() == 4);
// if z<deadLayer or z>2t-deadLayer
// if z<deadLayer or z>2tt-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;
}

View File

@ -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

View File

@ -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