Mantid
Loading...
Searching...
No Matches
Framework
CurveFitting
src
Algorithms
IqtFit.cpp
Go to the documentation of this file.
1
// Mantid Repository : https://github.com/mantidproject/mantid
2
//
3
// Copyright © 2018 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
#include "
MantidAPI/AlgorithmManager.h
"
8
9
#include "
MantidCurveFitting/Algorithms/IqtFit.h
"
10
#include "
MantidCurveFitting/Algorithms/QENSFitSequential.h
"
11
#include "
MantidCurveFitting/Algorithms/QENSFitSimultaneous.h
"
12
13
#include "
MantidKernel/Logger.h
"
14
15
using namespace
Mantid::API
;
16
17
namespace
{
18
Mantid::Kernel::Logger
g_log
(
"IqtFit"
);
19
}
// namespace
20
21
namespace
Mantid::CurveFitting::Algorithms
{
22
23
using namespace
API
;
24
26
template
<>
const
std::string
IqtFit<QENSFitSequential>::name
()
const
{
return
"IqtFitSequential"
; }
27
28
template
<>
const
std::string
IqtFit<QENSFitSimultaneous>::name
()
const
{
return
"IqtFitSimultaneous"
; }
29
30
template
<
typename
Base>
const
std::string
IqtFit<Base>::name
()
const
{
return
"IqtFit"
; }
31
33
template
<
typename
Base>
int
IqtFit<Base>::version
()
const
{
return
1; }
34
36
template
<
typename
Base>
const
std::string
IqtFit<Base>::category
()
const
{
return
"Workflow\\MIDAS"
; }
37
39
template
<>
const
std::string
IqtFit<QENSFitSequential>::summary
()
const
{
40
return
"Fits data files (\\*\\_iqt) generated by I(Q, t) sequentially."
;
41
}
42
43
template
<>
const
std::string
IqtFit<QENSFitSimultaneous>::summary
()
const
{
44
return
"Fits data files (\\*\\_iqt) generated by I(Q, t) simultaneously."
;
45
}
46
47
template
<
typename
Base>
const
std::string
IqtFit<Base>::summary
()
const
{
48
return
"Fits an \\*\\_iqt file generated by I(Q, t) sequentially."
;
49
}
50
52
template
<>
const
std::vector<std::string>
IqtFit<QENSFitSequential>::seeAlso
()
const
{
return
{
"QENSFitSequential"
}; }
53
54
template
<>
const
std::vector<std::string>
IqtFit<QENSFitSimultaneous>::seeAlso
()
const
{
55
return
{
"QENSFitSimultaneous"
};
56
}
57
58
template
<
typename
Base>
const
std::vector<std::string>
IqtFit<Base>::seeAlso
()
const
{
return
{}; }
59
60
template
<> std::map<std::string, std::string>
IqtFit<QENSFitSequential>::validateInputs
() {
61
auto
errors = QENSFitSequential::validateInputs();
62
const
std::vector<double> startX = QENSFitSequential::getProperty(
"StartX"
);
63
for
(
const
double
&start : startX) {
64
if
(start < 0) {
65
errors[
"StartX"
] =
"StartX must be greater than or equal to 0."
;
66
}
67
}
68
return
errors;
69
}
70
71
template
<
typename
Base> std::map<std::string, std::string>
IqtFit<Base>::validateInputs
() {
72
return
Base::validateInputs();
73
}
74
75
template
<
typename
Base>
bool
IqtFit<Base>::throwIfElasticQConversionFails
()
const
{
return
true
; }
76
77
// Register the algorithms into the AlgorithmFactory
78
template
class
IqtFit<QENSFitSequential>
;
79
template
class
IqtFit<QENSFitSimultaneous>
;
80
81
using
IqtFitSequential
=
IqtFit<QENSFitSequential>
;
82
using
IqtFitSimultaneous
=
IqtFit<QENSFitSimultaneous>
;
83
84
DECLARE_ALGORITHM
(
IqtFitSequential
)
85
DECLARE_ALGORITHM
(
IqtFitSimultaneous
)
86
87
}
// namespace Mantid::CurveFitting::Algorithms
AlgorithmManager.h
DECLARE_ALGORITHM
#define DECLARE_ALGORITHM(classname)
Definition
Algorithm.h:538
IqtFit.h
Logger.h
QENSFitSequential.h
QENSFitSimultaneous.h
Mantid::CurveFitting::Algorithms::IqtFit
Definition
IqtFit.h:16
Mantid::Kernel::Logger
The Logger class is in charge of the publishing messages from the framework through various channels.
Definition
Logger.h:51
API
Definition
ChudleyElliotSQE.h:11
Mantid::API
Definition
AbsorptionCorrection.h:20
Mantid::API::g_log
Kernel::Logger g_log("ExperimentInfo")
static logger object
Mantid::CurveFitting::Algorithms
Definition
IFunction1D.h:20
Mantid::CurveFitting::Algorithms::IqtFitSequential
IqtFit< QENSFitSequential > IqtFitSequential
Definition
IqtFit.cpp:81
Mantid::CurveFitting::Algorithms::IqtFitSimultaneous
IqtFit< QENSFitSimultaneous > IqtFitSimultaneous
Definition
IqtFit.cpp:82
Generated by
1.9.8