some more info, and replacing the parameter half-thickness through the film thickness
This commit is contained in:
parent
c4e7d3c57b
commit
e4fa408420
@ -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> ¶m) 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;
|
||||
}
|
||||
|
25
src/tests/MeissnerNonMuSR/README
Normal file
25
src/tests/MeissnerNonMuSR/README
Normal 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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user