Mantid
Loading...
Searching...
No Matches
Framework
CurveFitting
inc
MantidCurveFitting
Functions
IkedaCarpenterPV.h
Go to the documentation of this file.
1
// Mantid Repository : https://github.com/mantidproject/mantid
2
//
3
// Copyright © 2007 ISIS Rutherford Appleton Laboratory UKRI,
4
// NScD Oak Ridge National Laboratory, European Spallation Source,
5
// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6
// SPDX - License - Identifier: GPL - 3.0 +
7
#pragma once
8
9
//----------------------------------------------------------------------
10
// Includes
11
//----------------------------------------------------------------------
12
#include "
MantidAPI/IFunctionMW.h
"
13
#include "
MantidAPI/IPeakFunction.h
"
14
#include "MantidCurveFitting/DllConfig.h"
15
16
namespace
Mantid
{
17
namespace
CurveFitting {
18
namespace
Functions {
27
class
MANTID_CURVEFITTING_DLL
IkedaCarpenterPV
:
virtual
public
API::IPeakFunction
,
virtual
public
API::IFunctionMW
{
28
public
:
30
double
centre()
const override
;
31
double
height
()
const override
;
32
double
fwhm()
const override
;
33
void
setCentre(
const
double
c)
override
;
34
void
setHeight(
const
double
h)
override
;
35
void
setFwhm(
const
double
w)
override
;
36
38
std::string
name
()
const override
{
return
"IkedaCarpenterPV"
; }
39
const
std::string
category
()
const override
{
return
"Peak"
; }
40
42
double
intensity()
const override
;
43
44
void
setMatrixWorkspace(std::shared_ptr<const API::MatrixWorkspace>
workspace
,
size_t
wi,
double
startX,
45
double
endX)
override
;
46
47
protected
:
48
void
functionLocal(
double
*out,
const
double
*xValues,
const
size_t
nData)
const override
;
49
void
functionDerivLocal(
API::Jacobian
*out,
const
double
*xValues,
const
size_t
nData)
override
;
50
void
functionDeriv(
const
API::FunctionDomain
&domain,
API::Jacobian
&jacobian)
override
;
51
53
void
init()
override
;
54
55
private
:
57
mutable
std::vector<double>
m_waveLength
;
58
60
void
constFunction(
double
*out,
const
double
*xValues,
const
int
&nData)
const
;
61
63
void
calWavelengthAtEachDataPoint(
const
double
*xValues,
const
size_t
&nData)
const
;
64
66
void
convertVoigtToPseudo(
const
double
&voigtSigmaSq,
const
double
&voigtGamma,
double
&H,
double
&eta)
const
;
67
69
void
lowerConstraint0(
const
std::string ¶mName);
70
};
71
72
}
// namespace Functions
73
}
// namespace CurveFitting
74
}
// namespace Mantid
height
double height
Definition:
GetAllEi.cpp:155
IFunctionMW.h
IPeakFunction.h
workspace
IPeaksWorkspace_sptr workspace
Definition:
IndexPeaks.cpp:114
Mantid::API::FunctionDomain
Base class that represents the domain of a function.
Definition:
FunctionDomain.h:31
Mantid::API::IFunctionMW
This is a specialization of IFunction for functions defined on a MatrixWorkspace.
Definition:
IFunctionMW.h:30
Mantid::API::IPeakFunction
An interface to a peak function, which extend the interface of IFunctionWithLocation by adding method...
Definition:
IPeakFunction.h:51
Mantid::API::Jacobian
Represents the Jacobian in IFitFunction::functionDeriv.
Definition:
Jacobian.h:22
Mantid::CurveFitting::Functions::IkedaCarpenterPV
Provide Ikeda-Carpenter-pseudo-Voigt peak shape function interface to IPeakFunction.
Definition:
IkedaCarpenterPV.h:27
Mantid::CurveFitting::Functions::IkedaCarpenterPV::m_waveLength
std::vector< double > m_waveLength
container for storing wavelength values for each data point
Definition:
IkedaCarpenterPV.h:57
Mantid::CurveFitting::Functions::IkedaCarpenterPV::category
const std::string category() const override
The categories the Fit function belong to.
Definition:
IkedaCarpenterPV.h:39
Mantid::CurveFitting::Functions::IkedaCarpenterPV::name
std::string name() const override
overwrite IFunction base class methods
Definition:
IkedaCarpenterPV.h:38
Mantid
Helper class which provides the Collimation Length for SANS instruments.
Definition:
AbsorptionCorrection.h:18
Generated on Tue Jan 3 2023 11:57:26 for Mantid by
1.9.5