Mantid
|
FitPowderDiffPeaks : Fit peaks in powder diffraction pattern. More...
#include <FitPowderDiffPeaks.h>
Public Member Functions | |
const std::string | category () const override |
Algorithm's category for identification overriding a virtual method. More... | |
FitPowderDiffPeaks () | |
Constructor. More... | |
const std::string | name () const override |
Algorithm's name for identification overriding a virtual method. More... | |
const std::vector< std::string > | seeAlso () const override |
Function to return all of the seeAlso (these are not validated) algorithms related to this algorithm.A default implementation is provided. More... | |
const std::string | summary () const override |
Summary of algorithms purpose. More... | |
int | version () const override |
Algorithm's version for identification overriding a virtual method. More... | |
Public Member Functions inherited from Mantid::API::Algorithm | |
Algorithm () | |
Constructor. More... | |
Algorithm (const Algorithm &)=delete | |
Algorithm & | operator= (const Algorithm &)=delete |
~Algorithm () override | |
Virtual destructor. More... | |
void | initialize () override |
Initialization method invoked by the framework. More... | |
bool | execute () override final |
The actions to be performed by the algorithm on a dataset. More... | |
void | addTimer (const std::string &name, const Kernel::time_point_ns &begin, const Kernel::time_point_ns &end) |
void | executeAsChildAlg () override |
Execute as a Child Algorithm. More... | |
std::map< std::string, std::string > | validateInputs () override |
Perform validation of ALL the input properties of the algorithm. More... | |
ExecutionState | executionState () const override |
Gets the current execution state. More... | |
ResultState | resultState () const override |
Gets the current result State. More... | |
bool | isInitialized () const override |
Has the Algorithm already been initialized. More... | |
bool | isExecuted () const override |
Has the Algorithm already been executed successfully. More... | |
bool | isRunning () const override |
True if the algorithm is running. More... | |
bool | isReadyForGarbageCollection () const override |
True if the algorithm is ready for garbage collection. More... | |
bool | isChild () const override |
To query whether algorithm is a child. More... | |
void | setChild (const bool isChild) override |
To set whether algorithm is a child. More... | |
void | enableHistoryRecordingForChild (const bool on) override |
Change the state of the history recording flag. More... | |
bool | isRecordingHistoryForChild () |
void | setAlwaysStoreInADS (const bool doStore) override |
Do we ALWAYS store in the AnalysisDataService? This is set to true for python algorithms' child algorithms. More... | |
bool | getAlwaysStoreInADS () const override |
Returns true if we always store in the AnalysisDataService. More... | |
void | setRethrows (const bool rethrow) override |
Set whether the algorithm will rethrow exceptions. More... | |
Poco::ActiveResult< bool > | executeAsync () override |
Asynchronous execution. More... | |
void | addObserver (const Poco::AbstractObserver &observer) const override |
Add an observer for a notification. More... | |
void | removeObserver (const Poco::AbstractObserver &observer) const override |
Remove an observer. More... | |
void | cancel () override |
Raises the cancel flag. More... | |
bool | getCancel () const |
Returns the cancellation state. More... | |
Kernel::Logger & | getLogger () const |
Returns a reference to the logger. More... | |
void | setLogging (const bool value) override |
Logging can be disabled by passing a value of false. More... | |
bool | isLogging () const override |
returns the status of logging, True = enabled More... | |
void | setLoggingOffset (const int value) override |
gets the logging priority offset More... | |
int | getLoggingOffset () const override |
returns the logging priority offset More... | |
void | setAlgStartupLogging (const bool enabled) override |
disable Logging of start and end messages More... | |
bool | getAlgStartupLogging () const override |
get the state of Logging of start and end messages More... | |
void | setChildStartProgress (const double startProgress) const override |
setting the child start progress More... | |
void | setChildEndProgress (const double endProgress) const override |
setting the child end progress More... | |
std::string | toString () const override |
Serialize an object to a string. More... | |
::Json::Value | toJson () const override |
Serialize an object to a json object. More... | |
virtual std::shared_ptr< Algorithm > | createChildAlgorithm (const std::string &name, const double startProgress=-1., const double endProgress=-1., const bool enableLogging=true, const int &version=-1) |
Create a Child Algorithm. More... | |
void | setupAsChildAlgorithm (const Algorithm_sptr &algorithm, const double startProgress=-1., const double endProgress=-1., const bool enableLogging=true) |
Setup algorithm as child algorithm. More... | |
void | trackAlgorithmHistory (std::shared_ptr< AlgorithmHistory > parentHist) |
set whether we wish to track the child algorithm's history and pass it the parent object to fill. More... | |
void | findWorkspaces (WorkspaceVector &workspaces, unsigned int direction, bool checkADS=false) const |
Populate lists of the workspace properties for a given direction (InOut workspaces are included in both input/output) More... | |
virtual bool | checkGroups () |
Check the input workspace properties for groups. More... | |
virtual bool | processGroups () |
Process WorkspaceGroup inputs. More... | |
void | copyNonWorkspaceProperties (IAlgorithm *alg, int periodNum) |
Copy all the non-workspace properties from this to alg. More... | |
const Parallel::Communicator & | communicator () const |
Returns a const reference to the (MPI) communicator of the algorithm. More... | |
void | setCommunicator (const Parallel::Communicator &communicator) |
Sets the (MPI) communicator of the algorithm. More... | |
void | declareProperty (std::unique_ptr< Kernel::Property > p, const std::string &doc="") override |
Add a property to the list of managed properties. More... | |
void | declareOrReplaceProperty (std::unique_ptr< Kernel::Property > p, const std::string &doc="") override |
Add or replace property in the list of managed properties. More... | |
void | resetProperties () override |
Reset property values back to initial values (blank or default values) More... | |
void | setProperties (const std::string &propertiesJson, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) override |
Set the ordered list of properties by one string of values, separated by semicolons. More... | |
void | setProperties (const ::Json::Value &jsonValue, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) override |
Sets all the declared properties from a json object. More... | |
void | setPropertiesWithString (const std::string &propertiesString, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >()) override |
Sets all the declared properties from a string. More... | |
void | setPropertyValue (const std::string &name, const std::string &value) override |
Set the value of a property by string N.B. More... | |
void | setPropertyValueFromJson (const std::string &name, const Json::Value &value) override |
Set the value of a property by Json::Value object. More... | |
void | setPropertyOrdinal (const int &index, const std::string &value) override |
Set the value of a property by an index N.B. More... | |
virtual void | copyPropertiesFrom (const Algorithm &alg) |
Make m_properties point to the same PropertyManager as alg.m_properties. More... | |
bool | existsProperty (const std::string &name) const override |
Checks whether the named property is already in the list of managed property. More... | |
bool | validateProperties () const override |
Validates all the properties in the collection. More... | |
size_t | propertyCount () const override |
Count the number of properties under management. More... | |
std::string | getPropertyValue (const std::string &name) const override |
Get the value of a property as a string. More... | |
const std::vector< Kernel::Property * > & | getProperties () const override |
Get the list of managed properties. More... | |
std::vector< std::string > | getDeclaredPropertyNames () const noexcept override |
Return the list of declared property names. More... | |
TypedValue | getProperty (const std::string &name) const override |
Get the value of a property. More... | |
std::string | asString (bool withDefaultValues=false) const override |
Return the property manager serialized as a string. More... | |
::Json::Value | asJson (bool withDefaultValues=false) const override |
Return the property manager serialized as a json object. More... | |
bool | isDefault (const std::string &name) const |
void | removeProperty (const std::string &name, const bool delproperty=true) override |
Removes the property from management. More... | |
std::unique_ptr< Kernel::Property > | takeProperty (const size_t index) override |
Removes the property from management and returns a pointer to it. More... | |
void | clear () override |
Clears all properties under management. More... | |
void | afterPropertySet (const std::string &) override |
Override this method to perform a custom action right after a property was set. More... | |
void | filterByTime (const Types::Core::DateAndTime &, const Types::Core::DateAndTime &) override |
void | splitByTime (std::vector< Kernel::SplittingInterval > &, std::vector< Kernel::PropertyManager * >) const override |
void | filterByProperty (const Kernel::TimeSeriesProperty< bool > &, const std::vector< std::string > &) override |
Kernel::Property * | getPointerToProperty (const std::string &name) const override |
Get a property by name. More... | |
Kernel::Property * | getPointerToPropertyOrdinal (const int &index) const override |
Get a property by an index. More... | |
virtual void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
Function to declare properties (i.e. store them) More... | |
template<typename T > | |
void | declareProperty (const std::string &name, T value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc="", const unsigned int direction=Direction::Input) |
Add a property of the template type to the list of managed properties. More... | |
template<typename T > | |
void | declareProperty (const std::string &name, T value, const std::string &doc, const unsigned int direction=Direction::Input) |
Add a property to the list of managed properties with no validator. More... | |
template<typename T > | |
void | declareProperty (const std::string &name, T value, const unsigned int direction) |
Add a property of the template type to the list of managed properties. More... | |
void | declareProperty (const std::string &name, const char *value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc=std::string(), const unsigned int direction=Direction::Input) |
Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More... | |
void | declareProperty (const std::string &name, const char *value, const std::string &doc, IValidator_sptr validator=std::make_shared< NullValidator >(), const unsigned int direction=Direction::Input) |
Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More... | |
void | declareProperty (const std::string &name, const char *value, const unsigned int direction) |
Add a property of string type to the list of managed properties. More... | |
const std::vector< std::string > | categories () const override |
Function to return all of the categories that contain this algorithm. More... | |
const std::string | categorySeparator () const override |
Function to return the separator token for the category string. More... | |
const std::string | alias () const override |
function to return any aliases to the algorithm; A default implementation is provided More... | |
const std::string | aliasDeprecated () const override |
Expiration date (in ISO8601 format) for the algorithm aliases; default implementation for no expiration date. More... | |
const std::string | helpURL () const override |
function to return URL for algorithm documentation; A default implementation is provided. More... | |
template<typename T , typename = typename std::enable_if<std::is_convertible<T *, MatrixWorkspace *>::value>::type> | |
std::tuple< std::shared_ptr< T >, Indexing::SpectrumIndexSet > | getWorkspaceAndIndices (const std::string &name) const |
template<typename T1 , typename T2 , typename = typename std::enable_if<std::is_convertible<T1 *, MatrixWorkspace *>::value>::type, typename = typename std::enable_if<std::is_convertible<T2 *, std::string *>::value || std::is_convertible<T2 *, std::vector<int64_t> *>::value>::type> | |
void | setWorkspaceInputProperties (const std::string &name, const std::shared_ptr< T1 > &wksp, IndexType type, const T2 &list) |
template<typename T1 , typename T2 , typename = typename std::enable_if<std::is_convertible<T1 *, MatrixWorkspace *>::value>::type, typename = typename std::enable_if<std::is_convertible<T2 *, std::string *>::value || std::is_convertible<T2 *, std::vector<int64_t> *>::value>::type> | |
void | setWorkspaceInputProperties (const std::string &name, const std::string &wsName, IndexType type, const T2 &list) |
const std::string | workspaceMethodName () const override |
const std::vector< std::string > | workspaceMethodOn () const override |
const std::string | workspaceMethodInputProperty () const override |
AlgorithmID | getAlgorithmID () const override |
Algorithm ID. More... | |
virtual void | addObserver (const Poco::AbstractObserver &observer) const =0 |
Add an observer for a notification. More... | |
virtual const std::string | alias () const =0 |
function to return any aliases of the algorithm. More... | |
virtual const std::string | aliasDeprecated () const =0 |
Expiration date (in ISO8601 format) for the algorithm aliases. Empty if no expiration date. More... | |
virtual void | cancel ()=0 |
Raises the cancel flag. More... | |
virtual const std::vector< std::string > | categories () const =0 |
Function to return all of the categories that contain this algorithm. More... | |
virtual const std::string | category () const =0 |
function to return a category of the algorithm. More... | |
virtual const std::string | categorySeparator () const =0 |
Function to return the separator token for the category string. More... | |
virtual void | enableHistoryRecordingForChild (const bool on)=0 |
If true history will be recorded for a child. More... | |
virtual bool | execute ()=0 |
System execution. More... | |
virtual void | executeAsChildAlg ()=0 |
Execute as a Child Algorithm, with try/catch. More... | |
virtual Poco::ActiveResult< bool > | executeAsync ()=0 |
Asynchronous execution of the algorithm. More... | |
virtual ExecutionState | executionState () const =0 |
Gets the current execution state. More... | |
virtual AlgorithmID | getAlgorithmID () const =0 |
Algorithm ID. More... | |
virtual bool | getAlgStartupLogging () const =0 |
get the state of Logging of start and end messages More... | |
virtual bool | getAlwaysStoreInADS () const =0 |
To query whether the output is stored in the analysis data service. More... | |
virtual int | getLoggingOffset () const =0 |
returns the logging priority offset More... | |
virtual const std::string | helpURL () const =0 |
function to return an optional URL for documentation. More... | |
virtual void | initialize ()=0 |
Initialization method invoked by the framework. More... | |
virtual bool | isChild () const =0 |
To query whether algorithm is a child. Default to false. More... | |
virtual bool | isExecuted () const =0 |
Check whether the algorithm has been executed sucessfully. More... | |
virtual bool | isInitialized () const =0 |
Check whether the algorithm is initialized properly. More... | |
virtual bool | isLogging () const =0 |
returns the status of logging, True = enabled More... | |
virtual bool | isReadyForGarbageCollection () const =0 |
True if the algorithm is ready for garbage collection. More... | |
virtual bool | isRunning () const =0 |
True if the algorithm is running. More... | |
virtual const std::string | name () const =0 |
function to return a name of the algorithm, must be overridden in all algorithms More... | |
virtual void | removeObserver (const Poco::AbstractObserver &observer) const =0 |
Remove an observer. More... | |
virtual ResultState | resultState () const =0 |
Gets the currnet result State. More... | |
virtual const std::vector< std::string > | seeAlso () const =0 |
Function to return all of the seeAlso algorithms related to this algorithm. More... | |
virtual void | setAlgStartupLogging (const bool enabled)=0 |
disable Logging of start and end messages More... | |
virtual void | setAlwaysStoreInADS (const bool doStore)=0 |
Set whether we always store the output in the analysis data service. More... | |
virtual void | setChild (const bool isChild)=0 |
To set whether algorithm is a child. More... | |
virtual void | setChildEndProgress (const double endProgress) const =0 |
setting the child end progress More... | |
virtual void | setChildStartProgress (const double startProgress) const =0 |
setting the child start progress More... | |
virtual void | setLogging (const bool value)=0 |
Logging can be disabled by passing a value of false. More... | |
virtual void | setLoggingOffset (const int value)=0 |
gets the logging priority offset More... | |
virtual void | setRethrows (const bool rethrow)=0 |
To query whether an algorithm should rethrow exceptions when executing. More... | |
virtual const std::string | summary () const =0 |
function returns a summary message that will be displayed in the default GUI, and in the help. More... | |
virtual ::Json::Value | toJson () const =0 |
Serialize an algorithm as Json. More... | |
virtual std::string | toString () const =0 |
Serialize an algorithm. More... | |
virtual std::map< std::string, std::string > | validateInputs ()=0 |
Method checking errors on ALL the inputs, before execution. More... | |
virtual int | version () const =0 |
function to return a version of the algorithm, must be overridden in all algorithms More... | |
Algorithms As Methods | |
Public Member Functions inherited from Mantid::Kernel::IPropertyManager | |
virtual ::Json::Value | asJson (bool withDefaultValues=false) const =0 |
Return the property manager serialized as a json object. More... | |
virtual std::string | asString (bool withDefaultValues=false) const =0 |
Return the property manager serialized as a string. More... | |
virtual void | declareOrReplaceProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
Function to declare properties (i.e. store them) More... | |
void | declareProperty (const std::string &name, const char *value, const std::string &doc, IValidator_sptr validator=std::make_shared< NullValidator >(), const unsigned int direction=Direction::Input) |
Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More... | |
void | declareProperty (const std::string &name, const char *value, const unsigned int direction) |
Add a property of string type to the list of managed properties. More... | |
void | declareProperty (const std::string &name, const char *value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc=std::string(), const unsigned int direction=Direction::Input) |
Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More... | |
template<typename T > | |
void | declareProperty (const std::string &name, T value, const std::string &doc, const unsigned int direction=Direction::Input) |
Add a property to the list of managed properties with no validator. More... | |
template<typename T > | |
void | declareProperty (const std::string &name, T value, const unsigned int direction) |
Add a property of the template type to the list of managed properties. More... | |
template<typename T > | |
void | declareProperty (const std::string &name, T value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc="", const unsigned int direction=Direction::Input) |
Add a property of the template type to the list of managed properties. More... | |
virtual void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
Function to declare properties (i.e. store them) More... | |
virtual bool | existsProperty (const std::string &name) const =0 |
Checks whether the named property is already in the list of managed property. More... | |
virtual void | filterByProperty (const TimeSeriesProperty< bool > &, const std::vector< std::string > &)=0 |
virtual void | filterByTime (const Types::Core::DateAndTime &, const Types::Core::DateAndTime &)=0 |
virtual std::vector< std::string > | getDeclaredPropertyNames () const noexcept=0 |
Get the list of managed property names. More... | |
virtual Property * | getPointerToProperty (const std::string &name) const =0 |
Get a pointer to property by name. More... | |
virtual const std::vector< Property * > & | getProperties () const =0 |
Get the list of managed properties. More... | |
std::vector< Property * > | getPropertiesInGroup (const std::string &group) const |
Get the list of managed properties in a given group. More... | |
virtual TypedValue | getProperty (const std::string &name) const =0 |
Get the value of a property. More... | |
virtual std::string | getPropertyValue (const std::string &name) const =0 |
Get the value of a property as a string. More... | |
virtual size_t | propertyCount () const =0 |
Returns the number of properties under management. More... | |
virtual void | removeProperty (const std::string &name, const bool delproperty=true)=0 |
Removes the property from management. More... | |
virtual void | resetProperties ()=0 |
virtual void | setProperties (const ::Json::Value &jsonValue, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)=0 |
Sets all the properties from a json object. More... | |
virtual void | setProperties (const std::string &propertiesJson, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)=0 |
Sets all properties from a string. More... | |
virtual void | setPropertiesWithString (const std::string &propertiesString, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >())=0 |
Sets all the declared properties from a string. More... | |
IPropertyManager * | setProperty (const std::string &name, const char *value) |
Specialised version of setProperty template method to handle const char *. More... | |
IPropertyManager * | setProperty (const std::string &name, const std::string &value) |
Specialised version of setProperty template method to handle std::string. More... | |
template<typename T > | |
IPropertyManager * | setProperty (const std::string &name, const T &value) |
Templated method to set the value of a PropertyWithValue. More... | |
template<typename T > | |
IPropertyManager * | setProperty (const std::string &name, std::unique_ptr< T > value) |
Templated method to set the value of a PropertyWithValue from a std::unique_ptr. More... | |
void | setPropertyGroup (const std::string &name, const std::string &group) |
Set the group for a given property. More... | |
virtual void | setPropertyOrdinal (const int &index, const std::string &value)=0 |
Set the value of a property by an index. More... | |
void | setPropertySettings (const std::string &name, std::unique_ptr< IPropertySettings > settings) |
virtual void | setPropertyValue (const std::string &name, const std::string &value)=0 |
Sets property value from a string. More... | |
virtual void | setPropertyValueFromJson (const std::string &name, const Json::Value &value)=0 |
Sets property value from a Json::Value. More... | |
virtual void | splitByTime (std::vector< SplittingInterval > &, std::vector< PropertyManager * >) const =0 |
virtual std::unique_ptr< Property > | takeProperty (const size_t index)=0 |
Removes the property from management and returns a pointer to it. More... | |
void | updatePropertyValues (const IPropertyManager &other) |
Update values of the existing properties. More... | |
virtual bool | validateProperties () const =0 |
Validates all the properties in the collection. More... | |
virtual | ~IPropertyManager ()=default |
Private Types | |
enum | { ROBUSTFIT , TRUSTINPUTFIT } |
Fit mode. More... | |
enum | { HKLCALCULATION , FROMBRAGGTABLE } |
Choice to generate peak profile paramter starting value. More... | |
Private Member Functions | |
DataObjects::Workspace2D_sptr | buildPartialWorkspace (const API::MatrixWorkspace_sptr &sourcews, size_t workspaceindex, double leftbound, double rightbound) |
Build partial workspace for fitting. More... | |
void | calculate1PeakGroup (std::vector< size_t > peakindexes, Functions::BackgroundFunction_sptr background) |
Calcualte the value of a single peak in a given range. More... | |
double | calculatePeakCentreTOF (int h, int k, int l) |
Calculate a Bragg peak's centre in TOF from its Miller indices. More... | |
void | calculatePeakFitBoundary (size_t ileftpeak, size_t irightpeak, double &peakleftboundary, double &peakrightboundary) |
Calculate the range to fit peak/peaks group. More... | |
void | cropWorkspace (double tofmin, double tofmax) |
Crop data workspace. More... | |
bool | doFit1PeakBackground (const DataObjects::Workspace2D_sptr &dataws, size_t wsindex, const Functions::BackToBackExponential_sptr &peak, const Functions::BackgroundFunction_sptr &backgroundfunction, double &chi2) |
Fit 1 peak and background. More... | |
bool | doFit1PeakSequential (const DataObjects::Workspace2D_sptr &dataws, size_t workspaceindex, const Functions::BackToBackExponential_sptr &peakfunction, std::vector< std::string > minimzernames, std::vector< size_t > maxiterations, const std::vector< double > &dampfactors, double &chi2) |
Fit 1 peak by using a sequential of minimizer. More... | |
bool | doFit1PeakSimple (const DataObjects::Workspace2D_sptr &dataws, size_t workspaceindex, const Functions::BackToBackExponential_sptr &peakfunction, const std::string &minimzername, size_t maxiteration, double &chi2) |
Fit 1 peak by 1 minimizer of 1 call of minimzer (simple version) More... | |
bool | doFitBackground (DataObjects::Workspace2D_sptr dataws, Functions::BackgroundFunction_sptr background, double leftpeakbound, double rightpeakbound) |
Fit background function by removing the peak properly. More... | |
bool | doFitGaussianPeak (const DataObjects::Workspace2D_sptr &dataws, size_t workspaceindex, double in_center, double leftfwhm, double rightfwhm, double ¢er, double &sigma, double &height) |
Fit background-removed peak by Gaussian. More... | |
bool | doFitMultiplePeaks (const DataObjects::Workspace2D_sptr &dataws, size_t wsindex, const API::CompositeFunction_sptr &peaksfunc, std::vector< Functions::BackToBackExponential_sptr > peakfuncs, std::vector< bool > &vecfitgood, std::vector< double > &vecchi2s) |
Fit multiple (overlapped) peaks. More... | |
bool | doFitNPeaksSimple (const DataObjects::Workspace2D_sptr &dataws, size_t wsindex, const API::CompositeFunction_sptr &peaksfunc, const std::vector< Functions::BackToBackExponential_sptr > &peakfuncs, const std::string &minimizername, size_t maxiteration, double &chi2) |
Fit N overlapped peaks in a simple manner. More... | |
std::pair< bool, double > | doFitPeak (const DataObjects::Workspace2D_sptr &dataws, const Functions::BackToBackExponential_sptr &peakfunction, double guessedfwhm) |
Fit peak with flexiblity in multiple steps Prerequisit: More... | |
std::pair< bool, double > | doFitPeak_Old (DataObjects::Workspace2D_sptr dataws, Functions::BackToBackExponential_sptr peak, double guessedfwhm, bool calchi2) |
Fit single peak without background. More... | |
bool | estimateFWHM (DataObjects::Workspace2D_sptr dataws, size_t wsindex, double tof_h, double &leftfwhm, double &rightfwhm) |
Estimate FWHM for the peak observed. More... | |
void | estimatePeakHeightsLeBail (const DataObjects::Workspace2D_sptr &dataws, size_t wsindex, std::vector< Functions::BackToBackExponential_sptr > peaks) |
Use Le Bail method to estimate and set the peak heights. More... | |
bool | estimateSinglePeakRange (Functions::BackToBackExponential_sptr peak, Functions::BackgroundFunction_sptr background, Functions::BackToBackExponential_sptr rightpeak, double fwhm, bool ismostright, size_t m_wsIndex, double &chi2) |
Build a partial workspace from source. More... | |
void | exec () override |
Implement abstract Algorithm methods. More... | |
bool | findMaxHeight (API::MatrixWorkspace_sptr dataws, size_t wsindex, double xmin, double xmax, double ¢er, double ¢erleftbound, double ¢errightbound, int &errordirection) |
Find max height (peak center) More... | |
bool | fitOverlappedPeaks (std::vector< Functions::BackToBackExponential_sptr > peaks, const Functions::BackgroundFunction_sptr &backgroundfunction, double gfwhm) |
Fit peaks with confidence in fwhm and etc. More... | |
bool | fitPeak (Functions::BackToBackExponential_sptr peak, Functions::BackgroundFunction_sptr background, double leftdev, double rightdev, size_t m_wsIndex, double &chi2) |
Fit a single peak. More... | |
void | fitPeaksGroup (std::vector< size_t > peakindexes) |
Fit peaks in the same group (i.e., single peak or overlapped peaks) More... | |
void | fitPeaksRobust () |
Fit peaks in robust algorithm. More... | |
void | fitPeaksWithGoodStartingValues () |
Fit peaks. More... | |
bool | fitSinglePeakConfident (const Functions::BackToBackExponential_sptr &peak, const Functions::BackgroundFunction_sptr &backgroundfunction, double leftbound, double rightbound, double &chi2, bool &annhilatedpeak) |
Fit peak with trustful peak parameters. More... | |
bool | fitSinglePeakConfidentX (Functions::BackToBackExponential_sptr peak) |
Fit peak with confidence of the centre. More... | |
bool | fitSinglePeakConfidentY (DataObjects::Workspace2D_sptr dataws, Functions::BackToBackExponential_sptr peak, double dampingfactor) |
Fit peak with confident parameters. More... | |
bool | fitSinglePeakRobust (const Functions::BackToBackExponential_sptr &peak, const Functions::BackgroundFunction_sptr &backgroundfunction, double peakleftbound, double peakrightbound, const std::map< std::string, double > &rightpeakparammap, double &finalchi2) |
Fit single peak in robust mode (no hint) More... | |
bool | fitSinglePeakSimulatedAnnealing (const Functions::BackToBackExponential_sptr &peak, const std::vector< std::string > ¶mtodomc) |
Fit signle peak by Monte Carlo/simulated annealing. More... | |
DataObjects::Workspace2D_sptr | genOutputFittedPatternWorkspace (std::vector< double > pattern, int workspaceindex) |
Create a Workspace2D for fitted peaks (pattern) More... | |
Functions::BackToBackExponential_sptr | genPeak (std::map< std::string, int > hklmap, std::map< std::string, double > parammap, std::map< std::string, std::string > bk2bk2braggmap, bool &good, std::vector< int > &hkl, double &d_h) |
Generate a peak. More... | |
DataObjects::Workspace2D_sptr | genPeakParameterDataWorkspace () |
Create data workspace for X0, A, B and S of peak with good fit. More... | |
std::pair< DataObjects::TableWorkspace_sptr, DataObjects::TableWorkspace_sptr > | genPeakParametersWorkspace () |
Generate output peak parameters workspace. More... | |
void | genPeaksFromTable (const DataObjects::TableWorkspace_sptr &peakparamws) |
Generate peaks from input table workspace. More... | |
bool | getHKLFromMap (std::map< std::string, int > intmap, std::vector< int > &hkl) |
Get (HKL) from a map; Return false if the information is incomplete. More... | |
double | getParameter (const std::string &parname) |
Get parameter value from m_instrumentParameters. More... | |
void | importInstrumentParameterFromTable (const DataObjects::TableWorkspace_sptr ¶meterWS) |
Import instrument parameters from (input) table workspace. More... | |
void | init () override |
Implement abstract Algorithm methods. More... | |
void | observePeakRange (const Functions::BackToBackExponential_sptr &thispeak, const Functions::BackToBackExponential_sptr &rightpeak, double refpeakshift, double &peakleftbound, double &peakrightbound) |
Observe peak range with hint from right peak's properties. More... | |
void | parseBraggPeakTable (const DataObjects::TableWorkspace_sptr &peakws, std::vector< std::map< std::string, double > > ¶mmaps, std::vector< std::map< std::string, int > > &hklmaps) |
Import Bragg peak table workspace. More... | |
std::string | parseFitParameterWorkspace (const API::ITableWorkspace_sptr ¶mws) |
Parse Fit() output parameter workspace. More... | |
std::string | parseFitResult (const API::IAlgorithm_sptr &fitalg, double &chi2, bool &fitsuccess) |
Parse the fitting result. More... | |
void | plotFunction (const API::IFunction_sptr &peakfunction, const Functions::BackgroundFunction_sptr &background, const API::FunctionDomain1DVector &domain) |
Plot a single peak to output vector. More... | |
void | processInputProperties () |
Process input properties. More... | |
void | restoreFunctionParameters (const API::IFunction_sptr &function, std::map< std::string, double > parammap) |
Restore the function's parameter values from a map. More... | |
void | setOverlappedPeaksConstraints (const std::vector< Functions::BackToBackExponential_sptr > &peaks) |
Set constraints on a group of overlapped peaks for fitting. More... | |
void | storeFunctionParameters (const API::IFunction_sptr &function, std::map< std::string, double > ¶mmaps) |
Store the function's parameter values to a map. More... | |
void | subtractBackground (DataObjects::Workspace2D_sptr dataws) |
Estimate background. More... | |
Private Attributes | |
std::vector< double > | m_chi2GoodFitPeaks |
bool | m_confidentInInstrumentParameters |
Flag to show whether input instrument parameters is trustful. More... | |
API::MatrixWorkspace_sptr | m_dataWS |
Data. More... | |
enum Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks:: { ... } | m_fitMode |
Fit mode. More... | |
bool | m_fitPeakBackgroundComposite |
Fit peak + background as the last step. More... | |
enum Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks:: { ... } | m_genPeakStartingValue |
Choice to generate peak profile paramter starting value. More... | |
std::vector< bool > | m_goodFit |
Peak fitting status. More... | |
std::vector< size_t > | m_indexGoodFitPeaks |
std::map< std::string, double > | m_instrumentParmaeters |
Map for function (instrument parameter) More... | |
std::vector< int > | m_minimumHKL |
Minimum HKL. More... | |
double | m_minPeakHeight |
Minimum peak height for peak to be refined. More... | |
int | m_numPeaksLowerToMin |
Number of peaks to fit lower to minimum HKL. More... | |
std::vector< double > | m_peakData |
Data for each individual peaks. (HKL)^2, vector index, function values. More... | |
std::vector< double > | m_peakFitChi2 |
Peak fitting information. More... | |
DataObjects::TableWorkspace_sptr | m_peakParamTable |
Bragg peak parameter. More... | |
DataObjects::TableWorkspace_sptr | m_profileTable |
Instrument profile parameter table workspace. More... | |
std::vector< int > | m_rightmostPeakHKL |
Right most peak HKL. More... | |
double | m_rightmostPeakLeftBound |
Right most peak's left boundary. More... | |
double | m_rightmostPeakRightBound |
Right most peak's right boundary. More... | |
double | m_tofMax |
double | m_tofMin |
TOF Min and TOF Max. More... | |
Geometry::UnitCell | m_unitCell |
Unit cell of powder crystal. More... | |
bool | m_useGivenTOFh |
Flag to use given Bragg peaks' centre in TOF. More... | |
std::vector< std::pair< double, std::pair< std::vector< int >, Functions::BackToBackExponential_sptr > > > | m_vecPeakFunctions |
Sorted vector for peaks. double = d_h, vector = (HKL), peak. More... | |
int | m_wsIndex |
TOF vector of data workspace to process with. More... | |
std::vector< std::string > | mPeakParameterNames |
Peak parmeter names. More... | |
Additional Inherited Members | |
Public Types inherited from Mantid::API::Algorithm | |
using | WorkspaceVector = std::vector< std::shared_ptr< Workspace > > |
Static Public Member Functions inherited from Mantid::API::Algorithm | |
static IAlgorithm_sptr | fromString (const std::string &input) |
De-serialize an object from a string. More... | |
static IAlgorithm_sptr | fromJson (const Json::Value &input) |
De-serialize an object from a Json. More... | |
static IAlgorithm_sptr | fromHistory (const AlgorithmHistory &history) |
Construct an object from a history entry. More... | |
Public Attributes inherited from Mantid::API::Algorithm | |
bool | calledByAlias = false |
Flag to indicate if the algorithm is called by its alias. More... | |
Protected Member Functions inherited from Mantid::API::Algorithm | |
void | exec (Parallel::ExecutionMode executionMode) |
Runs the algorithm with the specified execution mode. More... | |
virtual void | execDistributed () |
Runs the algorithm in distributed execution mode. More... | |
virtual void | execMasterOnly () |
Runs the algorithm in master-only execution mode. More... | |
virtual Parallel::ExecutionMode | getParallelExecutionMode (const std::map< std::string, Parallel::StorageMode > &storageModes) const |
Get correct execution mode based on input storage modes for an MPI run. More... | |
virtual const std::string | workspaceMethodOnTypes () const |
Returns a semi-colon separated list of workspace types to attach this algorithm. More... | |
void | cacheWorkspaceProperties () |
Go through the properties and cache the input/output workspace properties for later use. More... | |
void | cacheInputWorkspaceHistories () |
Cache the histories of any input workspaces so they can be copied over after algorithm completion. More... | |
void | setExecutionState (const ExecutionState state) |
Sets the current execution state. More... | |
void | setResultState (const ResultState state) |
Sets the result execution state. More... | |
void | store () |
Stores any output workspaces into the AnalysisDataService. More... | |
void | progress (double p, const std::string &msg="", double estimatedTime=0.0, int progressPrecision=0) |
Sends ProgressNotification. More... | |
void | interruption_point () |
This is called during long-running operations, and check if the algorithm has requested that it be cancelled. More... | |
Poco::NotificationCenter & | notificationCenter () const |
Return a reference to the algorithm's notification dispatcher. More... | |
void | handleChildProgressNotification (const Poco::AutoPtr< ProgressNotification > &pNf) |
Observation slot for child algorithm progress notification messages, these are scaled and then signalled for this algorithm. More... | |
const Poco::AbstractObserver & | progressObserver () const |
Return a reference to the algorithm's object that is reporting progress. More... | |
bool | isWorkspaceProperty (const Kernel::Property *const prop) const |
checks the property is a workspace property More... | |
bool | trackingHistory () |
get whether we are tracking the history for this algorithm, More... | |
virtual void | fillHistory () |
Copy workspace history for input workspaces to output workspaces and record the history for ths algorithm. More... | |
virtual void | setOtherProperties (IAlgorithm *alg, const std::string &propertyName, const std::string &propertyValue, int periodNum) |
Virtual method to set the non workspace properties for this algorithm. More... | |
template<typename T , const int AllowedIndexTypes = static_cast<int>(IndexType::WorkspaceIndex), typename... WSPropArgs, typename = typename std::enable_if<std::is_convertible<T *, MatrixWorkspace *>::value>::type> | |
void | declareWorkspaceInputProperties (const std::string &propertyName, const std::string &doc, WSPropArgs &&...wsPropArgs) |
Protected Member Functions inherited from Mantid::Kernel::IPropertyManager | |
virtual void | afterPropertySet (const std::string &) |
Override this method to perform a custom action right after a property was set. More... | |
virtual void | clear ()=0 |
Clears all properties under management. More... | |
virtual Property * | getPointerToPropertyOrdinal (const int &index) const =0 |
Get a property by an index. More... | |
template<typename T > | |
T | getValue (const std::string &name) const |
Templated method to get the value of a property. More... | |
template<> | |
MANTID_KERNEL_DLL PropertyManager_sptr | getValue (const std::string &name) const |
template<> | |
MANTID_KERNEL_DLL PropertyManager_const_sptr | getValue (const std::string &name) const |
Static Protected Member Functions inherited from Mantid::API::Algorithm | |
template<typename NumT > | |
static bool | isEmpty (const NumT toCheck) |
checks that the value was not set by users, uses the value in empty double/int. More... | |
Protected Attributes inherited from Mantid::API::Algorithm | |
std::atomic< bool > | m_cancel |
Set to true to stop execution. More... | |
std::atomic< bool > | m_parallelException |
Set if an exception is thrown, and not caught, within a parallel region. More... | |
std::vector< IWorkspaceProperty * > | m_inputWorkspaceProps |
All the WorkspaceProperties that are Input or InOut. Set in execute() More... | |
std::shared_ptr< AlgorithmHistory > | m_history |
Pointer to the history for the algorithm being executed. More... | |
Kernel::Logger | m_log |
Logger for this algorithm. More... | |
Kernel::Logger & | g_log |
std::shared_ptr< AlgorithmHistory > | m_parentHistory |
Pointer to the parent history object (if set) More... | |
std::vector< WorkspaceVector > | m_unrolledInputWorkspaces |
One vector of workspaces for each input workspace property. More... | |
size_t | m_groupSize |
Size of the group(s) being processed. More... | |
bool | m_usingBaseProcessGroups = false |
distinguish between base processGroups() and overriden/algorithm specific versions More... | |
Static Protected Attributes inherited from Mantid::API::Algorithm | |
static size_t | g_execCount = 0 |
Counter to keep track of algorithm execution order. More... | |
FitPowderDiffPeaks : Fit peaks in powder diffraction pattern.
Mode Confident: In this mode, the starting values of parameters except height will be given in input table workspace; Use case 1: user has some pre-knowledge of the peak shape parameters, i.e, the analytical function to describe all peaks. Use case 2: user has no pre-knowledge of the peak shape parameters, but have some single peaks fitted; The best starting value/estimation is from its right peak with proper fit Solution: Let them compete!
Its application is to serve as the first step for refining powder diffractomer instrument parameters. Its output will be used by RefinePowderInstrumentParameters().
Definition at line 45 of file FitPowderDiffPeaks.h.
|
private |
|
private |
Choice to generate peak profile paramter starting value.
Enumerator | |
---|---|
HKLCALCULATION | |
FROMBRAGGTABLE |
Definition at line 325 of file FitPowderDiffPeaks.h.
Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::FitPowderDiffPeaks | ( | ) |
Constructor.
Definition at line 70 of file FitPowderDiffPeaks.cpp.
|
private |
Build partial workspace for fitting.
Build a partial workspace from original data workspace.
sourcews | data workspace which the new workspace is built from |
workspaceindex | workspace index of the source spectrum in sourcews |
leftbound | lower boundary of the source data |
rightbound | upper boundary of the source data |
Definition at line 2832 of file FitPowderDiffPeaks.cpp.
References Mantid::DataObjects::create(), Mantid::Kernel::SingletonHolder< T >::Instance(), Mantid::Geometry::X, and Mantid::Geometry::Y.
Referenced by fitOverlappedPeaks(), fitSinglePeakConfident(), and fitSinglePeakRobust().
|
private |
Calcualte the value of a single peak in a given range.
|
private |
Calculate a Bragg peak's centre in TOF from its Miller indices.
|
private |
Calculate the range to fit peak/peaks group.
Calculate the range to fit peak/peaks group by avoiding including the tails of the neighboring peaks.
Assumption: all peaks' parameters on centre and FWHM are close to the true value
ileftpeak | :: index of the left most peak in the peak groups; |
irightpeak | :: index of the right most peak in the peak groups; |
peakleftboundary | :: left boundary of the peak for fitting (output) |
peakrightboundary | :: right boundary of the peak for fitting (output) |
Definition at line 1359 of file FitPowderDiffPeaks.cpp.
References m_tofMin, m_vecPeakFunctions, PEAKBOUNDARYFACTOR, and PEAKFITRANGEFACTOR.
Referenced by fitPeaksWithGoodStartingValues().
|
inlineoverridevirtual |
Algorithm's category for identification overriding a virtual method.
Reimplemented from Mantid::API::Algorithm.
Definition at line 59 of file FitPowderDiffPeaks.h.
|
private |
Crop data workspace.
Crop data workspace: the original workspace will not be affected.
tofmin | minimum value for cropping |
tofmax | maximum value for cropping |
Definition at line 2776 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::createChildAlgorithm(), Mantid::Kernel::Logger::error(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), m_dataWS, and m_wsIndex.
Referenced by exec().
|
private |
Fit 1 peak and background.
Fit single peak with background to raw data Note 1: in a limited range (4*FWHM)
Fit single peak with background to raw data
Definition at line 759 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::createChildAlgorithm(), Mantid::API::Algorithm::g_log, Mantid::CurveFitting::Algorithms::getFunctionInfo(), Mantid::Kernel::Logger::notice(), and parseFitResult().
Referenced by fitSinglePeakRobust().
|
private |
Fit 1 peak by using a sequential of minimizer.
dataws | :: A data aworkspace |
workspaceindex | :: A histogram index |
peakfunction | :: An instance of the BackToBackExponential function |
minimzernames | :: A vector of the minimizer names |
maxiterations | :: A vector if maximum numbers of iterations |
dampfactors | :: A vector of damping factors |
chi2 | :: The chi squared value (output) |
Definition at line 1603 of file FitPowderDiffPeaks.cpp.
References doFit1PeakSimple(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), Mantid::Kernel::Logger::notice(), restoreFunctionParameters(), and storeFunctionParameters().
Referenced by doFitPeak(), and fitSinglePeakRobust().
|
private |
Fit 1 peak by 1 minimizer of 1 call of minimzer (simple version)
dataws | :: A data aworkspace |
workspaceindex | :: A histogram index |
peakfunction | :: An instance of the BackToBackExponential function |
minimzername | :: A name of the minimizer to use |
maxiteration | :: A maximum number of iterations |
chi2 | :: The chi squared value (output) |
Return
Definition at line 1539 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::createChildAlgorithm(), Mantid::Kernel::Logger::debug(), Mantid::Kernel::Logger::error(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), name(), parseFitParameterWorkspace(), and parseFitResult().
Referenced by doFit1PeakSequential(), and fitSinglePeakConfident().
|
private |
Fit background function by removing the peak properly.
|
private |
Fit background-removed peak by Gaussian.
Definition at line 1658 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::createChildAlgorithm(), Mantid::API::Algorithm::g_log, height, Mantid::Kernel::Logger::information(), Mantid::Kernel::SingletonHolder< T >::Instance(), parseFitParameterWorkspace(), parseFitResult(), sigma, Mantid::Kernel::Logger::warning(), Mantid::Geometry::X, and Mantid::Geometry::Y.
Referenced by fitSinglePeakRobust().
|
private |
Fit multiple (overlapped) peaks.
Definition at line 1807 of file FitPowderDiffPeaks.cpp.
References doFitNPeaksSimple(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), Mantid::Kernel::Logger::notice(), restoreFunctionParameters(), Mantid::API::FunctionDomain1D::size(), and storeFunctionParameters().
Referenced by fitOverlappedPeaks().
|
private |
Fit N overlapped peaks in a simple manner.
Definition at line 1977 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::createChildAlgorithm(), Mantid::Kernel::Logger::error(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), name(), parseFitParameterWorkspace(), and parseFitResult().
Referenced by doFitMultiplePeaks().
|
private |
Fit peak with flexiblity in multiple steps Prerequisit:
dataws | :: The data workspace |
peakfunction | :: An instance of the BackToBackExponential peak function |
guessedfwhm | Guessed fwhm in order to constain the peak. If negative, then no constraint |
Definition at line 1407 of file FitPowderDiffPeaks.cpp.
References Mantid::Kernel::Logger::debug(), doFit1PeakSequential(), Mantid::API::Algorithm::g_log, restoreFunctionParameters(), and storeFunctionParameters().
|
private |
Fit single peak without background.
|
private |
Estimate FWHM for the peak observed.
|
private |
Use Le Bail method to estimate and set the peak heights.
dataws | workspace containing the background-removed data |
wsindex | workspace index of the data without background |
peaks | :: A vector of instances of BackToBackExponential function |
Definition at line 1915 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::g_log, height, Mantid::Kernel::Logger::information(), and Mantid::API::FunctionDomain1D::size().
Referenced by fitOverlappedPeaks().
|
private |
Build a partial workspace from source.
Estimate the range of a single peak
|
overrideprivatevirtual |
Implement abstract Algorithm methods.
Main execution.
Implements Mantid::API::Algorithm.
Definition at line 190 of file FitPowderDiffPeaks.cpp.
References cropWorkspace(), Mantid::EMPTY_DBL(), Mantid::Kernel::Logger::error(), fitPeaksRobust(), fitPeaksWithGoodStartingValues(), Mantid::API::Algorithm::g_log, genOutputFittedPatternWorkspace(), genPeakParameterDataWorkspace(), genPeakParametersWorkspace(), genPeaksFromTable(), getParameter(), importInstrumentParameterFromTable(), Mantid::Kernel::Logger::information(), m_chi2GoodFitPeaks, m_dataWS, m_fitMode, m_goodFit, m_indexGoodFitPeaks, m_peakData, m_peakFitChi2, m_peakParamTable, m_profileTable, m_tofMax, m_tofMin, m_unitCell, m_vecPeakFunctions, m_wsIndex, processInputProperties(), ROBUSTFIT, Mantid::Geometry::UnitCell::set(), Mantid::Kernel::IPropertyManager::setProperty(), and TRUSTINPUTFIT.
|
private |
Find max height (peak center)
|
private |
Fit peaks with confidence in fwhm and etc.
peaks | :: A vector of instances of BackToBackExponential |
backgroundfunction | :: An instance of BackgroundFunction |
gfwhm | : guessed fwhm. If negative, then use the input value |
Definition at line 1733 of file FitPowderDiffPeaks.cpp.
References buildPartialWorkspace(), doFitMultiplePeaks(), Mantid::CurveFitting::Algorithms::estimateBackgroundCoarse(), estimatePeakHeightsLeBail(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), m_dataWS, m_wsIndex, plotFunction(), and setOverlappedPeaksConstraints().
Referenced by fitPeaksWithGoodStartingValues().
|
private |
Fit a single peak.
|
private |
Fit peaks in the same group (i.e., single peak or overlapped peaks)
|
private |
Fit peaks in robust algorithm.
Fit peaks in Robust mode.
Prerequisite:
Definition at line 339 of file FitPowderDiffPeaks.cpp.
References fitSinglePeakRobust(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), m_minPeakHeight, m_peakFitChi2, m_rightmostPeakHKL, m_rightmostPeakLeftBound, m_rightmostPeakRightBound, m_vecPeakFunctions, Mantid::Kernel::Logger::notice(), observePeakRange(), storeFunctionParameters(), and Mantid::Kernel::Logger::warning().
Referenced by exec().
|
private |
Fit peaks.
Fit individual peak or group of overlapped peaks with good starting values.
Strategy:
Output: (1) goodfitpeaks, (2) goodfitchi2
Definition at line 1027 of file FitPowderDiffPeaks.cpp.
References calculatePeakFitBoundary(), fitOverlappedPeaks(), fitSinglePeakConfident(), Mantid::API::Algorithm::g_log, Mantid::Kernel::Logger::information(), m_chi2GoodFitPeaks, m_goodFit, m_indexGoodFitPeaks, m_peakFitChi2, and m_vecPeakFunctions.
Referenced by exec().
|
private |
Fit peak with trustful peak parameters.
peak | :: A peak BackToBackExponential function |
backgroundfunction | :: A background function |
leftbound | :: left boundary of the peak for fitting |
rightbound | :: right boundary of the peak for fitting |
chi2 | :: The output chi squared |
annhilatedpeak | :: (output) annhilatedpeak |
Definition at line 1129 of file FitPowderDiffPeaks.cpp.
References buildPartialWorkspace(), doFit1PeakSimple(), Mantid::Kernel::Logger::error(), Mantid::CurveFitting::Algorithms::estimateBackgroundCoarse(), Mantid::CurveFitting::Algorithms::findMaxValue(), Mantid::API::Algorithm::g_log, m_dataWS, m_minPeakHeight, m_wsIndex, Mantid::Kernel::Logger::notice(), plotFunction(), restoreFunctionParameters(), and storeFunctionParameters().
Referenced by fitPeaksWithGoodStartingValues().
|
private |
Fit peak with confidence of the centre.
|
private |
Fit peak with confident parameters.
|
private |
Fit single peak in robust mode (no hint)
Fit a single peak including its background by a robust algorithm Algorithm will.
Assumption:
Prerequisites: -— NONE!
Peak Fit Algorithms: 4 different approaches are used. 3 of them use normal minimzers such that
Arguments
peak | :: A peak function. |
backgroundfunction | :: A background function |
peakleftbound | :: peak left bound |
peakrightbound | :: peak right bound |
rightpeakparammap | :: peakrightbound |
finalchi2 | :: (output) chi square of the fit result |
Arguments:
Definition at line 555 of file FitPowderDiffPeaks.cpp.
References buildPartialWorkspace(), Mantid::Kernel::Logger::debug(), doFit1PeakBackground(), doFit1PeakSequential(), doFitGaussianPeak(), Mantid::Kernel::Logger::error(), Mantid::CurveFitting::Algorithms::estimateBackgroundCoarse(), fitSinglePeakSimulatedAnnealing(), Mantid::API::Algorithm::g_log, Mantid::CurveFitting::Algorithms::getFunctionInfo(), height, Mantid::Kernel::Logger::information(), m_dataWS, m_fitPeakBackgroundComposite, m_minPeakHeight, m_wsIndex, Mantid::Kernel::Logger::notice(), Mantid::CurveFitting::Algorithms::observePeakParameters(), plotFunction(), restoreFunctionParameters(), sigma, storeFunctionParameters(), and Mantid::Kernel::Logger::warning().
Referenced by fitPeaksRobust().
|
private |
Fit signle peak by Monte Carlo/simulated annealing.
Definition at line 823 of file FitPowderDiffPeaks.cpp.
References UNUSED_ARG.
Referenced by fitSinglePeakRobust().
|
private |
Create a Workspace2D for fitted peaks (pattern)
Create a Workspace2D for fitted peaks (pattern) and also the workspace for Zscores!
Definition at line 2174 of file FitPowderDiffPeaks.cpp.
References Mantid::DataObjects::create(), Mantid::Kernel::Logger::error(), Mantid::API::Algorithm::g_log, Mantid::Kernel::SingletonHolder< T >::Instance(), m_dataWS, and Mantid::Geometry::X.
Referenced by exec().
|
private |
Generate a peak.
hklmap | a map containing one (HKL) entry |
parammap | :: a map of parameters |
bk2bk2braggmap | :: bk2bk2braggmap |
good | :: (output) peak is valid |
hkl | : (output) (HKL) of the peak generated. |
d_h | :: (output) d_h |
Definition at line 2539 of file FitPowderDiffPeaks.cpp.
References Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::calculateParameters(), Mantid::CurveFitting::Functions::calThermalNeutronTOF(), Mantid::API::IPowderDiffPeakFunction::centre(), Mantid::Geometry::UnitCell::d(), Mantid::EMPTY_DBL(), Mantid::Kernel::Logger::error(), FROMBRAGGTABLE, Mantid::API::Algorithm::g_log, Mantid::CurveFitting::Algorithms::getFunctionInfo(), getHKLFromMap(), getParameter(), Mantid::API::IFunction::getParameterNames(), Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::getPeakParameter(), HKLCALCULATION, Mantid::Kernel::Logger::information(), Mantid::API::IFunction::initialize(), m_genPeakStartingValue, m_instrumentParmaeters, m_unitCell, mPeakParameterNames, Mantid::Kernel::Logger::notice(), Mantid::API::IPowderDiffPeakFunction::setMillerIndex(), Mantid::CurveFitting::Functions::ThermalNeutronBk2BkExpConvPVoigt::setParameter(), and Mantid::Kernel::Logger::warning().
Referenced by genPeaksFromTable().
|
private |
Create data workspace for X0, A, B and S of peak with good fit.
Definition at line 2217 of file FitPowderDiffPeaks.cpp.
References Mantid::DataObjects::create(), Mantid::Kernel::SingletonHolder< T >::Instance(), m_peakFitChi2, and m_vecPeakFunctions.
Referenced by exec().
|
private |
Generate output peak parameters workspace.
Generate a TableWorkspace for peaks with good fitting.
Table has column as H, K, L, d_h, X0, A(lpha), B(eta), S(igma), Chi2 Each row is a peak
Definition at line 2281 of file FitPowderDiffPeaks.cpp.
References Mantid::Kernel::Logger::debug(), Mantid::API::Algorithm::g_log, Mantid::Kernel::getZscore(), m_peakFitChi2, and m_vecPeakFunctions.
Referenced by exec().
|
private |
Generate peaks from input table workspace.
Genearte peaks from input workspace; Each peak within requirement will put into both (1) m_peaks and (2) m_peaksmap.
Definition at line 2415 of file FitPowderDiffPeaks.cpp.
References Mantid::Kernel::Logger::error(), Mantid::API::Algorithm::g_log, genPeak(), Mantid::API::IFunction::getParameterNames(), Mantid::Kernel::Logger::information(), Mantid::API::IFunction::initialize(), m_dataWS, m_minimumHKL, m_numPeaksLowerToMin, m_vecPeakFunctions, m_wsIndex, mPeakParameterNames, Mantid::Kernel::Logger::notice(), parseBraggPeakTable(), and Mantid::Kernel::Logger::warning().
Referenced by exec().
|
private |
Get (HKL) from a map; Return false if the information is incomplete.
Get (HKL) from a map Return false if the information is incomplete.
intmap | map as a pair of string and integer |
hkl | output integer vector for miller index |
Definition at line 2750 of file FitPowderDiffPeaks.cpp.
Referenced by genPeak().
|
private |
Get parameter value from m_instrumentParameters.
Get parameter value from m_instrumentParameters Exception: throw runtime error if there is no such parameter.
parname | parameter name to get from m_instrumentParameters |
Definition at line 2810 of file FitPowderDiffPeaks.cpp.
References Mantid::Kernel::Logger::debug(), Mantid::EMPTY_DBL(), Mantid::API::Algorithm::g_log, and m_instrumentParmaeters.
|
private |
Import instrument parameters from (input) table workspace.
Import TableWorkspace containing the parameters for fitting the diffrotometer geometry parameters.
Definition at line 2084 of file FitPowderDiffPeaks.cpp.
References Mantid::Kernel::Logger::error(), Mantid::API::Algorithm::g_log, m_instrumentParmaeters, Mantid::Kernel::Logger::notice(), and value.
Referenced by exec().
|
overrideprivatevirtual |
Implement abstract Algorithm methods.
Parameter declaration.
Implements Mantid::API::Algorithm.
Definition at line 79 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::declareProperty(), Mantid::EMPTY_DBL(), Mantid::Kernel::Direction::InOut, Mantid::Kernel::Direction::Input, and Mantid::Kernel::Direction::Output.
|
inlineoverridevirtual |
Algorithm's name for identification overriding a virtual method.
Implements Mantid::API::Algorithm.
Definition at line 50 of file FitPowderDiffPeaks.h.
Referenced by doFit1PeakSimple(), and doFitNPeaksSimple().
|
private |
Observe peak range with hint from right peak's properties.
Observe peak range with hint from right peak's properties Assumption: the background is reasonably flat within peak range.
Definition at line 473 of file FitPowderDiffPeaks.cpp.
References Mantid::CurveFitting::Algorithms::findMaxValue(), Mantid::API::Algorithm::g_log, m_dataWS, m_wsIndex, and Mantid::Kernel::Logger::warning().
Referenced by fitPeaksRobust().
|
private |
Import Bragg peak table workspace.
Definition at line 2125 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::g_log, and Mantid::Kernel::Logger::information().
Referenced by genPeaksFromTable().
|
private |
Parse Fit() output parameter workspace.
Parse parameter workspace returned from Fit()
Definition at line 2055 of file FitPowderDiffPeaks.cpp.
References Mantid::API::Algorithm::g_log, and Mantid::Kernel::Logger::warning().
Referenced by doFit1PeakSimple(), doFitGaussianPeak(), and doFitNPeaksSimple().
|
private |
Parse the fitting result.
Parse fit result.
Definition at line 2039 of file FitPowderDiffPeaks.cpp.
Referenced by doFit1PeakBackground(), doFit1PeakSimple(), doFitGaussianPeak(), and doFitNPeaksSimple().
|
private |
Plot a single peak to output vector.
domain | domain/region of the peak to plot. It is very localized. |
peakfunction | function to plot |
background | background of the peak |
Definition at line 2715 of file FitPowderDiffPeaks.cpp.
References m_dataWS, m_peakData, m_wsIndex, and Mantid::API::FunctionDomain1D::size().
Referenced by fitOverlappedPeaks(), fitSinglePeakConfident(), and fitSinglePeakRobust().
|
private |
Process input properties.
Process input parameters.
Definition at line 253 of file FitPowderDiffPeaks.cpp.
References Mantid::EMPTY_DBL(), Mantid::Kernel::Logger::error(), FROMBRAGGTABLE, Mantid::API::Algorithm::g_log, Mantid::API::Algorithm::getProperty(), HKLCALCULATION, m_dataWS, m_fitMode, m_fitPeakBackgroundComposite, m_genPeakStartingValue, m_minimumHKL, m_minPeakHeight, m_numPeaksLowerToMin, m_peakParamTable, m_profileTable, m_rightmostPeakHKL, m_rightmostPeakLeftBound, m_rightmostPeakRightBound, m_tofMax, m_tofMin, m_useGivenTOFh, m_wsIndex, ROBUSTFIT, and TRUSTINPUTFIT.
Referenced by exec().
|
private |
Restore the function's parameter values from a map.
Definition at line 1517 of file FitPowderDiffPeaks.cpp.
Referenced by doFit1PeakSequential(), doFitMultiplePeaks(), doFitPeak(), fitSinglePeakConfident(), and fitSinglePeakRobust().
|
inlineoverridevirtual |
Function to return all of the seeAlso (these are not validated) algorithms related to this algorithm.A default implementation is provided.
Reimplemented from Mantid::API::Algorithm.
Definition at line 56 of file FitPowderDiffPeaks.h.
|
private |
Set constraints on a group of overlapped peaks for fitting.
Definition at line 1961 of file FitPowderDiffPeaks.cpp.
Referenced by fitOverlappedPeaks().
|
private |
Store the function's parameter values to a map.
Definition at line 1507 of file FitPowderDiffPeaks.cpp.
Referenced by doFit1PeakSequential(), doFitMultiplePeaks(), doFitPeak(), fitPeaksRobust(), fitSinglePeakConfident(), and fitSinglePeakRobust().
|
private |
Estimate background.
Subtract background (This is an operation within the specially defined data workspace for peak fitting)
|
inlineoverridevirtual |
Summary of algorithms purpose.
Implements Mantid::API::Algorithm.
Definition at line 52 of file FitPowderDiffPeaks.h.
|
inlineoverridevirtual |
Algorithm's version for identification overriding a virtual method.
Implements Mantid::API::Algorithm.
Definition at line 55 of file FitPowderDiffPeaks.h.
|
private |
Definition at line 319 of file FitPowderDiffPeaks.h.
Referenced by exec(), and fitPeaksWithGoodStartingValues().
|
private |
Flag to show whether input instrument parameters is trustful.
Definition at line 310 of file FitPowderDiffPeaks.h.
|
private |
Data.
Definition at line 269 of file FitPowderDiffPeaks.h.
Referenced by cropWorkspace(), exec(), fitOverlappedPeaks(), fitSinglePeakConfident(), fitSinglePeakRobust(), genOutputFittedPatternWorkspace(), genPeaksFromTable(), observePeakRange(), plotFunction(), and processInputProperties().
enum { ... } Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::m_fitMode |
Fit mode.
Referenced by exec(), and processInputProperties().
|
private |
Fit peak + background as the last step.
Definition at line 343 of file FitPowderDiffPeaks.h.
Referenced by fitSinglePeakRobust(), and processInputProperties().
enum { ... } Mantid::CurveFitting::Algorithms::FitPowderDiffPeaks::m_genPeakStartingValue |
Choice to generate peak profile paramter starting value.
Referenced by genPeak(), and processInputProperties().
|
private |
Peak fitting status.
Definition at line 288 of file FitPowderDiffPeaks.h.
Referenced by exec(), and fitPeaksWithGoodStartingValues().
|
private |
Definition at line 318 of file FitPowderDiffPeaks.h.
Referenced by exec(), and fitPeaksWithGoodStartingValues().
|
private |
Map for function (instrument parameter)
Definition at line 291 of file FitPowderDiffPeaks.h.
Referenced by genPeak(), getParameter(), and importInstrumentParameterFromTable().
|
private |
Minimum HKL.
Definition at line 313 of file FitPowderDiffPeaks.h.
Referenced by genPeaksFromTable(), and processInputProperties().
|
private |
Minimum peak height for peak to be refined.
Definition at line 337 of file FitPowderDiffPeaks.h.
Referenced by fitPeaksRobust(), fitSinglePeakConfident(), fitSinglePeakRobust(), and processInputProperties().
|
private |
Number of peaks to fit lower to minimum HKL.
Definition at line 316 of file FitPowderDiffPeaks.h.
Referenced by genPeaksFromTable(), and processInputProperties().
|
private |
Data for each individual peaks. (HKL)^2, vector index, function values.
Definition at line 294 of file FitPowderDiffPeaks.h.
Referenced by exec(), and plotFunction().
|
private |
Peak fitting information.
Definition at line 285 of file FitPowderDiffPeaks.h.
Referenced by exec(), fitPeaksRobust(), fitPeaksWithGoodStartingValues(), genPeakParameterDataWorkspace(), and genPeakParametersWorkspace().
|
private |
Bragg peak parameter.
Definition at line 272 of file FitPowderDiffPeaks.h.
Referenced by exec(), and processInputProperties().
|
private |
Instrument profile parameter table workspace.
Definition at line 275 of file FitPowderDiffPeaks.h.
Referenced by exec(), and processInputProperties().
|
private |
Right most peak HKL.
Definition at line 328 of file FitPowderDiffPeaks.h.
Referenced by fitPeaksRobust(), and processInputProperties().
|
private |
Right most peak's left boundary.
Definition at line 331 of file FitPowderDiffPeaks.h.
Referenced by fitPeaksRobust(), and processInputProperties().
|
private |
Right most peak's right boundary.
Definition at line 334 of file FitPowderDiffPeaks.h.
Referenced by fitPeaksRobust(), and processInputProperties().
|
private |
Definition at line 304 of file FitPowderDiffPeaks.h.
Referenced by exec(), and processInputProperties().
|
private |
TOF Min and TOF Max.
Definition at line 303 of file FitPowderDiffPeaks.h.
Referenced by calculatePeakFitBoundary(), exec(), and processInputProperties().
|
private |
Unit cell of powder crystal.
Definition at line 340 of file FitPowderDiffPeaks.h.
|
private |
Flag to use given Bragg peaks' centre in TOF.
Definition at line 307 of file FitPowderDiffPeaks.h.
Referenced by processInputProperties().
|
private |
Sorted vector for peaks. double = d_h, vector = (HKL), peak.
Definition at line 282 of file FitPowderDiffPeaks.h.
Referenced by calculatePeakFitBoundary(), exec(), fitPeaksRobust(), fitPeaksWithGoodStartingValues(), genPeakParameterDataWorkspace(), genPeakParametersWorkspace(), and genPeaksFromTable().
|
private |
TOF vector of data workspace to process with.
Definition at line 300 of file FitPowderDiffPeaks.h.
Referenced by cropWorkspace(), exec(), fitOverlappedPeaks(), fitSinglePeakConfident(), fitSinglePeakRobust(), genPeaksFromTable(), observePeakRange(), plotFunction(), and processInputProperties().
|
private |
Peak parmeter names.
Definition at line 297 of file FitPowderDiffPeaks.h.
Referenced by genPeak(), and genPeaksFromTable().