-
Notifications
You must be signed in to change notification settings - Fork 122
/
PoldiCalibrationProfile.h
64 lines (46 loc) · 2.24 KB
/
PoldiCalibrationProfile.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef MANTID_CURVEFITTING_POLDICALIBRATIONFUNCTION_H_
#define MANTID_CURVEFITTING_POLDICALIBRATIONFUNCTION_H_
#include "MantidCurveFitting/Gaussian.h"
namespace Mantid {
namespace CurveFitting {
/** PoldiCalibrationProfile
Instrument parameters at POLDI are calibrated using an additional parameter
that changes the slope of Bragg lines in the POLDI 2D data. If the
instrument is calibrated properly, the parameter is 0.
Since silicon powder is used as standard, peak profiles are always Gaussian,
so the Gaussian function from this module is re-used. The additional
parameter depends on 2theta, so it can only be used in conjunction with the
PoldiSpectrumCalibrationFunction in the SINQ module. If used otherwise
it will behave like Gaussian with an additional parameter that does nothing.
@author Michael Wedel, Paul Scherrer Institut - SINQ
@date 04/05/2015
Copyright © 2015 PSI-NXMM
This file is part of Mantid.
Mantid is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
Mantid is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
File change history is stored at: <https://github.com/mantidproject/mantid>
Code Documentation is available at: <http://doxygen.mantidproject.org>
*/
class DLLExport PoldiCalibrationProfile : public Gaussian {
public:
~PoldiCalibrationProfile() {}
std::string name() const { return "PoldiCalibrationProfile"; }
void functionLocal(double *out, const double *xValues,
const size_t nData) const;
void functionDerivLocal(API::Jacobian *out, const double *xValues,
const size_t nData);
protected:
double getAbsoluteShift() const;
void init();
};
} // namespace CurveFitting
} // namespace Mantid
#endif /* MANTID_CURVEFITTING_POLDICALIBRATIONFUNCTION_H_ */