Mantid
Loading...
Searching...
No Matches
BasicHKLFilters.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2015 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
14#include "MantidGeometry/DllConfig.h"
15
16#include <strstream>
17
18namespace Mantid {
19namespace Geometry {
20
64class MANTID_GEOMETRY_DLL HKLFilterNone final : public HKLFilter {
65public:
66 inline std::string getDescription() const noexcept override { return "Accepts all HKL values."; }
67 inline bool isAllowed(const Kernel::V3D & /*hkl*/) const noexcept override { return true; }
68};
69
81class MANTID_GEOMETRY_DLL HKLFilterDRange final : public HKLFilter {
82public:
83 HKLFilterDRange(const UnitCell &cell, double dMin);
84 HKLFilterDRange(const UnitCell &cell, double dMin, double dMax);
85
86 std::string getDescription() const noexcept override;
87 bool isAllowed(const Kernel::V3D &hkl) const noexcept override;
88
89private:
90 void checkProperDRangeValues();
91
93 double m_dmin, m_dmax;
94};
95
103class MANTID_GEOMETRY_DLL HKLFilterSpaceGroup final : public HKLFilter {
104public:
106
107 std::string getDescription() const noexcept override;
108 bool isAllowed(const Kernel::V3D &hkl) const noexcept override;
109
110protected:
112};
113
122class MANTID_GEOMETRY_DLL HKLFilterStructureFactor final : public HKLFilter {
123public:
124 HKLFilterStructureFactor(StructureFactorCalculator_sptr calculator, double fSquaredMin = 1.0e-6);
125
126 std::string getDescription() const noexcept override;
127 bool isAllowed(const Kernel::V3D &hkl) const noexcept override;
128
129protected:
132};
133
140class MANTID_GEOMETRY_DLL HKLFilterCentering final : public HKLFilter {
141public:
143
144 std::string getDescription() const noexcept override;
145 bool isAllowed(const Kernel::V3D &hkl) const noexcept override;
146
147protected:
149};
150
151} // namespace Geometry
152} // namespace Mantid
A class to filter HKLs according to a lattice centering.
ReflectionCondition_sptr m_centering
A class to filter HKLs by their d-values.
bool isAllowed(const Kernel::V3D &) const noexcept override
std::string getDescription() const noexcept override
A class to filter HKLs according to a space group.
A class to filter HKLs according to structure factor magnitudes.
StructureFactorCalculator_sptr m_calculator
Class to implement unit cell of crystals.
Definition: UnitCell.h:44
Class for 3D vectors.
Definition: V3D.h:34
std::shared_ptr< ReflectionCondition > ReflectionCondition_sptr
Shared pointer to a ReflectionCondition.
std::shared_ptr< StructureFactorCalculator > StructureFactorCalculator_sptr
std::shared_ptr< const SpaceGroup > SpaceGroup_const_sptr
Definition: SpaceGroup.h:82
Helper class which provides the Collimation Length for SANS instruments.