Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Mantid::CurveFitting::Functions::GramCharlierComptonProfile Class Reference

Implements a function to calculate the Compton profile of a nucleus using a Gram-Charlier approximation convoluted with an instrument resolution function that is approximated by a Voigt function. More...

#include <GramCharlierComptonProfile.h>

Inheritance diagram for Mantid::CurveFitting::Functions::GramCharlierComptonProfile:
Mantid::CurveFitting::Functions::ComptonProfile Mantid::API::ParamFunction Mantid::API::IFunction1D Mantid::API::IFunction Mantid::API::IFunction

Public Member Functions

 GramCharlierComptonProfile ()
 Default constructor required by factory. More...
 
- Public Member Functions inherited from Mantid::CurveFitting::Functions::ComptonProfile
 ComptonProfile ()
 Default constructor required for factory. More...
 
virtual size_t fillConstraintMatrix (Kernel::DblMatrix &cmatrix, const size_t start, const HistogramData::HistogramE &errors) const =0
 Fill the appropriate columns of the given matrix with the values of the mass profile. More...
 
virtual std::vector< size_t > intensityParameterIndices () const =0
 Returns the indices of the intensity parameters. More...
 
virtual void massProfile (double *result, const size_t nData) const =0
 Override to calculate the value of the profile for this mass and store in the given array. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Set parameter by name. More...
 
void setParameter (size_t i, const double &value, bool explicitlySet=true) override
 Set i-th parameter. More...
 
void function1D (double *out, const double *xValues, const size_t nData) const override
 Calculates the value of the function for each x value and stores in the given output array. More...
 
void setUpForFit () override
 Ensure the object is ready to be fitted. More...
 
void buildCaches ()
 Initiate a Y-space value chache rebuild when workspace of mass are changed. More...
 
void cacheYSpaceValues (const HistogramData::Points &tseconds, const Algorithms::DetectorParams &detpar, const ResolutionParams &respar)
 Pre-calculate the Y-space values with specified resolution parameters. More...
 
void disableLogging ()
 Turn off logger. 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< IFunctionclone () 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...
 
IFunctionoperator= (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 ParameterTiegetTie (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 IConstraintgetConstraint (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 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< IFunctiongetFunction (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 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...
 
FunctionHandlergetHandler () 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 addFSETerm (std::vector< double > &lhs) const
 Add FSE term based on current parameter setting. More...
 
void addMassProfile (double *result, const unsigned int npoly) const
 Compute the contribution to mass profile nth Hermite polynomial coefficient. More...
 
void cacheYSpaceValues (const HistogramData::Points &tseconds, const Algorithms::DetectorParams &detpar) override
 Pre-calculate the Y-space values. More...
 
void convoluteVoigt (double *result, const size_t nData, const std::vector< double > &profile) const
 Convolute with resolution. More...
 
void declareAttributes () override
 Declare non-parameter attributes. More...
 
void declareGramCharlierParameters ()
 Declare the Gram-Charlier (Hermite) coefficients. More...
 
void declareParameters () override
 Declare the function parameters. More...
 
size_t fillConstraintMatrix (Kernel::DblMatrix &cmatrix, const size_t start, const HistogramData::HistogramE &errors) const override
 Fill in the columns of the matrix for this mass. More...
 
std::vector< size_t > intensityParameterIndices () const override
 Returns the indices of the intensity parameters. More...
 
void massProfile (double *result, const size_t nData) const override
 Compute the sum for all Hermite polynomial coefficents. More...
 
std::string name () const override
 A string identifier for this function. More...
 
void setAttribute (const std::string &name, const Attribute &value) override
 Set an attribute value (and possibly cache its value) More...
 
void setHermiteCoefficients (const std::string &coeffs)
 Parse the active hermite polynomial coefficents. More...
 
void setMatrixWorkspace (std::shared_ptr< const API::MatrixWorkspace > workspace, size_t wi, double startX, double endX) override
 Called by the framework when a workspace is set. More...
 

Private Attributes

std::vector< short > m_hermite
 The active hermite coefficents. More...
 
std::vector< double > m_qfine
 Interpolated Q values over a finer Y range. More...
 
bool m_userFixedFSE
 Flag to hold whether the FSE parameter is fixed by the user. More...
 
std::vector< std::vector< double > > m_voigt
 Holds the value of the Voigt function for each coarse y-space point as this is an expensive calculation. More...
 
std::vector< double > m_voigtProfile
 Holds the result Voigt multiplied by the profile function for the extended Y space range. More...
 
std::vector< double > m_yfine
 Y values over a finer range. 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::CurveFitting::Functions::ComptonProfile
void declareParameters () override
 Declare parameters that will never participate in the fit. More...
 
const std::vector< double > & e0 () const
 Access e0 values. More...
 
double mass () const
 Access the mass. More...
 
const std::vector< double > & modQ () const
 Access Q values cache. More...
 
void voigtApprox (std::vector< double > &voigt, const std::vector< double > &yspace, const double lorentzPos, const double lorentzAmp, const double lorentzWidth, const double gaussWidth) const
 Compute Voigt function. More...
 
void voigtApproxDiff (std::vector< double > &voigtDiff, const std::vector< double > &yspace, const double lorentzPos, const double lorentzAmp, const double lorentzWidth, const double gaussWidth) const
 Compute Voigt function interpolated around the given values. More...
 
const std::vector< double > & ySpace () const
 Access y-values cache. More...
 
- 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
virtual void init ()
 Function initialization. Declare function parameters in this method. More...
 
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...
 
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::CurveFitting::Functions::ComptonProfile
double m_endX
 
Kernel::Logger m_log
 Logger. More...
 
std::shared_ptr< VesuvioResolutionm_resolutionFunction
 Vesuvio resolution function. More...
 
double m_startX
 
std::shared_ptr< API::IPeakFunctionm_voigt
 Voigt function. More...
 
std::shared_ptr< const API::MatrixWorkspacem_workspace
 Current workspace. More...
 
size_t m_wsIndex
 Current workspace index, required to access instrument parameters. More...
 
std::vector< double > m_yspace
 
std::vector< double > m_modQ
 Q-values. More...
 
std::vector< double > m_e0
 Incident energies. More...
 
double m_mass
 Atomic mass. More...
 
- 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< FunctionHandlerm_handler
 Pointer to a function handler. More...
 
std::shared_ptr< Kernel::ProgressBasem_progReporter
 Pointer to the progress handler. More...
 
- Static Protected Attributes inherited from Mantid::API::IFunction1D
static Kernel::Logger g_log
 Logger instance. More...
 

Detailed Description

Implements a function to calculate the Compton profile of a nucleus using a Gram-Charlier approximation convoluted with an instrument resolution function that is approximated by a Voigt function.

Definition at line 22 of file GramCharlierComptonProfile.h.

Constructor & Destructor Documentation

◆ GramCharlierComptonProfile()

Mantid::CurveFitting::Functions::GramCharlierComptonProfile::GramCharlierComptonProfile ( )

Default constructor required by factory.

Definition at line 74 of file GramCharlierComptonProfile.cpp.

Member Function Documentation

◆ addFSETerm()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::addFSETerm ( std::vector< double > &  lhs) const
private

Add FSE term based on current parameter setting.

Adds the FSE term to the result in the vector given.

Parameters
lhsExisting vector that the result should be added to

Definition at line 288 of file GramCharlierComptonProfile.cpp.

References Mantid::API::ParamFunction::getParameter(), m_qfine, m_userFixedFSE, m_yfine, Mantid::CurveFitting::Functions::WIDTH_PARAM, and Mantid::Geometry::y.

Referenced by fillConstraintMatrix(), and massProfile().

◆ addMassProfile()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::addMassProfile ( double *  result,
const unsigned int  npoly 
) const
private

Compute the contribution to mass profile nth Hermite polynomial coefficient.

Uses a Gram-Charlier series approximation for the mass and convolutes it with the Voigt instrument resolution function.

Also multiplies by the mass*e_i^0.1/q. Sums it with the given result

Parameters
resultAn pre-sized output array that should be filled with the results. Size is fixed at NFINE_Y
npolyAn integer denoting the polynomial to calculate

Definition at line 263 of file GramCharlierComptonProfile.cpp.

References Mantid::API::ParamFunction::getParameter(), m_yfine, Mantid::CurveFitting::Functions::WIDTH_PARAM, and Mantid::Geometry::y.

Referenced by fillConstraintMatrix(), and massProfile().

◆ cacheYSpaceValues()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::cacheYSpaceValues ( const HistogramData::Points &  tseconds,
const Algorithms::DetectorParams detpar 
)
overrideprivatevirtual

◆ convoluteVoigt()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::convoluteVoigt ( double *  result,
const size_t  nData,
const std::vector< double > &  profile 
) const
private

Convolute with resolution.

Convolute with resolution and multiply by the final ei^0.1*mass/q prefactor.

Parameters
resultOutput array that holds the result of the convolution
nDataThe length of the array
profileThe input mass profile

Definition at line 317 of file GramCharlierComptonProfile.cpp.

References Mantid::CurveFitting::Functions::ComptonProfile::e0(), m_voigt, m_voigtProfile, m_yfine, Mantid::CurveFitting::Functions::ComptonProfile::mass(), and Mantid::CurveFitting::Functions::ComptonProfile::modQ().

Referenced by fillConstraintMatrix(), and massProfile().

◆ declareAttributes()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::declareAttributes ( )
overrideprivatevirtual

Declare non-parameter attributes.

Reimplemented from Mantid::API::IFunction.

Definition at line 90 of file GramCharlierComptonProfile.cpp.

References Mantid::API::IFunction::declareAttribute(), and Mantid::API::IFunction::declareAttributes().

◆ declareGramCharlierParameters()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::declareGramCharlierParameters ( )
private

Declare the Gram-Charlier (Hermite) coefficients.

Currently the first mass is assumed to be fitted with the Gram-Charlier expansion.

The input string gives whether each even Hermite polnomial is active or not

Definition at line 137 of file GramCharlierComptonProfile.cpp.

References Mantid::API::ParamFunction::declareParameter(), and m_hermite.

Referenced by setHermiteCoefficients().

◆ declareParameters()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::declareParameters ( )
overrideprivatevirtual

◆ fillConstraintMatrix()

size_t Mantid::CurveFitting::Functions::GramCharlierComptonProfile::fillConstraintMatrix ( Kernel::DblMatrix cmatrix,
const size_t  start,
const HistogramData::HistogramE &  errors 
) const
overrideprivatevirtual

Fill in the columns of the matrix for this mass.

Fills in a column for each active hermite polynomial, starting at the given index.

Parameters
cmatrixInOut matrix whose columns should be set to the mass profile for each active hermite polynomial
startIndex of the column to start on
errorsData errors array
Returns
The number of columns filled

Implements Mantid::CurveFitting::Functions::ComptonProfile.

Definition at line 181 of file GramCharlierComptonProfile.cpp.

References addFSETerm(), addMassProfile(), convoluteVoigt(), m_hermite, m_userFixedFSE, Mantid::Kernel::Matrix< T >::setColumn(), and Mantid::CurveFitting::Functions::ComptonProfile::ySpace().

◆ intensityParameterIndices()

std::vector< size_t > Mantid::CurveFitting::Functions::GramCharlierComptonProfile::intensityParameterIndices ( ) const
overrideprivatevirtual

Returns the indices of the intensity parameters.

Implements Mantid::CurveFitting::Functions::ComptonProfile.

Definition at line 151 of file GramCharlierComptonProfile.cpp.

References Mantid::API::IFunction::isActive(), m_hermite, and Mantid::API::ParamFunction::parameterIndex().

◆ massProfile()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::massProfile ( double *  result,
const size_t  nData 
) const
overrideprivatevirtual

Compute the sum for all Hermite polynomial coefficents.

Uses a Gram-Charlier series approximation for the mass and convolutes it with the Voigt instrument resolution function.

Also multiplies by the mass*e_i^0.1/q

Parameters
resultAn pre-sized output array that should be filled with the results
nDataThe length of the array

Implements Mantid::CurveFitting::Functions::ComptonProfile.

Definition at line 234 of file GramCharlierComptonProfile.cpp.

References addFSETerm(), addMassProfile(), convoluteVoigt(), m_hermite, and UNUSED_ARG.

◆ name()

std::string Mantid::CurveFitting::Functions::GramCharlierComptonProfile::name ( ) const
overrideprivatevirtual

A string identifier for this function.

Returns
A string containing the name of the function

Implements Mantid::API::IFunction.

Definition at line 80 of file GramCharlierComptonProfile.cpp.

Referenced by setAttribute().

◆ setAttribute()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::setAttribute ( const std::string &  name,
const Attribute value 
)
overrideprivatevirtual

Set an attribute value (and possibly cache its value)

Parameters
nameThe name of the attribute
valueThe attribute's value

Reimplemented from Mantid::API::IFunction.

Definition at line 103 of file GramCharlierComptonProfile.cpp.

References name(), Mantid::API::IFunction::setAttribute(), setHermiteCoefficients(), and value.

◆ setHermiteCoefficients()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::setHermiteCoefficients ( const std::string &  coeffs)
private

Parse the active hermite polynomial coefficents.

Throws if the string is empty and contains something other than numbers.

Parameters
coeffsA string of space separated 1/0 values indicating which polynomial coefficients to include in the fitting

Definition at line 114 of file GramCharlierComptonProfile.cpp.

References declareGramCharlierParameters(), m_hermite, and value.

Referenced by setAttribute().

◆ setMatrixWorkspace()

void Mantid::CurveFitting::Functions::GramCharlierComptonProfile::setMatrixWorkspace ( std::shared_ptr< const API::MatrixWorkspace workspace,
size_t  wi,
double  startX,
double  endX 
)
overrideprivatevirtual

Called by the framework when a workspace is set.

Used to cache some values when the workspace has been set.

Parameters
workspaceA pointer to the workspace
wiA workspace index
startXStarting x-vaue (unused).
endXEnding x-vaue (unused).

Reimplemented from Mantid::CurveFitting::Functions::ComptonProfile.

Definition at line 341 of file GramCharlierComptonProfile.cpp.

References Mantid::CurveFitting::Functions::ComptonProfile::setMatrixWorkspace(), and workspace.

Member Data Documentation

◆ m_hermite

std::vector<short> Mantid::CurveFitting::Functions::GramCharlierComptonProfile::m_hermite
private

◆ m_qfine

std::vector<double> Mantid::CurveFitting::Functions::GramCharlierComptonProfile::m_qfine
private

Interpolated Q values over a finer Y range.

Definition at line 67 of file GramCharlierComptonProfile.h.

Referenced by addFSETerm(), and cacheYSpaceValues().

◆ m_userFixedFSE

bool Mantid::CurveFitting::Functions::GramCharlierComptonProfile::m_userFixedFSE
private

Flag to hold whether the FSE parameter is fixed by the user.

Definition at line 77 of file GramCharlierComptonProfile.h.

Referenced by addFSETerm(), cacheYSpaceValues(), and fillConstraintMatrix().

◆ m_voigt

std::vector<std::vector<double> > Mantid::CurveFitting::Functions::GramCharlierComptonProfile::m_voigt
private

Holds the value of the Voigt function for each coarse y-space point as this is an expensive calculation.

Definition at line 71 of file GramCharlierComptonProfile.h.

Referenced by cacheYSpaceValues(), and convoluteVoigt().

◆ m_voigtProfile

std::vector<double> Mantid::CurveFitting::Functions::GramCharlierComptonProfile::m_voigtProfile
mutableprivate

Holds the result Voigt multiplied by the profile function for the extended Y space range.

Definition at line 74 of file GramCharlierComptonProfile.h.

Referenced by cacheYSpaceValues(), and convoluteVoigt().

◆ m_yfine

std::vector<double> Mantid::CurveFitting::Functions::GramCharlierComptonProfile::m_yfine
private

Y values over a finer range.

Definition at line 65 of file GramCharlierComptonProfile.h.

Referenced by addFSETerm(), addMassProfile(), cacheYSpaceValues(), and convoluteVoigt().


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