musrfit  1.9.2
PTheory Class Reference

#include <PTheory.h>

Collaboration diagram for PTheory:

Public Member Functions

 PTheory (PMsrHandler *msrInfo, UInt_t runNo, const Bool_t hasParent=false)
 
virtual ~PTheory ()
 
virtual Bool_t IsValid ()
 
virtual Double_t Func (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 

Private Member Functions

virtual void CleanUp (PTheory *theo)
 
virtual Int_t SearchDataBase (TString name)
 
virtual Int_t GetUserFcnIdx (UInt_t lineNo) const
 
virtual void MakeCleanAndTidyTheoryBlock (PMsrLines *fullTheoryBlock)
 
virtual void MakeCleanAndTidyPolynom (UInt_t i, PMsrLines *fullTheoryBlock)
 
virtual void MakeCleanAndTidyUserFcn (UInt_t i, PMsrLines *fullTheoryBlock)
 
virtual Double_t Constant (const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t Asymmetry (const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t SimpleExp (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t GeneralExp (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t SimpleGauss (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StaticGaussKT (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StaticGaussKTLF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t DynamicGaussKTLF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StaticLorentzKT (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StaticLorentzKTLF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t DynamicLorentzKTLF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t CombiLGKT (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StrKT (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t SpinGlass (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t RandomAnisotropicHyperfine (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t Abragam (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t TFCos (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t InternalField (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t InternalFieldGK (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t InternalFieldLL (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t Bessel (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t InternalBessel (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t SkewedGauss (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StaticNKZF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t StaticNKTF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t DynamicNKZF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t DynamicNKTF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t MuMinusExpTF (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t Polynom (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual Double_t UserFcn (Double_t t, const PDoubleVector &paramValues, const PDoubleVector &funcValues) const
 
virtual void CalculateGaussLFIntegral (const Double_t *val) const
 
virtual void CalculateLorentzLFIntegral (const Double_t *val) const
 
virtual Double_t GetLFIntegralValue (const Double_t t) const
 
virtual void CalculateDynKTLF (const Double_t *val, Int_t tag) const
 
virtual Double_t GetDynKTLFValue (const Double_t t) const
 

Private Attributes

Bool_t fValid
 flag to tell if the theory is valid More...
 
UInt_t fType
 function tag More...
 
std::vector< UInt_t > fParamNo
 holds the parameter numbers for the theory (including maps and functions, see constructor desciption) More...
 
UInt_t fNoOfParam
 number of parameters for the given function More...
 
PTheoryfAdd
 
PTheoryfMul
 pointers to the add-sub-function or the multiply-sub-function More...
 
Int_t fUserFcnIdx
 index of the user function within the theory tree More...
 
TString fUserFcnClassName
 name of the user function class for within root More...
 
TString fUserFcnSharedLibName
 name of the shared lib to which the user function belongs More...
 
PUserFcnBasefUserFcn
 pointer to the user function object More...
 
PDoubleVector fUserParam
 vector holding the resolved user function parameters, i.e. map and function resolved. More...
 
PMsrHandlerfMsrInfo
 pointer to the msr-file handler More...
 
Double_t fSamplingTime
 needed for LF. Keeps the sampling time of the non-analytic integral More...
 
Double_t fPrevParam [THEORY_MAX_PARAM]
 needed for LF. Keeps the previous fitting parameters More...
 
PDoubleVector fLFIntegral
 needed for LF. Keeps the non-analytic integral values More...
 
Double_t fDynLFdt
 needed for LF. Keeps the time step for the dynamic LF calculation, used in the integral equation approach More...
 
PDoubleVector fDynLFFuncValue
 needed for LF. Keeps the dynamic LF KT function values More...
 

Detailed Description

Class handling a theory of a msr-file.

Definition at line 236 of file PTheory.h.

Constructor & Destructor Documentation

◆ PTheory()

PTheory::PTheory ( PMsrHandler msrInfo,
UInt_t  runNo,
const Bool_t  hasParent = false 
)

Constructor.

The theory block his parsed and mapped to a tree. Every line (except the '+') is a theory object by itself, i.e. the whole theory is build up recursivly. Example:

   Theory block:
     a 1
     tf 2 3
     se 4
     +
     a 5
     tf 6 7
     se 8
     +
     a 9
     tf 10 11

This is mapped into the following binary tree:

                a 1
              +/   \*
             a 5   tf 2 3
           + /  \*    \ *
           a 9  a 5   se 4
             \*   \*
        tf 10 11  tf 6 7
                   \*
                   se 8
Parameters
msrInfomsr-file handler
runNomsr-file run number
hasParentflag needed in order to know if PTheory is the root object or a child false (default) means this is the root object true means this is part of an already existing object tree

Definition at line 93 of file PTheory.cpp.

References fAdd, fDynLFdt, fgTheoDataBase, PMsrLineStructure::fLine, PMsrLineStructure::fLineNo, fMul, theo_data_base::fNoOfParam, fNoOfParam, fParamNo, fPrevParam, fSamplingTime, fType, fUserFcn, fUserFcnClassName, fUserFcnIdx, fUserFcnSharedLibName, fUserParam, fValid, PMsrHandler::GetFuncIndex(), PMsrHandler::GetMsrRunList(), PMsrHandler::GetMsrTheory(), GetUserFcnIdx(), gGlobalUserFcn, PUserFcnBase::GlobalPartIsValid(), MakeCleanAndTidyTheoryBlock(), MSR_PARAM_FUN_OFFSET, PUserFcnBase::NeedGlobalPart(), SearchDataBase(), PUserFcnBase::SetGlobalPart(), status, THEORY_MAX_PARAM, THEORY_POLYNOM, THEORY_UNDEFINED, and THEORY_USER_FCN.

◆ ~PTheory()

PTheory::~PTheory ( )
virtual

Destructor

Definition at line 332 of file PTheory.cpp.

References CleanUp(), fDynLFFuncValue, fLFIntegral, fParamNo, fUserFcn, fUserParam, and gGlobalUserFcn.

Member Function Documentation

◆ Abragam()

Double_t PTheory::Abragam ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: Abragam function

\[ = \exp\left[-\frac{\sigma^2}{\gamma^2}\left(e^{-\gamma t}-1+\gamma t\right)\right] \]

or the time shifted version of it.

meaning of paramValues: $\sigma$, $\gamma$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1842 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ Asymmetry()

Double_t PTheory::Asymmetry ( const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: Asymmetry

\[ = A \]

meaning of paramValues: $A$

return: function value

Parameters
paramValuesvector with the parameters
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1014 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ Bessel()

Double_t PTheory::Bessel ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: spherical bessel function including phase

\[ = j_0(2\pi\nu t + \varphi) \]

or the time shifted version of it.

meaning of paramValues: $\nu$, $\varphi$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2073 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ CalculateDynKTLF()

void PTheory::CalculateDynKTLF ( const Double_t *  val,
Int_t  tag 
) const
privatevirtual

Docu of this function still missing!!

Number of sampling points is estimated according to w0: w0 T = 2 pi t_sampling = T/16 (i.e. 16 points on 1 period) N = 8/pi w0 Tmax = 16 nu0 Tmax

Parameters
valparameters needed to solve the voltera integral equation
tag0=Gauss, 1=Lorentz

Definition at line 2709 of file PTheory.cpp.

References CalculateGaussLFIntegral(), CalculateLorentzLFIntegral(), fDynLFdt, fDynLFFuncValue, GetLFIntegralValue(), and TWO_PI.

Referenced by DynamicGaussKTLF(), and DynamicLorentzKTLF().

◆ CalculateGaussLFIntegral()

void PTheory::CalculateGaussLFIntegral ( const Double_t *  val) const
privatevirtual

Calculates the non-analytic integral of the static Gaussian Kubo-Toyabe in longitudinal field, i.e.

\[ G_{\rm G,LF}(t) = \int^t_0 \exp\left[-1/2 (\sigma\tau)^2\right]\sin(2\pi\nu\tau)\mathrm{d}\tau \]

and stores $G_{\rm G,LF}(t)$ in a vector, fLFIntegral, from $t=0$ up to 20us, if needed

The fLFIntegral is given in steps of fSamplingTime (default = 1 ns), e.g. for fSamplingTime = 0.001, index i=100 coresponds to t=100ns

meaning of val: val[0]= $\nu$, val[1]= $\sigma$

Parameters
valparameters needed to calculate the non-analytic integral of the static Gauss LF function.

Definition at line 2542 of file PTheory.cpp.

References fLFIntegral, and fSamplingTime.

Referenced by CalculateDynKTLF(), and StaticGaussKTLF().

◆ CalculateLorentzLFIntegral()

void PTheory::CalculateLorentzLFIntegral ( const Double_t *  val) const
privatevirtual

Calculates the non-analytic integral of the static Lorentzian Kubo-Toyabe in longitudinal field, i.e.

\[ G_{\rm L,LF}(t) = \int^t_0 \exp\left[-a \tau \right] j_0(2\pi\nu\tau)\mathrm{d}\tau \]

and stores $G_{\rm L,LF}(t)$ in a vector, fLFIntegral, from $t=0$ up to 20 us, if needed.

The fLFIntegral is given in steps of fSamplingTime (default = 1 ns), e.g. for fSamplingTime = 0.001, index i=100 coresponds to t=100ns

meaning of val: val[0]= $\nu$, val[1]= $a$

Parameters
valparameters needed to calculate the non-analytic integral of the static Lorentz LF function.

Definition at line 2612 of file PTheory.cpp.

References fLFIntegral, and fSamplingTime.

Referenced by CalculateDynKTLF(), and StaticLorentzKTLF().

◆ CleanUp()

void PTheory::CleanUp ( PTheory theo)
privatevirtual

Recursively clean up theory

If data were a pointer to some data on the heap, here, we would call delete on it. If it were a "composed" object, its destructor would get called automatically after our own destructor, so we would not have to worry about it.

So all we have to clean up is the left and right subchild. It turns out that we don't have to check for null pointers; C++ automatically ignores a call to delete on a NULL pointer (according to the man page, the same is true with malloc() in C)

the COOLEST part is that if right is a non-null pointer, the destructor gets called recursively!

Parameters
theopointer to the theory object

Definition at line 716 of file PTheory.cpp.

References fAdd, and fMul.

Referenced by ~PTheory().

◆ CombiLGKT()

Double_t PTheory::CombiLGKT ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: dynamic Lorentzain Kubo-Toyabe in longitudinal applied field

\[ = 1/3 + 2/3 \left(1-(\sigma t)^2-\lambda t\right) \exp\left(-1/2(\sigma t)^2-\lambda t\right)\]

or the time shifted version of it.

meaning of paramValues: $\lambda$, $\sigma$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1651 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ Constant()

Double_t PTheory::Constant ( const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: Const

\[ = const \]

meaning of paramValues: const

return: function value

Parameters
paramValuesvector with the parameters
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 986 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ DynamicGaussKTLF()

Double_t PTheory::DynamicGaussKTLF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: dynamic Gaussian Kubo-Toyabe in longitudinal applied field

\[ = \frac{1}{2\pi \imath}\int_{\gamma-\imath\infty}^{\gamma+\imath\infty} \frac{f_{\mathrm{G}}(s+\Gamma)}{1-\Gamma f_{\mathrm{G}}(s+\Gamma)} \exp(s t) \mathrm{d}s, \mathrm{~where~}\,f_{\mathrm{G}}(s)\equiv \int_0^{\infty}G_{\mathrm{G,LF}}(t)\exp(-s t) \mathrm{d}t\]

or the time shifted version of it. $G_{\mathrm{G,LF}}(t)$ is the static Gaussian Kubo-Toyabe in longitudinal applied field.

The current implementation is not realized via the above formulas, but ...

meaning of paramValues: $\sigma$, $\nu$, $\Gamma$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1303 of file PTheory.cpp.

References CalculateDynKTLF(), fParamNo, fPrevParam, GetDynKTLFValue(), MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ DynamicLorentzKTLF()

Double_t PTheory::DynamicLorentzKTLF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: dynamic Lorentzain Kubo-Toyabe in longitudinal applied field (see R. S. Hayano et al., Phys. Rev. B 20 (1979) 850; P. Dalmas de Reotier and A. Yaouanc, J. Phys.: Condens. Matter 4 (1992) 4533; A. Keren, Phys. Rev. B 50 (1994) 10039).

\[ = \frac{1}{2\pi \imath}\int_{\gamma-\imath\infty}^{\gamma+\imath\infty} \frac{f_{\mathrm{L}}(s+\Gamma)}{1-\Gamma f_{\mathrm{L}}(s+\Gamma)} \exp(s t) \mathrm{d}s, \mathrm{~where~}\,f_{\mathrm{L}}(s)\equiv \int_0^{\infty}G_{\mathrm{L,LF}}(t)\exp(-s t) \mathrm{d}t\]

or the time shifted version of it. $G_{\mathrm{L,LF}}(t)$ is the static Lorentzain Kubo-Toyabe function in longitudinal field

The current implementation is not realized via the above formulas, but ...

meaning of paramValues: $a$, $\nu$, $\Gamma$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1541 of file PTheory.cpp.

References CalculateDynKTLF(), fParamNo, fPrevParam, GetDynKTLFValue(), and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ DynamicNKTF()

Double_t PTheory::DynamicNKTF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: dynamicNKTF (see D.R. Noakes and G.M. Kalvius Phys. Rev. B 56, 2352 (1997) and A. Yaouanc and P. Dalmas de Reotiers, "Muon Spin Rotation, Relaxation, and Resonance" Oxford, Section 6.4.1.3) However, I have rewritten it using the identity $\Delta_{\rm eff}^2 = (1+R_b^2) \Delta_0^2$, which allows to massively simplify the formula which now only involves $R_b$ and $\Delta_0$. Here $\Delta_0$ Will be given in units of $1/\mu\mathrm{sec}$.

\begin{eqnarray*} \Theta(t) &=& \frac{\exp(-\nu_c t) - 1 - \nu_c t}{\nu_c^2} \\ P_{X}^{\rm dyn}(t) &=& \sqrt{\frac{1}{1+2 R_b^2 \Delta_0^2 \Theta(t)}}\,\exp\left[-\frac{\Delta_0^2 \Theta(t)}{1+2 R_b^2 \Delta_0^2 \Theta(t)}\right]\,\cos(\gamma B_{\rm ext} t + \varphi) \end{eqnarray*}

meaning of paramValues: $\varphi$, $\nu = \gamma B_{\rm ext}$, $\Delta_0$, $R_{\rm b} = \Delta_{\rm GbG}/\Delta_0$, $\nu_c$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2424 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ DynamicNKZF()

Double_t PTheory::DynamicNKZF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: dynamicNKZF (see D.R. Noakes and G.M. Kalvius Phys. Rev. B 56, 2352 (1997) and A. Yaouanc and P. Dalmas de Reotiers, "Muon Spin Rotation, Relaxation, and Resonance" Oxford, Section 6.4.1.3) However, I have rewritten it using the identity $\Delta_{\rm eff}^2 = (1+R_b^2) \Delta_0^2$, which allows to massively simplify the formula which now only involves $R_b$ and $\Delta_0$. Here $\Delta_0$ Will be given in units of $1/\mu\mathrm{sec}$.

\begin{eqnarray*} \Theta(t) &=& \frac{\exp(-\nu_c t) - 1 - \nu_c t}{\nu_c^2} \\ P_{Z}^{\rm dyn}(t) &=& \sqrt{\frac{1}{1+4 R_b^2 \Delta_0^2 \Theta(t)}}\,\exp\left[-\frac{2 \Delta_0^2 \Theta(t)}{1+4 R_b^2 \Delta_0^2 \Theta(t)}\right] \end{eqnarray*}

meaning of paramValues: $\Delta_0$, $R_{\rm b} = \Delta_{\rm GbG}/\Delta_0$, $\nu_c$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2363 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ Func()

Double_t PTheory::Func ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
virtual

Evaluates the theory tree.

return:

  • theory value for the given sets of parameters
Parameters
ttime for single histogram, asymmetry, and mu-minus fits, x-axis value non-muSR fits
paramValuesvector with the parameters
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 390 of file PTheory.cpp.

References Abragam(), Asymmetry(), Bessel(), CombiLGKT(), Constant(), DynamicGaussKTLF(), DynamicLorentzKTLF(), DynamicNKTF(), DynamicNKZF(), fAdd, fMul, fType, Func(), GeneralExp(), InternalBessel(), InternalField(), InternalFieldGK(), InternalFieldLL(), MuMinusExpTF(), Polynom(), RandomAnisotropicHyperfine(), SimpleExp(), SimpleGauss(), SkewedGauss(), SpinGlass(), StaticGaussKT(), StaticGaussKTLF(), StaticLorentzKT(), StaticLorentzKTLF(), StaticNKTF(), StaticNKZF(), StrKT(), TFCos(), THEORY_ABRAGAM, THEORY_ASYMMETRY, THEORY_BESSEL, THEORY_COMBI_LGKT, THEORY_CONST, THEORY_DYNAMIC_GAUSS_KT_LF, THEORY_DYNAMIC_LORENTZ_KT_LF, THEORY_DYNAMIC_TF_NK, THEORY_DYNAMIC_ZF_NK, THEORY_GENERAL_EXP, THEORY_INTERNAL_BESSEL, THEORY_INTERNAL_FIELD, THEORY_INTERNAL_FIELD_KORNILOV, THEORY_INTERNAL_FIELD_LARKIN, THEORY_MU_MINUS_EXP, THEORY_POLYNOM, THEORY_RANDOM_ANISOTROPIC_HYPERFINE, THEORY_SIMPLE_EXP, THEORY_SIMPLE_GAUSS, THEORY_SKEWED_GAUSS, THEORY_SPIN_GLASS, THEORY_STATIC_GAUSS_KT, THEORY_STATIC_GAUSS_KT_LF, THEORY_STATIC_LORENTZ_KT, THEORY_STATIC_LORENTZ_KT_LF, THEORY_STATIC_TF_NK, THEORY_STATIC_ZF_NK, THEORY_STR_KT, THEORY_TF_COS, THEORY_USER_FCN, and UserFcn().

Referenced by Func().

◆ GeneralExp()

Double_t PTheory::GeneralExp ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: generalized exponential

\[ = \exp\left(-[\lambda t]^\beta\right) \]

or

\[ = \exp\left(-[\lambda (t-t_{\rm shift})]^\beta\right) \]

meaning of paramValues: $\lambda$, $\beta$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1084 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ GetDynKTLFValue()

Double_t PTheory::GetDynKTLFValue ( const Double_t  t) const
privatevirtual

Gets value of the dynamic Kubo-Toyabe LF function.

return: function value

Parameters
ttime in (usec)

Definition at line 2843 of file PTheory.cpp.

References fDynLFdt, and fDynLFFuncValue.

Referenced by DynamicGaussKTLF(), and DynamicLorentzKTLF().

◆ GetLFIntegralValue()

Double_t PTheory::GetLFIntegralValue ( const Double_t  t) const
privatevirtual

Gets value of the non-analytic static LF integral.

return: value of the non-analytic static LF integral

Parameters
ttime in (usec)

Definition at line 2682 of file PTheory.cpp.

References fLFIntegral, and fSamplingTime.

Referenced by CalculateDynKTLF(), StaticGaussKTLF(), and StaticLorentzKTLF().

◆ GetUserFcnIdx()

Int_t PTheory::GetUserFcnIdx ( UInt_t  lineNo) const
privatevirtual

Counts the number of user functions in the theory block up to lineNo.

return: to number of user functions found up to lineNo

Parameters
lineNocurrent line number in the theory block

Definition at line 765 of file PTheory.cpp.

References fMsrInfo, and PMsrHandler::GetMsrTheory().

Referenced by PTheory().

◆ InternalBessel()

Double_t PTheory::InternalBessel ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: internal field bessel function

\[ = \alpha\,j_0\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)\exp\left(-\lambda_{\mathrm{T}}t\right)+(1-\alpha)\,\exp\left(-\lambda_{\mathrm{L}}t\right)\]

or the time shifted version of it.

meaning of paramValues: $\alpha$, $\varphi$, $\nu$, $\lambda_{\rm T}$, $\lambda_{\rm L}$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2114 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ InternalField()

Double_t PTheory::InternalField ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: internal field function

\[ = \alpha\,\cos\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)\exp\left(-\lambda_{\mathrm{T}}t\right)+(1-\alpha)\,\exp\left(-\lambda_{\mathrm{L}}t\right)\]

or the time shifted version of it.

meaning of paramValues: $\alpha$, $\varphi$, $\nu$, $\lambda_{\rm T}$, $\lambda_{\rm L}$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1927 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ InternalFieldGK()

Double_t PTheory::InternalFieldGK ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: internal field function Gauss-Kornilov (see Physics Letters A 153, 364 (1991)).

\[ = \alpha\,\left[\cos(2\pi\nu t)-\frac{\sigma^2 t}{2\pi\nu}\sin(2\pi\nu t)\right]\exp(-[\sigma t]^2/2)+(1-\alpha)\,\exp(-(\lambda t)^\beta)\]

or the time shifted version of it. For the powder averaged case, $\alpha=2/3$.

meaning of paramValues: $\alpha$, $\nu$, $\sigma$, $\lambda$, $\beta$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1969 of file PTheory.cpp.

References fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ InternalFieldLL()

Double_t PTheory::InternalFieldLL ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: internal field function Lorentz-Larkin (see Physica B: Condensed Matter 289-290, 153 (2000)).

\[ = \alpha\,\left[\cos(2\pi\nu t)-\frac{a}{2\pi\nu}\sin(2\pi\nu t)\right]\exp(-a t)+(1-\alpha)\,\exp(-(\lambda t)^\beta)\]

or the time shifted version of it. For the powder averaged case, $\alpha=2/3$.

meaning of paramValues: $\alpha$, $\nu$, $a$, $\lambda$, $\beta$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2021 of file PTheory.cpp.

References fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ IsValid()

Bool_t PTheory::IsValid ( )
virtual

Checks if the theory tree is valid.

return:

  • true if valid
  • false otherwise

Definition at line 361 of file PTheory.cpp.

References fAdd, fMul, fValid, and IsValid().

Referenced by IsValid().

◆ MakeCleanAndTidyPolynom()

void PTheory::MakeCleanAndTidyPolynom ( UInt_t  i,
PMsrLines fullTheoryBlock 
)
privatevirtual

Prettifies a polynom theory line.

Parameters
iline index of the theory polynom line to be prettified
fullTheoryBlockmsr-file text lines of the theory block

Definition at line 885 of file PTheory.cpp.

References PMsrLineStructure::fLine.

Referenced by MakeCleanAndTidyTheoryBlock().

◆ MakeCleanAndTidyTheoryBlock()

void PTheory::MakeCleanAndTidyTheoryBlock ( PMsrLines fullTheoryBlock)
privatevirtual

Takes the theory block form the msr-file, and makes a nicely formated theory block.

Parameters
fullTheoryBlockmsr-file text lines of the theory block

Definition at line 794 of file PTheory.cpp.

References theo_data_base::fComment, theo_data_base::fCommentTimeShift, fgTheoDataBase, PMsrLineStructure::fLine, theo_data_base::fName, fNoOfParam, theo_data_base::fType, MakeCleanAndTidyPolynom(), MakeCleanAndTidyUserFcn(), THEORY_MAX, and THEORY_UNDEFINED.

Referenced by PTheory().

◆ MakeCleanAndTidyUserFcn()

void PTheory::MakeCleanAndTidyUserFcn ( UInt_t  i,
PMsrLines fullTheoryBlock 
)
privatevirtual

Prettifies a user function theory line.

Parameters
iline index of the user function line to be prettified
fullTheoryBlockmsr-file text lines of the theory block

Definition at line 942 of file PTheory.cpp.

References PMsrLineStructure::fLine.

Referenced by MakeCleanAndTidyTheoryBlock().

◆ MuMinusExpTF()

Double_t PTheory::MuMinusExpTF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: MuMinusExpTF

\[ = N_0 \exp(-t/tau) [1 + A \exp(-\lambda t) \cos(2\pi\nu t + \phi)] \]

meaning of paramValues: $t_{\rm shift}$, $N_0$, $\tau$, $A$, $\lambda$, $\phi$, $\nu$

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2873 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ Polynom()

Double_t PTheory::Polynom ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: polynom

\[ = \sum_{k=0}^n a_k (t-t_{\rm shift})^k \]

meaning of paramValues: $t_{\rm shift}$, $a_0$, $a_1$, $\ldots$, $a_n$

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2478 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ RandomAnisotropicHyperfine()

Double_t PTheory::RandomAnisotropicHyperfine ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: random anisotropic hyperfine function (see R. E. Turner and D. R. Harshman, Phys. Rev. B 34 (1986) 4467)

\[ = \frac{1}{6}\left(1-\frac{\nu t}{2}\right)\exp\left(-\frac{\nu t}{2}\right)+\frac{1}{3}\left(1-\frac{\nu t}{4}\right)\exp\left(-\frac{\nu t + 2.44949\lambda t}{4}\right)\]

or the time shifted version of it.

meaning of paramValues: $\nu$, $\lambda$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1797 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ SearchDataBase()

Int_t PTheory::SearchDataBase ( TString  name)
privatevirtual

Searches the internal look up table for the theory name, and if found set some internal variables to proper values.

return:

  • index of the theory function
Parameters
nametheory name

Definition at line 739 of file PTheory.cpp.

References fgTheoDataBase, theo_data_base::fName, theo_data_base::fNoOfParam, fNoOfParam, theo_data_base::fType, fType, THEORY_MAX, and THEORY_UNDEFINED.

Referenced by PTheory().

◆ SimpleExp()

Double_t PTheory::SimpleExp ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: simple exponential

\[ = \exp\left(-\lambda t\right) \]

or

\[ = \exp\left(-\lambda [t-t_{\rm shift}] \right) \]

meaning of paramValues: $\lambda$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1044 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ SimpleGauss()

Double_t PTheory::SimpleGauss ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: simple Gaussian

\[ = \exp\left(-1/2 [\sigma t]^2\right) \]

or

\[ = \exp\left(-1/2 [\sigma (t-t_{\rm shift})]^2\right) \]

meaning of paramValues: $\sigma$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1132 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ SkewedGauss()

Double_t PTheory::SkewedGauss ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: skewed Gaussian function

\begin{eqnarray*} &=& \frac{\sigma_{-}}{\sigma_{+}+\sigma_{-}}\exp\left[-\frac{\sigma_{-}^2t^2}{2}\right] \left\lbrace\cos\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)+ \sin\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)\mathrm{Erfi}\left(\frac{\sigma_{-}t}{\sqrt{2}}\right)\right\rbrace+\\ & & \frac{\sigma_{+}}{\sigma_{+}+\sigma_{-}} \exp\left[-\frac{\sigma_{+}^2t^2}{2}\right]\left\lbrace\cos\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)- \sin\left(2\pi\nu t+\frac{\pi\varphi}{180}\right)\mathrm{Erfi}\left(\frac{\sigma_{+}t}{\sqrt{2}}\right)\right\rbrace \end{eqnarray*}

or the time shifted version of it.

meaning of paramValues: $\varphi$, $\nu$, $\sigma_{-}$, $\sigma_{+}$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2163 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, SQRT_PI, SQRT_TWO, and TWO_PI.

Referenced by Func().

◆ SpinGlass()

Double_t PTheory::SpinGlass ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: spin glass function

\[ = \frac{1}{3}\exp\left(-\sqrt{\frac{4\lambda^2(1-q)t}{\gamma}}\right)+\frac{2}{3}\left(1-\frac{q\lambda^2t^2}{\sqrt{\frac{4\lambda^2(1-q)t}{\gamma}+q\lambda^2t^2}}\right)\exp\left(-\sqrt{\frac{4\lambda^2(1-q)t}{\gamma}+q\lambda^2t^2}\right)\]

or the time shifted version of it.

meaning of paramValues: $\lambda$, $\gamma$, $q$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1746 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ StaticGaussKT()

Double_t PTheory::StaticGaussKT ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: static Gaussian Kubo-Toyabe in zero applied field

\[ = \frac{1}{3} + \frac{2}{3} \left[1-(\sigma t)^2\right] \exp\left[-1/2 (\sigma t)^2\right] \]

or

\[ = \frac{1}{3} + \frac{2}{3} \left[1-(\sigma \{t-t_{\rm shift}\})^2\right] \exp\left[-1/2 (\sigma \{t-t_{\rm shift}\})^2\right] \]

meaning of paramValues: $\sigma$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1172 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ StaticGaussKTLF()

Double_t PTheory::StaticGaussKTLF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: static Gaussian Kubo-Toyabe in longitudinal applied field

\[ = 1-\frac{2\sigma^2}{(2\pi\nu)^2}\left[1-\exp\left(-1/2 \{\sigma t\}^2\right)\cos(2\pi\nu t)\right] + \frac{2\sigma^4}{(2\pi\nu)^3}\int^t_0 \exp\left(-1/2 \{\sigma \tau\}^2\right)\sin(2\pi\nu\tau)\mathrm{d}\tau \]

or the time shifted version of it.

meaning of paramValues: $\sigma$, $\nu$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1214 of file PTheory.cpp.

References CalculateGaussLFIntegral(), fParamNo, fPrevParam, GetLFIntegralValue(), and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ StaticLorentzKT()

Double_t PTheory::StaticLorentzKT ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: static Lorentzain Kubo-Toyabe in zero applied field (see Uemura et al. PRB 31, 546 (85)).

\[ = 1/3 + 2/3 [1 - \lambda t] \exp(-\lambda t) \]

or the time shifted version of it.

meaning of paramValues: $\lambda$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1401 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ StaticLorentzKTLF()

Double_t PTheory::StaticLorentzKTLF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: static Lorentzain Kubo-Toyabe in longitudinal applied field (see Uemura et al. PRB 31, 546 (85)).

\[ = 1-\frac{a}{2\pi\nu}j_1(2\pi\nu t)\exp\left(-at\right)- \left(\frac{a}{2\pi\nu}\right)^2 \left[j_0(2\pi\nu t)\exp\left(-at\right)-1\right]- a\left[1+\left(\frac{a}{2\pi\nu}\right)^2\right]\int^t_0 \exp\left(-a\tau\right)j_0(2\pi\nu\tau)\mathrm{d}\tau) \]

or the time shifted version of it.

meaning of paramValues: $a$, $\nu$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1444 of file PTheory.cpp.

References CalculateLorentzLFIntegral(), fParamNo, fPrevParam, GetLFIntegralValue(), and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ StaticNKTF()

Double_t PTheory::StaticNKTF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: staticNKTF (see D.R. Noakes and G.M. Kalvius Phys. Rev. B 56, 2352 (1997) and A. Yaouanc and P. Dalmas de Reotiers, "Muon Spin Rotation, Relaxation, and Resonance" Oxford, Section 6.4.1.3) However, I have rewritten it using the identity $\Delta_{\rm eff}^2 = (1+R_b^2) \Delta_0^2$, which allows to massively simplify the formula which now only involves $R_b$ and $\Delta_0$. Here $\Delta_0$ Will be given in units of $1/\mu\mathrm{sec}$.

\[ = \frac{1}{\sqrt{1+(R_b \gamma\Delta_0 t)^2}}\, \exp\left[-\frac{(\gamma\Delta_0 t)^2}{2(1+(R_b \gamma\Delta_0 t)^2)}\right]\, \cos(\gamma B_{\rm ext} t + \varphi) \]

meaning of paramValues: $\varphi$, $\nu = \gamma B_{\rm ext}$, $\Delta_0$, $R_{\rm b} = \Delta_{\rm GbG}/\Delta_0$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2307 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ StaticNKZF()

Double_t PTheory::StaticNKZF ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: staticNKZF (see D.R. Noakes and G.M. Kalvius Phys. Rev. B 56, 2352 (1997) and A. Yaouanc and P. Dalmas de Reotiers, "Muon Spin Rotation, Relaxation, and Resonance" Oxford, Section 6.4.1.3) However, I have rewritten it using the identity $\Delta_{\rm eff}^2 = (1+R_b^2) \Delta_0^2$, which allows to massively simplify the formula which now only involves $R_b$ and $\Delta_0$. Here $\Delta_0$ Will be given in units of $1/\mu\mathrm{sec}$.

\[ = \frac{1}{3} + \frac{2}{3}\,\frac{1}{\left(1+(R_b \Delta_0 t)^2\right)^{3/2}}\, \left(1 - \frac{(\Delta_0 t)^2}{\left(1+(R_b \Delta_0 t)^2\right)}\right)\, \exp\left[\frac{(\Delta_0 t)^2}{2\left(1+(R_b \Delta_0 t)^2\right)}\right] \]

meaning of paramValues: $\Delta_0$, $R_{\rm b} = \Delta_{\rm GbG}/\Delta_0$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2252 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ StrKT()

Double_t PTheory::StrKT ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: stretched Kubo-Toyabe in zero field. Ref: Crook M. R. and Cywinski R., J. Phys. Condens. Matter, 9 (1997) 1149.

\[ = 1/3 + 2/3 \left(1-(\sigma t)^\beta \right) \exp\left(-(\sigma t)^\beta / \beta\right)\]

or the time shifted version of it.

meaning of paramValues: $\sigma$, $\beta$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1697 of file PTheory.cpp.

References fParamNo, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

◆ TFCos()

Double_t PTheory::TFCos ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: cosine including phase

\[ = \cos(2\pi\nu t + \varphi) \]

or the time shifted version of it.

meaning of paramValues: $\nu$, $\varphi$ [, $t_{\rm shift}$]

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 1886 of file PTheory.cpp.

References DEG_TO_RAD, fParamNo, MSR_PARAM_FUN_OFFSET, and TWO_PI.

Referenced by Func().

◆ UserFcn()

Double_t PTheory::UserFcn ( Double_t  t,
const PDoubleVector paramValues,
const PDoubleVector funcValues 
) const
privatevirtual

theory function: user function

return: function value

Parameters
ttime in $(\mu\mathrm{s})$, or x-axis value for non-muSR fit
paramValuesparameter values
funcValuesvector with the functions (i.e. functions of the parameters)

Definition at line 2515 of file PTheory.cpp.

References fParamNo, fUserFcn, fUserParam, and MSR_PARAM_FUN_OFFSET.

Referenced by Func().

Member Data Documentation

◆ fAdd

PTheory* PTheory::fAdd
private

Definition at line 295 of file PTheory.h.

Referenced by CleanUp(), Func(), IsValid(), and PTheory().

◆ fDynLFdt

Double_t PTheory::fDynLFdt
mutableprivate

needed for LF. Keeps the time step for the dynamic LF calculation, used in the integral equation approach

Definition at line 308 of file PTheory.h.

Referenced by CalculateDynKTLF(), GetDynKTLFValue(), and PTheory().

◆ fDynLFFuncValue

PDoubleVector PTheory::fDynLFFuncValue
mutableprivate

needed for LF. Keeps the dynamic LF KT function values

Definition at line 309 of file PTheory.h.

Referenced by CalculateDynKTLF(), GetDynKTLFValue(), and ~PTheory().

◆ fLFIntegral

PDoubleVector PTheory::fLFIntegral
mutableprivate

needed for LF. Keeps the non-analytic integral values

Definition at line 307 of file PTheory.h.

Referenced by CalculateGaussLFIntegral(), CalculateLorentzLFIntegral(), GetLFIntegralValue(), and ~PTheory().

◆ fMsrInfo

PMsrHandler* PTheory::fMsrInfo
private

pointer to the msr-file handler

Definition at line 303 of file PTheory.h.

Referenced by GetUserFcnIdx().

◆ fMul

PTheory * PTheory::fMul
private

pointers to the add-sub-function or the multiply-sub-function

Definition at line 295 of file PTheory.h.

Referenced by CleanUp(), Func(), IsValid(), and PTheory().

◆ fNoOfParam

UInt_t PTheory::fNoOfParam
private

number of parameters for the given function

Definition at line 294 of file PTheory.h.

Referenced by MakeCleanAndTidyTheoryBlock(), PTheory(), and SearchDataBase().

◆ fParamNo

◆ fPrevParam

Double_t PTheory::fPrevParam[THEORY_MAX_PARAM]
mutableprivate

needed for LF. Keeps the previous fitting parameters

Definition at line 306 of file PTheory.h.

Referenced by DynamicGaussKTLF(), DynamicLorentzKTLF(), PTheory(), StaticGaussKTLF(), and StaticLorentzKTLF().

◆ fSamplingTime

Double_t PTheory::fSamplingTime
mutableprivate

needed for LF. Keeps the sampling time of the non-analytic integral

Definition at line 305 of file PTheory.h.

Referenced by CalculateGaussLFIntegral(), CalculateLorentzLFIntegral(), GetLFIntegralValue(), and PTheory().

◆ fType

UInt_t PTheory::fType
private

function tag

Definition at line 292 of file PTheory.h.

Referenced by Func(), PTheory(), and SearchDataBase().

◆ fUserFcn

PUserFcnBase* PTheory::fUserFcn
private

pointer to the user function object

Definition at line 300 of file PTheory.h.

Referenced by PTheory(), UserFcn(), and ~PTheory().

◆ fUserFcnClassName

TString PTheory::fUserFcnClassName
private

name of the user function class for within root

Definition at line 298 of file PTheory.h.

Referenced by PTheory().

◆ fUserFcnIdx

Int_t PTheory::fUserFcnIdx
private

index of the user function within the theory tree

Definition at line 297 of file PTheory.h.

Referenced by PTheory().

◆ fUserFcnSharedLibName

TString PTheory::fUserFcnSharedLibName
private

name of the shared lib to which the user function belongs

Definition at line 299 of file PTheory.h.

Referenced by PTheory().

◆ fUserParam

PDoubleVector PTheory::fUserParam
mutableprivate

vector holding the resolved user function parameters, i.e. map and function resolved.

Definition at line 301 of file PTheory.h.

Referenced by PTheory(), UserFcn(), and ~PTheory().

◆ fValid

Bool_t PTheory::fValid
private

flag to tell if the theory is valid

Definition at line 291 of file PTheory.h.

Referenced by IsValid(), and PTheory().


The documentation for this class was generated from the following files: