Mantid
Loading...
Searching...
No Matches
PeakTransformSelector.h
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#pragma once
8
10#include <set>
11
12namespace Mantid {
13namespace Geometry {
18class MANTID_GEOMETRY_DLL PeakTransformSelector {
19public:
23 void registerCandidate(const PeakTransformFactory_sptr &candidate);
25 PeakTransformFactory_sptr makeChoice(const std::string &labelX, const std::string &labelY) const;
27 PeakTransformFactory_sptr makeDefaultChoice() const;
29 bool hasFactoryForTransform(const std::string &labelX, const std::string &labelY) const;
31 size_t numberRegistered() const;
32
33private:
39 using Factories = std::set<PeakTransformFactory_sptr>;
41};
42} // namespace Geometry
43} // namespace Mantid
Used to choose an appropriate PeakTransformFactory.
std::set< PeakTransformFactory_sptr > Factories
Collection of candidate factories.
PeakTransformSelector(const PeakTransformSelector &)
Disabled copy constructor.
PeakTransformSelector & operator=(const PeakTransformSelector &)
Disabled assigment operator.
std::shared_ptr< PeakTransformFactory > PeakTransformFactory_sptr
Factory Shared Pointer typedef.
Helper class which provides the Collimation Length for SANS instruments.