10#include "MantidGeometry/DllConfig.h"
45class CompositeBraggScatterer;
56 std::string
name()
const override {
return "CompositeBraggScatterer"; }
60 void setScatterers(
const std::vector<BraggScatterer_sptr> &scatterers);
61 size_t nScatterers()
const;
63 void removeScatterer(
size_t i);
64 void removeAllScatterers();
69 void afterPropertySet(
const std::string &propertyName)
override;
70 void propagateProperty(
const std::string &propertyName);
71 void propagatePropertyToScatterer(
BraggScatterer_sptr &scatterer,
const std::string &propertyName,
72 const std::string &propertyValue);
75 void removeScattererImplementation(
size_t i);
77 void redeclareProperties();
78 std::map<std::string, size_t> getPropertyCountMap()
const;
BraggScatterer is a general interface for representing scatterers in the unit cell of a periodic stru...
CompositeBraggScatterer accumulates scatterers, for easier calculation of structure factors.
std::vector< BraggScatterer_sptr > m_scatterers
std::string name() const override
std::unique_ptr< T > create(const P &parent, const IndexArg &indexArg, const HistArg &histArg)
This is the create() method that all the other create() methods call.
std::shared_ptr< BraggScatterer > BraggScatterer_sptr
std::shared_ptr< CompositeBraggScatterer > CompositeBraggScatterer_sptr
std::complex< double > StructureFactor
Helper class which provides the Collimation Length for SANS instruments.