Mantid
Loading...
Searching...
No Matches
FitPropertyBrowserFindPeaksExt.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2022 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
11
14
15/* Forward declarations */
16
17class QObject;
18
20
22 Q_OBJECT
23signals:
26
27protected:
28 void finishHandle(const Mantid::API::IAlgorithm *alg) override {
29 UNUSED_ARG(alg);
30 emit algCompletedSignal();
31 }
32};
33
35public:
36 virtual void initialise(const std::string &wsName, const int workspaceIndex, const std::string &peakListName,
37 const int FWHM, AlgorithmFinishObserver *obs) = 0;
38 virtual void execute() = 0;
39 virtual size_t peakNumber() const = 0;
40 virtual double getPeakCentre(const size_t peakIndex) const = 0;
41 virtual double getPeakHeight(const size_t peakIndex) const = 0;
42 virtual double getPeakWidth(const size_t peakIndex) const = 0;
44};
45
47public:
48 size_t peakNumber() const override { return m_peakCentres->size(); };
49 double getPeakCentre(const size_t peakIndex) const override { return m_peakCentres->operator[](peakIndex); };
50 double getPeakHeight(const size_t peakIndex) const override { return m_peakHeights->operator[](peakIndex); };
51 double getPeakWidth(const size_t peakIndex) const override { return m_peakWidths->operator[](peakIndex); };
52
53protected:
54 std::string m_peakListName;
55 std::unique_ptr<T> m_peakCentres;
56 std::unique_ptr<T> m_peakHeights;
57 std::unique_ptr<T> m_peakWidths;
58};
59
61 public FindPeakStrategy<std::vector<double>> {
62 Q_OBJECT
63public:
64 void initialise(const std::string &wsName, const int workspaceIndex, const std::string &peakListName, const int FWHM,
65 AlgorithmFinishObserver *obs) override;
66 void execute() override;
67
68private:
69 int m_FWHM;
72};
73
74class EXPORT_OPT_MANTIDQT_COMMON FindPeakDefaultStrategy : public FindPeakStrategy<Mantid::API::ColumnVector<double>> {
75public:
76 void initialise(const std::string &wsName, const int workspaceIndex, const std::string &peakListName, const int FWHM,
77 AlgorithmFinishObserver *obs) override;
78 void execute() override;
79
80private:
82};
83
84} // namespace MantidQt::MantidWidgets
#define EXPORT_OPT_MANTIDQT_COMMON
Definition DllOption.h:15
#define UNUSED_ARG(x)
Function arguments are sometimes unused in certain implmentations but are required for documentation ...
Definition System.h:48
This class should be the basis for all customised algorithm dialogs.
void finishHandle(const Mantid::API::IAlgorithm *alg) override
void algCompletedSignal()
Emitted when alg completes.
virtual double getPeakCentre(const size_t peakIndex) const =0
virtual double getPeakHeight(const size_t peakIndex) const =0
virtual double getPeakWidth(const size_t peakIndex) const =0
virtual void initialise(const std::string &wsName, const int workspaceIndex, const std::string &peakListName, const int FWHM, AlgorithmFinishObserver *obs)=0
double getPeakCentre(const size_t peakIndex) const override
double getPeakWidth(const size_t peakIndex) const override
double getPeakHeight(const size_t peakIndex) const override
Observes Algorithm notifications: start,progress,finish,error.
IAlgorithm is the interface implemented by the Algorithm base class.
Definition IAlgorithm.h:45
std::shared_ptr< IAlgorithm > IAlgorithm_sptr
shared pointer to Mantid::API::IAlgorithm