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

LatticeDomainCreator. More...

#include <LatticeDomainCreator.h>

Inheritance diagram for Mantid::CurveFitting::LatticeDomainCreator:
Mantid::API::IDomainCreator

Public Member Functions

void createDomain (std::shared_ptr< API::FunctionDomain > &domain, std::shared_ptr< API::FunctionValues > &values, size_t i0) override
 Creates a LatticeDomain from the assigned Workspace. More...
 
API::Workspace_sptr createOutputWorkspace (const std::string &baseName, API::IFunction_sptr function, std::shared_ptr< API::FunctionDomain > domain, std::shared_ptr< API::FunctionValues > values, const std::string &outputWorkspacePropertyName) override
 Creates an output workspace from calculated and observed values. More...
 
size_t getDomainSize () const override
 Return the size of the domain to be created. More...
 
 LatticeDomainCreator (Kernel::IPropertyManager *manager, const std::string &workspacePropertyName, DomainType domainType=Simple)
 Constructor. More...
 
- Public Member Functions inherited from Mantid::API::IDomainCreator
virtual void createDomain (std::shared_ptr< API::FunctionDomain > &domain, std::shared_ptr< API::FunctionValues > &values, size_t i0=0)=0
 Create a domain and values from the input workspace. More...
 
virtual std::shared_ptr< API::WorkspacecreateOutputWorkspace (const std::string &baseName, API::IFunction_sptr function, std::shared_ptr< API::FunctionDomain > domain, std::shared_ptr< API::FunctionValues > values, const std::string &outputWorkspacePropertyName="OutputWorkspace")
 Create an output workspace filled with data simulated with the fitting function. More...
 
virtual void declareDatasetProperties (const std::string &suffix="", bool addProp=true)
 Declare properties that specify the dataset within the workspace to fit to. More...
 
virtual size_t getDomainSize () const =0
 Return the size of the domain to be created. More...
 
 IDomainCreator (Kernel::IPropertyManager *manager, std::vector< std::string > workspacePropertyNames, DomainType domainType=Simple)
 Constrcutor. More...
 
void ignoreInvalidData (bool yes)
 Set to ignore invalid data. More...
 
virtual void initFunction (API::IFunction_sptr function)
 Initialize the function. More...
 
virtual void initialize (Kernel::IPropertyManager *, const std::string &, DomainType)
 Initialize. More...
 
void separateCompositeMembersInOutput (const bool value, const bool conv=false)
 Toggle output of either just composite or composite + members. More...
 
virtual ~IDomainCreator ()=default
 Virtual destructor. More...
 

Protected Member Functions

void createDomainFromPeaksWorkspace (const API::IPeaksWorkspace_sptr &workspace, std::shared_ptr< API::FunctionDomain > &domain, std::shared_ptr< API::FunctionValues > &values, size_t i0)
 Creates a LatticeDomain from an IPeaksWorkspace, using HKL and d-values. More...
 
void createDomainFromPeakTable (const API::ITableWorkspace_sptr &workspace, std::shared_ptr< API::FunctionDomain > &domain, std::shared_ptr< API::FunctionValues > &values, size_t i0)
 Creates a domain from an ITableWorkspace. More...
 
void setWorkspaceFromPropertyManager ()
 Get the workspace with peak data from the property manager. More...
 
- Protected Member Functions inherited from Mantid::API::IDomainCreator
void declareProperty (Kernel::Property *prop, const std::string &doc)
 Declare a property to the algorithm. More...
 

Protected Attributes

API::Workspace_sptr m_workspace
 
std::string m_workspacePropertyName
 
- Protected Attributes inherited from Mantid::API::IDomainCreator
bool m_convolutionCompositeMembers
 Perform convolution of output composite components. More...
 
DomainType m_domainType
 Domain type. More...
 
bool m_ignoreInvalidData
 Flag to ignore nans, infinities and zero errors. More...
 
Kernel::IPropertyManagerm_manager
 Pointer to a property manager. More...
 
bool m_outputCompositeMembers
 Output separate composite function values. More...
 
std::vector< std::string > m_workspacePropertyNames
 Property names for workspaces to get the data from. More...
 

Additional Inherited Members

- Public Types inherited from Mantid::API::IDomainCreator
enum  DomainType { Simple = 0 , Sequential , Parallel }
 Type of domain to create. More...
 

Detailed Description

LatticeDomainCreator.

Domain creator for LatticeDomain, which processes IPeaksWorkspace or an ITableWorkspace with certain columns (HKL, d).

Author
Michael Wedel, Paul Scherrer Institut - SINQ
Date
15/04/2015

Definition at line 27 of file LatticeDomainCreator.h.

Constructor & Destructor Documentation

◆ LatticeDomainCreator()

Mantid::CurveFitting::LatticeDomainCreator::LatticeDomainCreator ( Kernel::IPropertyManager manager,
const std::string &  workspacePropertyName,
DomainType  domainType = Simple 
)

Constructor.

Definition at line 28 of file LatticeDomainCreator.cpp.

Member Function Documentation

◆ createDomain()

void Mantid::CurveFitting::LatticeDomainCreator::createDomain ( std::shared_ptr< API::FunctionDomain > &  domain,
std::shared_ptr< API::FunctionValues > &  values,
size_t  i0 
)
overridevirtual

Creates a LatticeDomain from the assigned Workspace.

This function uses the internally stored workspace which can either be an IPeaksWorkspace or a TableWorkspace with HKL and d-values to create a LatticeDomain. It also assigns fit data to the supplied value object. If null-pointers are passed, new objects are allocated.

Reflections where HKL is (000) are ignored, so the final domain size may be smaller than the number of rows in the input workspace.

Parameters
domain:: Pointer to outgoing FunctionDomain instance.
values:: Pointer to outgoing FunctionValues object.
i0:: Size offset for values object if it already contains data.

Implements Mantid::API::IDomainCreator.

Definition at line 48 of file LatticeDomainCreator.cpp.

References createDomainFromPeaksWorkspace(), createDomainFromPeakTable(), m_workspace, and setWorkspaceFromPropertyManager().

◆ createDomainFromPeaksWorkspace()

void Mantid::CurveFitting::LatticeDomainCreator::createDomainFromPeaksWorkspace ( const API::IPeaksWorkspace_sptr workspace,
std::shared_ptr< API::FunctionDomain > &  domain,
std::shared_ptr< API::FunctionValues > &  values,
size_t  i0 
)
protected

Creates a LatticeDomain from an IPeaksWorkspace, using HKL and d-values.

Definition at line 151 of file LatticeDomainCreator.cpp.

References Mantid::Geometry::IPeak::getDSpacing(), Mantid::Geometry::IPeak::getHKL(), and workspace.

Referenced by createDomain().

◆ createDomainFromPeakTable()

void Mantid::CurveFitting::LatticeDomainCreator::createDomainFromPeakTable ( const API::ITableWorkspace_sptr workspace,
std::shared_ptr< API::FunctionDomain > &  domain,
std::shared_ptr< API::FunctionValues > &  values,
size_t  i0 
)
protected

Creates a domain from an ITableWorkspace.

This method creates a LatticeDomain from a table workspace that contains two columns, HKL and d. HKL can either be a V3D-column or a string column, containing three integers separated by space, comma, semi-colon and optionally surrounded by []. The d-column can be double or a string that can be parsed as a double number.

Parameters
workspace:: ITableWorkspace with format specified above.
domain:: Pointer to outgoing FunctionDomain instance.
values:: Pointer to outgoing FunctionValues object.
i0:: Size offset for values object if it already contains data.

Definition at line 210 of file LatticeDomainCreator.cpp.

References Mantid::Geometry::d, and workspace.

Referenced by createDomain().

◆ createOutputWorkspace()

Workspace_sptr Mantid::CurveFitting::LatticeDomainCreator::createOutputWorkspace ( const std::string &  baseName,
API::IFunction_sptr  function,
std::shared_ptr< API::FunctionDomain domain,
std::shared_ptr< API::FunctionValues values,
const std::string &  outputWorkspacePropertyName 
)
overridevirtual

Creates an output workspace from calculated and observed values.

This method creates a table workspace for an ILatticeFunction, containing observed and calculated d-values for each HKL, as well as the difference between those two values.

Parameters
baseName:: Basename for output workspace.
function:: An ILatticeFunction
domain:: Pointer to LatticeDomain instance.
values:: Pointer to FunctionValues instance.
outputWorkspacePropertyName:: Name of output workspace property.
Returns
TableWorkspace with calculated and observed d-values.

Reimplemented from Mantid::API::IDomainCreator.

Definition at line 77 of file LatticeDomainCreator.cpp.

References Mantid::API::IDomainCreator::declareProperty(), Mantid::Kernel::SingletonHolder< T >::Instance(), Mantid::API::IDomainCreator::m_manager, Mantid::Kernel::Direction::Output, Mantid::Kernel::IPropertyManager::setProperty(), and Mantid::Kernel::IPropertyManager::setPropertyValue().

◆ getDomainSize()

size_t Mantid::CurveFitting::LatticeDomainCreator::getDomainSize ( ) const
overridevirtual

Return the size of the domain to be created.

Implements Mantid::API::IDomainCreator.

Definition at line 123 of file LatticeDomainCreator.cpp.

References m_workspace.

◆ setWorkspaceFromPropertyManager()

void Mantid::CurveFitting::LatticeDomainCreator::setWorkspaceFromPropertyManager ( )
protected

Get the workspace with peak data from the property manager.

Definition at line 138 of file LatticeDomainCreator.cpp.

References Mantid::Kernel::IPropertyManager::getProperty(), Mantid::API::IDomainCreator::m_manager, m_workspace, and m_workspacePropertyName.

Referenced by createDomain().

Member Data Documentation

◆ m_workspace

API::Workspace_sptr Mantid::CurveFitting::LatticeDomainCreator::m_workspace
protected

◆ m_workspacePropertyName

std::string Mantid::CurveFitting::LatticeDomainCreator::m_workspacePropertyName
protected

Definition at line 52 of file LatticeDomainCreator.h.

Referenced by setWorkspaceFromPropertyManager().


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