Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
Mantid::Algorithms::CalculateCarpenterSampleCorrection Class Reference

Multiple scattering absorption correction, originally used to correct vanadium spectrum at IPNS. More...

#include <CalculateCarpenterSampleCorrection.h>

Inheritance diagram for Mantid::Algorithms::CalculateCarpenterSampleCorrection:
Mantid::API::GenericDataProcessorAlgorithm< Base >

Public Member Functions

const std::string category () const override
 Algorithm's category for identification overriding a virtual method. 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
 
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::GenericDataProcessorAlgorithm< Base >
 GenericDataProcessorAlgorithm ()
 Constructor. More...
 
Kernel::IPropertyManager::TypedValue getProperty (const std::string &name) const override
 Get the property held by this object. More...
 
std::string getPropertyValue (const std::string &name) const override
 Get the property held by this object. More...
 

Private Member Functions

void calculate_abs_correction (const double angle_deg, const double radius, const double coeff1, const double coeff2, const double coeff3, const HistogramData::Points &wavelength, HistogramData::HistogramY &y_val)
 CalculateCarpenterSampleCorrection correction calculation. More...
 
void calculate_ms_correction (const double angle_deg, const double radius, const double coeff1, const double coeff2, const double coeff3, const HistogramData::Points &wavelength, HistogramData::HistogramY &y_val)
 
API::MatrixWorkspace_sptr createOutputWorkspace (const API::MatrixWorkspace_sptr &inputWS, const std::string &) const
 
void deleteWorkspace (const API::MatrixWorkspace_sptr &workspace)
 
void exec () override
 Execute the algorithm. More...
 
void init () override
 Initialize the properties to default values. More...
 
API::MatrixWorkspace_sptr setUncertainties (const API::MatrixWorkspace_sptr &workspace)
 

Additional Inherited Members

- Protected Member Functions inherited from Mantid::API::GenericDataProcessorAlgorithm< Base >
Workspace_sptr assemble (const std::string &partialWSName, const std::string &outputWSName)
 Assemble the partial workspaces from all MPI processes. More...
 
Workspace_sptr assemble (Workspace_sptr partialWS)
 Assemble the partial workspaces from all MPI processes. More...
 
void copyProperty (const API::Algorithm_sptr &alg, const std::string &name)
 Copy a property from an existing algorithm. More...
 
std::shared_ptr< AlgorithmcreateChildAlgorithm (const std::string &name, const double startProgress=-1., const double endProgress=-1., const bool enableLogging=true, const int &version=-1) override
 Create a Child Algorithm. More...
 
virtual ITableWorkspace_sptr determineChunk (const std::string &filename)
 
MatrixWorkspace_sptr divide (const MatrixWorkspace_sptr lhs, const double &rhsValue)
 Divide a matrix workspace by a single value. More...
 
MatrixWorkspace_sptr divide (const MatrixWorkspace_sptr lhs, const MatrixWorkspace_sptr rhs)
 Divide a matrix workspace by another matrix workspace. More...
 
void forwardProperties ()
 
int getNThreads ()
 Return the number of MPI processes running. More...
 
std::shared_ptr< Kernel::PropertyManagergetProcessProperties (const std::string &propertyManager=std::string()) const
 Get the property manager object of a given name from the property manager data service, or create a new one. More...
 
bool isMainThread ()
 Return true if we are running on the main thread. More...
 
Workspace_sptr load (const std::string &inputData, const bool loadQuiet=false)
 Determine what kind of input data we have and load it. More...
 
virtual MatrixWorkspace_sptr loadChunk (const size_t rowIndex)
 
void mapPropertyName (const std::string &nameInProp, const std::string &nameInPropManager)
 Declare mapping of property name to name in the PropertyManager. More...
 
MatrixWorkspace_sptr minus (const MatrixWorkspace_sptr lhs, const double &rhsValue)
 Subract a single value from a matrix workspace. More...
 
MatrixWorkspace_sptr minus (const MatrixWorkspace_sptr lhs, const MatrixWorkspace_sptr rhs)
 Subract a matrix workspace by another matrix workspace. More...
 
MatrixWorkspace_sptr multiply (const MatrixWorkspace_sptr lhs, const double &rhsValue)
 Multiply a matrix workspace by a single value. More...
 
MatrixWorkspace_sptr multiply (const MatrixWorkspace_sptr lhs, const MatrixWorkspace_sptr rhs)
 Multiply a matrix workspace by another matrix workspace. More...
 
MatrixWorkspace_sptr plus (const MatrixWorkspace_sptr lhs, const double &rhsValue)
 Add a single value to a matrix workspace. More...
 
MatrixWorkspace_sptr plus (const MatrixWorkspace_sptr lhs, const MatrixWorkspace_sptr rhs)
 Add a matrix workspace to another matrix workspace. More...
 
void saveNexus (const std::string &outputWSName, const std::string &outputFile)
 Save a workspace as a nexus file, with check for which thread we are executing in. More...
 
void setAccumAlg (const std::string &alg)
 
void setLoadAlg (const std::string &alg)
 
void setLoadAlgFileProp (const std::string &filePropName)
 
void setPropManagerPropName (const std::string &propName)
 
std::vector< std::string > splitInput (const std::string &input)
 
- Protected Attributes inherited from Mantid::API::GenericDataProcessorAlgorithm< Base >
bool m_useMPI
 MPI option. If false, we will use one job event if MPI is available. More...
 

Detailed Description

Multiple scattering absorption correction, originally used to correct vanadium spectrum at IPNS.

Algorithm originally worked out by Jack Carpenter and Asfia Huq and implmented in Java by Alok Chatterjee. Translated to C++ by Dennis Mikkelson.

Definition at line 21 of file CalculateCarpenterSampleCorrection.h.

Member Function Documentation

◆ calculate_abs_correction()

void Mantid::Algorithms::CalculateCarpenterSampleCorrection::calculate_abs_correction ( const double  angle_deg,
const double  radius,
const double  coeff1,
const double  coeff2,
const double  coeff3,
const HistogramData::Points &  wavelength,
HistogramData::HistogramY &  y_val 
)
private

CalculateCarpenterSampleCorrection correction calculation.

This method will change the values in the y_val array to correct for multiple scattering absorption.

Parameter total_path is in meters, and the sample radius is in cm.

Parameters
angle_deg:: The scattering angle (two theta) in degrees
radius:: The sample rod radius in cm
coeff1:: The absorption cross section / 1.81
coeff2:: The density
coeff3:: The total scattering cross section
wavelength:: Array of wavelengths at bin boundaries (or bin centers) for the spectrum, in Angstroms
y_val:: The spectrum values

Definition at line 332 of file CalculateCarpenterSampleCorrection.cpp.

References radius, and Mantid::Geometry::Z.

Referenced by exec().

◆ calculate_ms_correction()

void Mantid::Algorithms::CalculateCarpenterSampleCorrection::calculate_ms_correction ( const double  angle_deg,
const double  radius,
const double  coeff1,
const double  coeff2,
const double  coeff3,
const HistogramData::Points &  wavelength,
HistogramData::HistogramY &  y_val 
)
private

Definition at line 361 of file CalculateCarpenterSampleCorrection.cpp.

References radius, and Mantid::Geometry::Z.

Referenced by exec().

◆ category()

const std::string Mantid::Algorithms::CalculateCarpenterSampleCorrection::category ( ) const
override

Algorithm's category for identification overriding a virtual method.

Definition at line 80 of file CalculateCarpenterSampleCorrection.cpp.

◆ createOutputWorkspace()

MatrixWorkspace_sptr Mantid::Algorithms::CalculateCarpenterSampleCorrection::createOutputWorkspace ( const API::MatrixWorkspace_sptr inputWS,
const std::string &  ylabel 
) const
private

Definition at line 390 of file CalculateCarpenterSampleCorrection.cpp.

Referenced by exec().

◆ deleteWorkspace()

void Mantid::Algorithms::CalculateCarpenterSampleCorrection::deleteWorkspace ( const API::MatrixWorkspace_sptr workspace)
private

◆ exec()

void Mantid::Algorithms::CalculateCarpenterSampleCorrection::exec ( )
overrideprivate

◆ init()

void Mantid::Algorithms::CalculateCarpenterSampleCorrection::init ( )
overrideprivate

Initialize the properties to default values.

Definition at line 87 of file CalculateCarpenterSampleCorrection.cpp.

References Mantid::Kernel::Direction::Input, and Mantid::Kernel::Direction::Output.

◆ name()

const std::string Mantid::Algorithms::CalculateCarpenterSampleCorrection::name ( ) const
override

Algorithm's name for identification overriding a virtual method.

Definition at line 76 of file CalculateCarpenterSampleCorrection.cpp.

◆ seeAlso()

const std::vector< std::string > Mantid::Algorithms::CalculateCarpenterSampleCorrection::seeAlso ( ) const
inlineoverride

Definition at line 28 of file CalculateCarpenterSampleCorrection.h.

◆ setUncertainties()

MatrixWorkspace_sptr Mantid::Algorithms::CalculateCarpenterSampleCorrection::setUncertainties ( const API::MatrixWorkspace_sptr workspace)
private

◆ summary()

const std::string Mantid::Algorithms::CalculateCarpenterSampleCorrection::summary ( ) const
inlineoverride

Summary of algorithms purpose.

Definition at line 37 of file CalculateCarpenterSampleCorrection.h.

◆ version()

int Mantid::Algorithms::CalculateCarpenterSampleCorrection::version ( ) const
override

Algorithm's version for identification overriding a virtual method.

Definition at line 78 of file CalculateCarpenterSampleCorrection.cpp.


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