-
Notifications
You must be signed in to change notification settings - Fork 122
/
UnwrapSNS.h
74 lines (65 loc) · 3.15 KB
/
UnwrapSNS.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
65
66
67
68
69
70
71
72
73
74
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2008 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source,
// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
// SPDX - License - Identifier: GPL - 3.0 +
#pragma once
//----------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------
#include "MantidAPI/Algorithm.h"
#include "MantidAlgorithms/DllConfig.h"
#include "MantidDataObjects/EventWorkspace.h"
namespace Mantid {
namespace Algorithms {
/** Takes an input Workspace2D that contains 'raw' data, unwraps the data
according to
the reference flightpath provided and converts the units to wavelength.
The output workspace will have common bins in the maximum theoretical
wavelength range.
Required Properties:
<UL>
<LI> InputWorkspace - The name of the input workspace. </LI>
<LI> OutputWorkspace - The name of the output workspace. </LI>
<LI> LRef - The 'reference' flightpath (in metres). </LI>
</UL>
@author Russell Taylor, Tessella Support Services plc
@date 25/07/2008
*/
class MANTID_ALGORITHMS_DLL UnwrapSNS final : public API::Algorithm {
public:
UnwrapSNS();
~UnwrapSNS() override = default;
const std::string name() const override { return "UnwrapSNS"; }
/// Summary of algorithms purpose
const std::string summary() const override {
return "Takes an input workspace that contains 'raw' data, unwraps the "
"data according to the reference flightpath provided and converts "
"the units to wavelength. The output workspace will have common "
"bins in the maximum theoretical wavelength range.";
}
int version() const override { return 1; }
const std::string category() const override { return "CorrectionFunctions\\InstrumentCorrections"; }
private:
void init() override;
void exec() override;
void execEvent();
void runMaskDetectors();
int unwrapX(const Mantid::HistogramData::HistogramX &, std::vector<double> &dataout, const double &Ld);
void getTofRangeData(const bool);
double m_conversionConstant; ///< The constant used in the conversion from TOF
/// to wavelength
API::MatrixWorkspace_const_sptr m_inputWS; ///< Pointer to the input workspace
DataObjects::EventWorkspace_const_sptr m_inputEvWS; ///< Pointer to the input event workspace
double m_LRef; ///< The 'reference' flightpath
double m_Tmin; ///< The start of the time-of-flight frame
double m_Tmax; ///< The end of the time-of-flight frame
double m_frameWidth; ///< The width of the frame cached to speed up things
int m_numberOfSpectra; ///< The number of spectra in the workspace
int m_XSize; ///< The size of the X vectors in the input workspace
/// Progress reporting
std::unique_ptr<API::Progress> m_progress;
};
} // namespace Algorithms
} // namespace Mantid