Mantid
|
ThermalNeutronBk2BkExpConvPVoigt : Back-to-back exponential convoluted with pseudo Voigt for thermal neutron and epithermal neutron TOF. More...
#include <ThermalNeutronBk2BkExpConvPVoigt.h>
Public Member Functions | |
void | calculateParameters (bool explicitoutput) const override |
Calculate peak parameters (alpha, beta, sigma2..) More... | |
const std::string | category () const override |
The categories the Fit function belong to. More... | |
void | function (const FunctionDomain &domain, FunctionValues &values) const override |
Set peak's height. More... | |
void | function (std::vector< double > &out, const std::vector< double > &xValues) const override |
Function (local) of the vector version. More... | |
void | function1D (double *out, const double *xValues, const size_t nData) const override |
Function you want to fit to. More... | |
double | getPeakParameter (const std::string &) override |
Overwrite IPeakFunction base class methods. More... | |
std::string | name () const override |
Overwrite IFunction base class methods. More... | |
void | setParameter (const std::string &name, const double &value, bool explicitlySet=true) override |
Override setting a new value to a parameter by name. More... | |
void | setParameter (size_t i, const double &value, bool explicitlySet=true) override |
Core function to calcualte peak values for whole region. More... | |
ThermalNeutronBk2BkExpConvPVoigt () | |
Constructor. More... | |
Public Member Functions inherited from Mantid::API::IPowderDiffPeakFunction | |
virtual void | calculateParameters (bool explicitoutput) const =0 |
Calculate peak parameters (alpha, beta, sigma2..) More... | |
virtual double | centre () const |
Overwrite IFunction base class methods. More... | |
void | function (const FunctionDomain &domain, FunctionValues &values) const override |
Calculate function in a range. More... | |
virtual void | function (std::vector< double > &out, const std::vector< double > &xValues) const =0 |
virtual double | fwhm () const |
Get peakl's FWHM. More... | |
virtual double | getMaximumValue (const std::vector< double > &xValues, size_t &indexmax) const |
Get maximum value on a given set of data points. More... | |
virtual void | getMillerIndex (int &h, int &k, int &l) |
Get Miller Index from this peak. More... | |
virtual double | getPeakParameter (const std::string &)=0 |
Get peak parameters. More... | |
virtual bool | hasProfileParameter (std::string paramname) |
Check whether a parameter is a profile parameter. More... | |
virtual double | height () const |
Get peak's intensity. More... | |
IPowderDiffPeakFunction () | |
Constructor and Destructor. More... | |
virtual bool | isPhysical () |
The flag to show whether the parameters set to peak function making an valid peak. More... | |
virtual void | setHeight (const double h) |
Set peak's height. More... | |
virtual void | setMillerIndex (int h, int k, int l) |
Set Miller Indicies. More... | |
void | setParameter (const std::string &name, const double &value, bool explicitlySet=true) override |
Override setting a new value to a parameter by name. More... | |
void | setParameter (size_t i, const double &value, bool explicitlySet=true) override |
Override setting a new value to the i-th parameter. More... | |
virtual void | setPeakRadius (const int &r) |
Set peak's radius. More... | |
virtual void | setUnitCellParameterValueChangeFlag (bool changed) |
Set up the flag to show whether (from client) cell parameter value changed. More... | |
Public Member Functions inherited from Mantid::API::ParamFunction | |
IFunction_sptr | getContainingFunction (const ParameterReference &ref) const |
Get the containing function. More... | |
IFunction_sptr | getContainingFunction (IFunction_sptr fun) |
Get the containing function. More... | |
double | getError (const std::string &name) const override |
Get the fitting error for a parameter by name. More... | |
double | getError (size_t i) const override |
Get the fitting error for a parameter. More... | |
double | getParameter (const std::string &name) const override |
Get parameter by name. More... | |
double | getParameter (size_t i) const override |
Get i-th parameter. More... | |
size_t | getParameterIndex (const ParameterReference &ref) const override |
Return parameter index from a parameter reference. More... | |
bool | hasParameter (const std::string &name) const override |
Check if function has a parameter with this name. More... | |
bool | isExplicitlySet (size_t i) const override |
Checks if a parameter has been set explicitly. More... | |
size_t | nParams () const override |
Total number of parameters. More... | |
std::string | parameterDescription (size_t i) const override |
Returns the description of parameter i. More... | |
size_t | parameterIndex (const std::string &name) const override |
Returns the index of parameter name. More... | |
std::string | parameterName (size_t i) const override |
Returns the name of parameter i. More... | |
ParamFunction () | |
Default constructor. More... | |
void | setError (const std::string &name, double err) override |
Set the fitting error for a parameter by name. More... | |
void | setError (size_t i, double err) override |
Set the fitting error for a parameter. More... | |
void | setParameter (const std::string &name, const double &value, bool explicitlySet=true) override |
Set parameter by name. More... | |
void | setParameter (size_t, const double &value, bool explicitlySet=true) override |
Set i-th parameter. More... | |
void | setParameterDescription (const std::string &name, const std::string &description) override |
Set description of parameter by name. More... | |
void | setParameterDescription (size_t, const std::string &description) override |
Set i-th parameter description. More... | |
Public Member Functions inherited from Mantid::API::IFunction | |
std::string | asString () const |
Writes itself into a string. More... | |
bool | cancellationRequestReceived () const |
Returns true if a progress reporter is set & evalaution has been requested to stop. More... | |
virtual const std::vector< std::string > | categories () const |
Function to return all of the categories that contain this algorithm. More... | |
virtual const std::string | category () const |
The categories the Fit function belong to. More... | |
virtual const std::string | categorySeparator () const |
Function to return the sperator token for the category string. More... | |
virtual std::shared_ptr< IFunction > | clone () const |
Virtual copy constructor. More... | |
virtual int64_t | estimateNoProgressCalls () const |
Returns an estimate of the number of progress reports a single evaluation of the function will have. More... | |
virtual void | function (const FunctionDomain &domain, FunctionValues &values) const =0 |
Evaluates the function for all arguments in the domain. More... | |
virtual void | functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) |
Derivatives of function with respect to active parameters. More... | |
IFunction () | |
Constructor. More... | |
IFunction (const IFunction &)=delete | |
No copying. More... | |
virtual void | initialize () |
Iinialize the function. More... | |
virtual void | iterationFinished () |
Called at the end of an iteration. More... | |
virtual void | iterationStarting () |
Called at the start of each iteration. More... | |
virtual std::string | name () const =0 |
Returns the function's name. More... | |
IFunction & | operator= (const IFunction &)=delete |
No copying. More... | |
virtual void | registerFunctionUsage (bool internal) |
Registers the usage of the algorithm with the UsageService. More... | |
void | reportProgress (const std::string &msg="") const |
Reports progress with an optional message. More... | |
virtual void | setMatrixWorkspace (std::shared_ptr< const API::MatrixWorkspace > workspace, size_t wi, double startX, double endX) |
Set matrix workspace. More... | |
void | setProgressReporter (std::shared_ptr< Kernel::ProgressBase > reporter) |
Attach a progress reporter. More... | |
virtual void | setWorkspace (std::shared_ptr< const Workspace > ws) |
Set the workspace. More... | |
virtual | ~IFunction () |
Virtual destructor. More... | |
bool | isFixed (size_t i) const |
Check if a parameter i is fixed. More... | |
bool | isFixedByDefault (size_t i) const |
Check if a parameter i is fixed by default (not by user). More... | |
void | fix (size_t i, bool isDefault=false) |
Removes a parameter i from the list of active. More... | |
void | unfix (size_t i) |
Restores a declared parameter i to the active status. More... | |
void | fixParameter (const std::string &name, bool isDefault=false) |
Fix a parameter. More... | |
void | unfixParameter (const std::string &name) |
Free a parameter. More... | |
void | fixAll (bool isDefault=false) |
Fix all parameters. More... | |
void | unfixAll () |
Free all parameters. More... | |
void | unfixAllDefault () |
Free all parameters fixed by default. More... | |
void | fixAllActive (bool isDefault=false) |
Fix all active parameters. More... | |
std::vector< std::string > | getParameterNames () const |
Return a vector with all parameter names. More... | |
virtual double | activeParameter (size_t i) const |
Value of i-th active parameter. More... | |
virtual void | setActiveParameter (size_t i, double value) |
Set new value of i-th active parameter. More... | |
virtual std::string | nameOfActive (size_t i) const |
Returns the name of active parameter i. More... | |
virtual std::string | descriptionOfActive (size_t i) const |
Returns the name of active parameter i. More... | |
bool | isActive (size_t i) const |
Check if an active parameter i is actually active. More... | |
virtual void | tie (const std::string &parName, const std::string &expr, bool isDefault=false) |
Tie a parameter to other parameters (or a constant) More... | |
virtual void | addTies (const std::string &ties, bool isDefault=false) |
Add several ties. More... | |
virtual void | applyTies () |
Apply the ties. More... | |
virtual void | removeTie (const std::string &parName) |
Removes the tie off a parameter. More... | |
virtual void | clearTies () |
Remove all ties. More... | |
virtual bool | removeTie (size_t i) |
Removes i-th parameter's tie. More... | |
virtual ParameterTie * | getTie (size_t i) const |
Get the tie of i-th parameter. More... | |
virtual bool | ignoreTie (const ParameterTie &) const |
Ignore a tie. More... | |
void | sortTies () |
Put all ties in order in which they will be applied correctly. More... | |
std::string | writeTies () const |
Write a parameter tie to a string. More... | |
virtual void | addConstraints (const std::string &str, bool isDefault=false) |
Add a list of conatraints from a string. More... | |
virtual void | addConstraint (std::unique_ptr< IConstraint > ic) |
Add a constraint to function. More... | |
virtual IConstraint * | getConstraint (size_t i) const |
Get constraint of i-th parameter. More... | |
virtual void | removeConstraint (const std::string &parName) |
Remove a constraint. More... | |
virtual void | setConstraintPenaltyFactor (const std::string &parName, const double &c) |
Set a constraint penalty. More... | |
std::string | writeConstraints () const |
Write a parameter constraint to a string. More... | |
virtual void | clearConstraints () |
Remove all constraints. More... | |
virtual size_t | nAttributes () const |
Returns the number of attributes associated with the function. More... | |
virtual std::vector< std::string > | getAttributeNames () const |
Returns a list of attribute names. More... | |
virtual std::string | attributeName (size_t index) const |
Get name of ith attribute. More... | |
virtual Attribute | getAttribute (const std::string &name) const |
Return a value of attribute attName. More... | |
virtual void | setAttribute (const std::string &name, const Attribute &) |
Set a value to attribute attName. More... | |
virtual bool | hasAttribute (const std::string &name) const |
Check if attribute attName exists. More... | |
template<typename T > | |
void | setAttributeValue (const std::string &attName, const T &value) |
Set an attribute value. More... | |
void | setAttributeValue (const std::string &attName, const char *value) |
Overload for const char* values. More... | |
void | setAttributeValue (const std::string &attName, const std::string &value) |
Set string attribute by value. More... | |
virtual std::shared_ptr< IFunction > | getFunction (size_t i) const |
Returns the pointer to i-th child function. More... | |
virtual std::size_t | nFunctions () const |
Number of child functions. More... | |
virtual void | setUpForFit () |
Set up the function for a fit. More... | |
virtual size_t | getValuesSize (const FunctionDomain &domain) const |
Get number of values for a given domain. More... | |
virtual size_t | getNumberDomains () const |
Get number of domains required by this function. More... | |
virtual std::vector< std::shared_ptr< IFunction > > | createEquivalentFunctions () const |
Split this function (if needed) into a list of independent functions. More... | |
void | calNumericalDeriv (const FunctionDomain &domain, Jacobian &jacobian) |
Calculate numerical derivatives. More... | |
double | calculateStepSize (const double parameterValue) const |
Calculate step size for the given parameter value. More... | |
void | setCovarianceMatrix (const std::shared_ptr< Kernel::Matrix< double > > &covar) |
Set the covariance matrix. More... | |
std::shared_ptr< const Kernel::Matrix< double > > | getCovarianceMatrix () const |
Get the covariance matrix. More... | |
void | setReducedChiSquared (double chi2) |
Set the reduced chi^2. More... | |
double | getReducedChiSquared () const |
Get the reduced chi^2. More... | |
void | setParallel (bool on) |
Set the parallel hint. More... | |
bool | isParallel () const |
Get the parallel hint. More... | |
void | setHandler (std::unique_ptr< FunctionHandler > handler) |
Set a function handler. More... | |
FunctionHandler * | getHandler () const |
Return the handler. More... | |
virtual void | setStepSizeMethod (const StepSizeMethod method) |
Sets the StepSizeMethod to use when calculation the step size. More... | |
Public Member Functions inherited from Mantid::API::IFunction1D | |
virtual void | derivative (const FunctionDomain &domain, FunctionValues &values, const size_t order=1) const |
virtual void | derivative1D (double *out, const double *xValues, const size_t nData, const size_t order) const |
Function to calculate the derivatives of the data set. More... | |
void | function (const FunctionDomain &domain, FunctionValues &values) const override |
Evaluates the function for all arguments in the domain. More... | |
virtual void | function1D (double *out, const double *xValues, const size_t nData) const =0 |
Function you want to fit to. More... | |
void | functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) override |
Derivatives of function with respect to active parameters. More... | |
virtual void | functionDeriv1D (Jacobian *jacobian, const double *xValues, const size_t nData) |
Derivatives of function with respect to active parameters. More... | |
Private Member Functions | |
void | calHandEta (double sigma2, double gamma, double &H, double &eta) const |
Calcualte H and Eta. More... | |
double | calOmega (const double x, const double eta, const double N, const double alpha, const double beta, const double H, const double sigma2, const double invert_sqrt2sigma, const bool explicitoutput=false) const |
Calculate peak profile I(TOF) = Omega(TOF) More... | |
double | calPeakCenter () const |
Calculate peak center. More... | |
void | functionDeriv (const API::FunctionDomain &domain, API::Jacobian &jacobian) override |
Derivative. More... | |
virtual void | functionDerivLocal (API::Jacobian *out, const double *xValues, const size_t nData) |
Derivative. More... | |
void | functionLocal (double *out, const double *xValues, const size_t nData) const |
Fuction local. More... | |
void | init () override |
Overwrite IFunction base class method, which declare function parameters. More... | |
void | interruption_point () const |
Override setting a new value to the. More... | |
Private Attributes | |
double | m_Alpha |
Set 2 functions to be hidden from client. More... | |
double | m_Beta |
bool | m_cancel |
Set to true to stop execution. More... | |
bool | m_dspaceCalculated |
Flag to show whether the unit cell has been calcualted. More... | |
double | m_eta |
FWHM. More... | |
double | m_Gamma |
double | m_N |
bool | m_parallelException |
Set if an exception is thrown, and not caught, within a parallel region. More... | |
double | m_Sigma2 |
Static Private Attributes | |
static int | s_peakRadius = 5 |
Default value for the peak radius. More... | |
Additional Inherited Members | |
Public Types inherited from Mantid::API::IFunction | |
enum | ParameterStatus { Active , Fixed , FixedByDefault , Tied } |
Describe parameter status in relation to fitting: Active: Fit varies such parameter directly. More... | |
enum class | StepSizeMethod { DEFAULT , SQRT_EPSILON } |
Describes the method in which the step size will be calculated: DEFAULT: Uses the traditional Mantid method of calculating the step size. More... | |
Protected Types inherited from Mantid::API::IFunction1D | |
template<typename FunctionType > | |
using | Function1DMethod = void(FunctionType::*)(double *, const double *, const size_t) const |
Protected Member Functions inherited from Mantid::API::ParamFunction | |
void | clearAllParameters () |
Nonvirtual member which removes all declared parameters. More... | |
void | declareParameter (const std::string &name, double initValue=0, const std::string &description="") override |
Declare a new parameter. More... | |
virtual double * | getParameterAddress (size_t i) |
Get the address of the parameter. For use in UserFunction with mu::Parser. More... | |
ParameterStatus | getParameterStatus (size_t i) const override |
Get status of parameter. More... | |
void | setParameterStatus (size_t i, ParameterStatus status) override |
Change status of parameter. More... | |
Protected Member Functions inherited from Mantid::API::IFunction | |
double | convertValue (double value, Kernel::Unit_sptr &outUnit, const std::shared_ptr< const MatrixWorkspace > &ws, size_t wsIndex) const |
Convert a value from one unit (inUnit) to unit defined in workspace (ws) More... | |
void | convertValue (std::vector< double > &values, Kernel::Unit_sptr &outUnit, const std::shared_ptr< const MatrixWorkspace > &ws, size_t wsIndex) const |
Convert values from unit defined in workspace (ws) to outUnit. More... | |
virtual void | declareAttributes () |
Override to declare function attributes. More... | |
virtual void | declareParameters () |
Override to declare function parameters. More... | |
void | declareAttribute (const std::string &name, const API::IFunction::Attribute &defaultValue) |
Declare a single attribute. More... | |
void | declareAttribute (const std::string &name, const API::IFunction::Attribute &defaultValue, const Kernel::IValidator &validator) |
Declare a single attribute with validator. More... | |
void | checkAttributeName (const std::string &name) |
Check Attribute to declare does not already exist. More... | |
void | storeAttributeValue (const std::string &name, const API::IFunction::Attribute &value) |
Store an attribute's value. More... | |
void | storeReadOnlyAttribute (const std::string &name, const API::IFunction::Attribute &value) const |
A read-only ("mutable") attribute can be stored in a const method. More... | |
virtual void | addTie (std::unique_ptr< ParameterTie > tie) |
Add a new tie. Derived classes must provide storage for ties. More... | |
bool | hasOrderedTies () const |
void | applyOrderedTies () |
virtual std::string | writeToString (const std::string &parentLocalAttributesStr="") const |
Writes itself into a string. More... | |
Protected Member Functions inherited from Mantid::API::IFunction1D | |
template<typename EvaluationMethod > | |
void | calcNumericalDerivative1D (Jacobian *jacobian, EvaluationMethod func1D, const double *xValues, const size_t nData) |
Calculate a numerical derivative for the 1D data. More... | |
virtual void | histogram1D (double *out, double left, const double *right, const size_t nBins) const |
Calculate histogram data for the given bin boundaries. More... | |
virtual void | histogramDerivative1D (Jacobian *jacobian, double left, const double *right, const size_t nBins) const |
Derivatives of the histogram1D with respect to active parameters. More... | |
Protected Attributes inherited from Mantid::API::IPowderDiffPeakFunction | |
size_t | HEIGHTINDEX |
size_t | LATTICEINDEX |
bool | m_cellParamValueChanged |
An indicator to re-calculate peak d-space position. More... | |
double | m_centre |
Centre of the peak. More... | |
double | m_dcentre |
Centre of the peak in d-space. More... | |
double | m_fwhm |
Peak's FWHM. More... | |
bool | m_hasNewParameterValue |
Flag if any parameter value changed. More... | |
bool | m_parameterValid |
Flag to indicate whether peaks' parameters value can generate a valid peak. More... | |
std::vector< std::string > | m_sortedProfileParameterNames |
Peak profile parameters names in ascending order. More... | |
Geometry::UnitCell | m_unitCell |
Unit cell. More... | |
double | m_unitCellSize |
Unit cell size. More... | |
int | mH |
Miller Indices. More... | |
bool | mHKLSet |
int | mK |
int | mL |
Protected Attributes inherited from Mantid::API::IFunction | |
bool | m_isParallel |
Flag to hint that the function is being used in parallel computations. More... | |
std::unique_ptr< FunctionHandler > | m_handler |
Pointer to a function handler. More... | |
std::shared_ptr< Kernel::ProgressBase > | m_progReporter |
Pointer to the progress handler. More... | |
Static Protected Attributes inherited from Mantid::API::IPowderDiffPeakFunction | |
static int | s_peakRadius = 5 |
Local function for GSL minimizer. More... | |
Static Protected Attributes inherited from Mantid::API::IFunction1D | |
static Kernel::Logger | g_log |
Logger instance. More... | |
ThermalNeutronBk2BkExpConvPVoigt : Back-to-back exponential convoluted with pseudo Voigt for thermal neutron and epithermal neutron TOF.
It will involve the calculation from peak's miller indices
Definition at line 26 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::ThermalNeutronBk2BkExpConvPVoigt | ( | ) |
Constructor.
Definition at line 41 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
|
overridevirtual |
Calculate peak parameters (alpha, beta, sigma2..)
Calculate peak parameters (fundamential Back-to-back PV),including alpha, beta, sigma^2, eta, H.
Implements Mantid::API::IPowderDiffPeakFunction.
Definition at line 213 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References calHandEta(), Mantid::Geometry::UnitCell::d(), Mantid::API::IFunction1D::g_log, Mantid::API::ParamFunction::getParameter(), Mantid::Kernel::Logger::information(), Mantid::API::IPowderDiffPeakFunction::LATTICEINDEX, m_Alpha, m_Beta, Mantid::API::IPowderDiffPeakFunction::m_cellParamValueChanged, Mantid::API::IPowderDiffPeakFunction::m_centre, Mantid::API::IPowderDiffPeakFunction::m_dcentre, m_eta, Mantid::API::IPowderDiffPeakFunction::m_fwhm, m_Gamma, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, m_N, Mantid::API::IPowderDiffPeakFunction::m_parameterValid, m_Sigma2, Mantid::API::IPowderDiffPeakFunction::m_unitCell, Mantid::API::IPowderDiffPeakFunction::mH, Mantid::API::IPowderDiffPeakFunction::mK, Mantid::API::IPowderDiffPeakFunction::mL, n, and Mantid::Geometry::UnitCell::set().
Referenced by function(), functionLocal(), Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::genPeak(), and getPeakParameter().
|
private |
Calcualte H and Eta.
Get the center of the peak.
double ThermalNeutronBk2BkExpConvPVoigt::centre()const { if (m_newValueSet) calculateParameters(false);
return m_centre; } Set peak height
void ThermalNeutronBk2BkExpConvPVoigt::setHeight(const double h) { setParameter(HEIGHTINDEX, h);
return; } Get peak's height double ThermalNeutronBk2BkExpConvPVoigt::height() const { double height = this->getParameter(HEIGHTINDEX); return height; } Get peak's FWHM
double ThermalNeutronBk2BkExpConvPVoigt::fwhm() const { if (m_newValueSet) calculateParameters(false);
return m_fwhm; } Calcualte H and eta for the peak
Definition at line 471 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References Mantid::API::IFunction1D::g_log, and Mantid::Kernel::Logger::warning().
Referenced by calculateParameters().
|
private |
Calculate peak profile I(TOF) = Omega(TOF)
Calculate Omega(x) = ... ... This is the core component to calcualte peak profile.
Definition at line 494 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References Mantid::API::E1(), fabs, Mantid::API::IFunction1D::g_log, Mantid::Kernel::Logger::warning(), Mantid::Geometry::x, Mantid::Geometry::y, and Mantid::Geometry::z.
Referenced by function(), and functionLocal().
|
private |
Calculate peak center.
|
inlineoverridevirtual |
The categories the Fit function belong to.
Categories must be listed as a semi colon separated list. For example: "General, Muon\\Custom" which adds a function to the category "General" and the sub-category "Muon\\Custom"
Reimplemented from Mantid::API::IFunction.
Definition at line 32 of file ThermalNeutronBk2BkExpConvPVoigt.h.
|
overridevirtual |
Set peak's height.
Get peak's height
Reimplemented from Mantid::API::IPowderDiffPeakFunction.
Definition at line 47 of file IFunction1D.cpp.
|
overridevirtual |
Function (local) of the vector version.
out | The calculated peak intensities. This is assume to been initialized to the correct length with a value of zero everywhere. |
xValues | The x-values to evaluate the peak at. |
Implements Mantid::API::IPowderDiffPeakFunction.
Definition at line 384 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References calculateParameters(), calOmega(), Mantid::API::IFunction1D::g_log, Mantid::API::ParamFunction::getParameter(), m_Alpha, m_Beta, Mantid::API::IPowderDiffPeakFunction::m_centre, m_eta, Mantid::API::IPowderDiffPeakFunction::m_fwhm, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, m_N, m_Sigma2, Mantid::Kernel::Logger::notice(), and PEAKRANGE.
|
overridevirtual |
Function you want to fit to.
This is called during long-running operations, and check if the algorithm has requested that it be cancelled.
void ThermalNeutronBk2BkExpConvPVoigt::interruption_point() const { only throw exceptions if the code is not multi threaded otherwise you contravene the OpenMP standard that defines that all loops must complete, and no exception can leave an OpenMP section openmp cancel handling is performed using the ??, ?? and ?? macros in each algrothim IF_NOT_PARALLEL if (m_cancel) throw Algorithm::CancelException(); } Implementation of complex integral E_1 std::complex<double> E1X(std::complex<double> z) {
std::complex<double> exp_e1;
double rz = real(z); double az = abs(z);
if (fabs(az) < 1.0E-8) { If z = 0, then the result is infinity... diverge! complex<double> r(1.0E300, 0.0); exp_e1 = r; } else if (az <= 10.0 || (rz < 0.0 && az < 20.0)) { Some interesting region, equal to integrate to infinity, converged
complex<double> r(1.0, 0.0); exp_e1 = r; complex<double> cr = r; for (size_t k = 1; k <= 150; ++k) { double dk = double(k); cr = -cr * dk * z / ( (dk+1.0)*(dk+1.0) ); exp_e1 += cr; if (abs(cr) < abs(exp_e1)*1.0E-15) {
cr is converged to zero break; } } // ENDFOR k
const double el = 0.5772156649015328; exp_e1 = -el - log(z) + (z*exp_e1); } else { Rest of the region complex<double> ct0(0.0, 0.0); for (int k = 120; k > 0; –k) { complex<double> dk(double(k), 0.0); ct0 = dk / (10.0 + dk / (z + ct0)); } // ENDFOR k
exp_e1 = 1.0 / (z + ct0); exp_e1 = exp_e1 * exp(-z); if (rz < 0.0 && fabs(imag(z)) < 1.0E-10 ) { complex<double> u(0.0, 1.0); exp_e1 = exp_e1 - (M_PI * u); } }
return exp_e1; } (Migrated from IPeakFunction) General implementation of the method for all peaks. Limits the peak evaluation to a certain number of FWHMs around the peak centre. The outside points are set to 0. Calls functionLocal() to compute the actual values
out | :: Output function values |
xValues | :: X values for data points |
nData | :: Number of data points |
Implements Mantid::API::IFunction1D.
Definition at line 673 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References Mantid::API::IPowderDiffPeakFunction::centre(), fabs, functionLocal(), Mantid::API::IPowderDiffPeakFunction::fwhm(), n, and s_peakRadius.
|
overrideprivatevirtual |
Derivative.
Calculate derivative of this peak function.
Reimplemented from Mantid::API::IFunction1D.
Definition at line 423 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References Mantid::API::IFunction::calNumericalDeriv().
|
privatevirtual |
Derivative.
Disabled derivative.
Definition at line 416 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
|
private |
Fuction local.
Override function1D.
Definition at line 316 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References calculateParameters(), calOmega(), fabs, Mantid::API::ParamFunction::getParameter(), Mantid::API::IPowderDiffPeakFunction::height(), m_Alpha, m_Beta, Mantid::API::IPowderDiffPeakFunction::m_centre, m_eta, Mantid::API::IPowderDiffPeakFunction::m_fwhm, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, m_N, m_Sigma2, and PEAKRANGE.
Referenced by function1D().
|
overridevirtual |
Overwrite IPeakFunction base class methods.
Set Miller Indices for this peak void ThermalNeutronBk2BkExpConvPVoigt::setMillerIndex(int h, int k, int l) { Check validity and set flag if (mHKLSet) { Throw exception if tried to reset the miller index stringstream errss; errss << "ThermalNeutronBk2BkExpConvPVoigt Peak cannot have (HKL) reset."; g_log.error(errss.str()); throw runtime_error(errss.str()); } else { Set flag mHKLSet = true; }.
Set Miller Indicies Get Miller Index from this peak Get peak parameters
Set value mH = static_cast<int>(h); mK = static_cast<int>(k); mL = static_cast<int>(l);
Check value valid or not if (mH*mH + mK*mK + mL*mL < 1.0E-8) { stringstream errmsg; errmsg << "H = K = L = 0 is not allowed"; g_log.error(errmsg.str()); throw std::invalid_argument(errmsg.str()); }
return; } Get Miller Index from this peak void ThermalNeutronBk2BkExpConvPVoigt::getMillerIndex(int& h, int &k, int &l) { h = static_cast<int>(mH); k = static_cast<int>(mK); l = static_cast<int>(mL);
return; } Get peak parameters stored locally Get some internal parameters values including (a) Alpha, (b) Beta, (c) Gamma, (d) Sigma2 Exception: if the peak profile parameter is not in this peak, then return an Empty_DBL
Implements Mantid::API::IPowderDiffPeakFunction.
Definition at line 172 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References calculateParameters(), m_Alpha, m_Beta, Mantid::API::IPowderDiffPeakFunction::m_centre, Mantid::API::IPowderDiffPeakFunction::m_dcentre, m_eta, Mantid::API::IPowderDiffPeakFunction::m_fwhm, m_Gamma, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, m_Sigma2, and name().
Referenced by Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::genPeak().
|
overrideprivatevirtual |
Overwrite IFunction base class method, which declare function parameters.
Define the fittable parameters Notice that Sig0, Sig1 and Sig2 are NOT the squared value recorded in Fullprof.
Reimplemented from Mantid::API::IFunction.
Definition at line 52 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References Mantid::API::ParamFunction::declareParameter(), Mantid::API::IPowderDiffPeakFunction::HEIGHTINDEX, Mantid::API::IPowderDiffPeakFunction::LATTICEINDEX, Mantid::API::IPowderDiffPeakFunction::m_cellParamValueChanged, and Mantid::API::IPowderDiffPeakFunction::m_unitCellSize.
|
private |
Override setting a new value to the.
|
inlineoverridevirtual |
Overwrite IFunction base class methods.
Implements Mantid::API::IFunction.
Definition at line 31 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by getPeakParameter(), and setParameter().
|
overridevirtual |
Override setting a new value to a parameter by name.
Overriding setting parameter by parameter name.
Reimplemented from Mantid::API::IPowderDiffPeakFunction.
Definition at line 565 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References fabs, Mantid::API::IPowderDiffPeakFunction::LATTICEINDEX, Mantid::API::IPowderDiffPeakFunction::m_cellParamValueChanged, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, Mantid::API::IPowderDiffPeakFunction::m_unitCellSize, name(), Mantid::API::ParamFunction::setParameter(), and value.
|
overridevirtual |
Core function to calcualte peak values for whole region.
Override setting parameter by parameter index.
Set up the flag to show whether (from client) cell parameter value changed Override setting a new value to the i-th parameter
Reimplemented from Mantid::API::IPowderDiffPeakFunction.
Definition at line 545 of file ThermalNeutronBk2BkExpConvPVoigt.cpp.
References fabs, Mantid::API::IPowderDiffPeakFunction::LATTICEINDEX, Mantid::API::IPowderDiffPeakFunction::m_cellParamValueChanged, Mantid::API::IPowderDiffPeakFunction::m_hasNewParameterValue, Mantid::API::IPowderDiffPeakFunction::m_unitCellSize, Mantid::API::ParamFunction::setParameter(), and value.
Referenced by Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::genPeak().
|
mutableprivate |
Set 2 functions to be hidden from client.
BackToBackExponential parameters
Definition at line 122 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by calculateParameters(), function(), functionLocal(), and getPeakParameter().
|
mutableprivate |
Definition at line 123 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by calculateParameters(), function(), functionLocal(), and getPeakParameter().
|
mutableprivate |
Set to true to stop execution.
Definition at line 144 of file ThermalNeutronBk2BkExpConvPVoigt.h.
|
mutableprivate |
Flag to show whether the unit cell has been calcualted.
Definition at line 148 of file ThermalNeutronBk2BkExpConvPVoigt.h.
|
mutableprivate |
FWHM.
Centre Thermal/Epithermal neutron related
Definition at line 135 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by calculateParameters(), function(), functionLocal(), and getPeakParameter().
|
mutableprivate |
Definition at line 125 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by calculateParameters(), and getPeakParameter().
|
mutableprivate |
Definition at line 136 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by calculateParameters(), function(), and functionLocal().
|
mutableprivate |
Set if an exception is thrown, and not caught, within a parallel region.
Definition at line 146 of file ThermalNeutronBk2BkExpConvPVoigt.h.
|
mutableprivate |
Definition at line 124 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by calculateParameters(), function(), functionLocal(), and getPeakParameter().
|
staticprivate |
Default value for the peak radius.
Definition at line 98 of file ThermalNeutronBk2BkExpConvPVoigt.h.
Referenced by function1D().