Mantid
Loading...
Searching...
No Matches
ReflectionGenerator.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
12#include "MantidGeometry/DllConfig.h"
13
14namespace Mantid {
15namespace Geometry {
16
18
88class MANTID_GEOMETRY_DLL ReflectionGenerator {
89public:
91 ReflectionConditionFilter defaultFilter = ReflectionConditionFilter::SpaceGroup);
92
93 const CrystalStructure &getCrystalStructure() const;
94
95 HKLFilter_const_sptr getDRangeFilter(double dMin, double dMax) const;
96 HKLFilter_const_sptr getReflectionConditionFilter(ReflectionConditionFilter filter) const;
97
98 std::vector<Kernel::V3D> getHKLs(double dMin, double dMax) const;
99 std::vector<Kernel::V3D> getHKLs(double dMin, double dMax,
100 const HKLFilter_const_sptr &reflectionConditionFilter) const;
101
102 std::vector<Kernel::V3D> getUniqueHKLs(double dMin, double dMax) const;
103 std::vector<Kernel::V3D> getUniqueHKLs(double dMin, double dMax,
104 const HKLFilter_const_sptr &reflectionConditionFilter) const;
105
106 std::vector<double> getDValues(const std::vector<Kernel::V3D> &hkls) const;
107 std::vector<double> getFsSquared(const std::vector<Kernel::V3D> &hkls) const;
108
109private:
113};
114
115} // namespace Geometry
116} // namespace Mantid
Three components are required to describe a crystal structure:
StructureFactorCalculator_sptr m_sfCalculator
A class for representing space groups, inheriting from Group.
Definition: SpaceGroup.h:46
std::shared_ptr< const HKLFilter > HKLFilter_const_sptr
Definition: HKLFilter.h:76
std::shared_ptr< StructureFactorCalculator > StructureFactorCalculator_sptr
std::complex< double > StructureFactor
Helper class which provides the Collimation Length for SANS instruments.