|
Mantid
|
BraggScatterer is a general interface for representing scatterers in the unit cell of a periodic structure. More...
#include <BraggScatterer.h>
Public Member Functions | |
| BraggScatterer () | |
| Default constructor. | |
| double | calculateFSquared (const Kernel::V3D &hkl) const |
| Returns |F(hkl)|^2. | |
| virtual StructureFactor | calculateStructureFactor (const Kernel::V3D &hkl) const =0 |
| virtual BraggScatterer_sptr | clone () const =0 |
| void | initialize () |
| Initialization method that calls declareProperties() and sets initialized state to true. | |
| bool | isInitialized () |
| Returns whether the instance has been initialized. | |
| bool | isPropertyExposedToComposite (const std::string &propertyName) const |
| Checks whether a property with the given name is exposed to BraggScattererComposite. | |
| bool | isPropertyExposedToComposite (Kernel::Property *property) const |
| Checks if a property is exposed to BraggScattererComposite or throws std::invalid_argument if a null-pointer is supplied. | |
| virtual std::string | name () const =0 |
Public Member Functions inherited from Mantid::Kernel::PropertyManager | |
| ::Json::Value | asJson (bool withDefaultValues=false) const override |
| Return the property manager serialized as a json object. | |
| std::string | asString (bool withDefaultValues=false) const override |
| Return the property manager serialized as a string. | |
| void | clear () override final |
| Clears the whole property map. | |
| PropertyManager * | cloneInTimeROI (const Kernel::TimeROI &timeROI) |
| Create a partial copy of this object such that every time series property is cloned according to the input TimeROI. | |
| void | declareOrReplaceProperty (std::unique_ptr< Property > p, const std::string &doc="") override |
| Add or replace a property in the list of managed properties. | |
| void | declareProperty (const std::string &name, const char *value, const std::string &doc, IValidator_sptr validator=std::make_shared< NullValidator >(), const unsigned int direction=Direction::Input) |
| Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). | |
| void | declareProperty (const std::string &name, const char *value, const unsigned int direction) |
| Add a property of string type to the list of managed properties. | |
| void | declareProperty (const std::string &name, const char *value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc=std::string(), const unsigned int direction=Direction::Input) |
| Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). | |
| template<typename T > | |
| void | declareProperty (const std::string &name, T value, const std::string &doc, const unsigned int direction=Direction::Input) |
| Add a property to the list of managed properties with no validator. | |
| template<typename T > | |
| void | declareProperty (const std::string &name, T value, const unsigned int direction) |
| Add a property of the template type to the list of managed properties. | |
| template<typename T > | |
| void | declareProperty (const std::string &name, T value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc="", const unsigned int direction=Direction::Input) |
| Add a property of the template type to the list of managed properties. | |
| void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="") override |
| Add a property to the list of managed properties. | |
| virtual void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
| Function to declare properties (i.e. store them) | |
| bool | existsProperty (const std::string &name) const override |
| Checks whether the named property is already in the list of managed property. | |
| void | filterByProperty (Mantid::Kernel::LogFilter *logFilter, const std::vector< std::string > &excludedFromFiltering=std::vector< std::string >()) override |
| Filter the managed properties by the given boolean property mask. | |
| std::vector< std::string > | getDeclaredPropertyNames () const noexcept override |
| Return the list of declared property names. | |
| Property * | getPointerToProperty (const std::string &name) const override |
| Get a property by name. | |
| const std::vector< Property * > & | getProperties () const override |
| Get the list of managed properties. | |
| TypedValue | getProperty (const std::string &name) const override |
| Get the value of a property. | |
| std::string | getPropertyValue (const std::string &name) const override |
| Get the value of a property as a string. | |
| bool | operator!= (const PropertyManager &other) const |
| PropertyManager & | operator+= (const PropertyManager &rhs) |
| Addition operator. | |
| PropertyManager & | operator= (const PropertyManager &) |
| Assignment operator - performs a deep copy. | |
| bool | operator== (const PropertyManager &other) const |
| size_t | propertyCount () const override |
| Count the number of properties under management. | |
| PropertyManager () | |
| Default constructor. | |
| PropertyManager (const PropertyManager &) | |
| copy constructor | |
| void | removeDataOutsideTimeROI (const Kernel::TimeROI &timeROI) |
| For time series properties, remove time values outside of TimeROI regions, each defined as [roi_begin,roi_end]. | |
| void | removeProperty (const std::string &name, const bool delproperty=true) override |
| removes the property from properties map | |
| void | resetProperties () override |
| Reset property values back to initial values (blank or default values) | |
| void | setProperties (const ::Json::Value &jsonValue, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) override |
| Set the ordered list of properties by a json value collection. | |
| void | setProperties (const ::Json::Value &jsonValue, IPropertyManager *targetPropertyManager, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) |
| Set the ordered list of properties by a json value collection. | |
| void | setProperties (const std::string &propertiesJson, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) override |
| Set the ordered list of properties by one string of values, separated by semicolons. | |
| void | setProperties (const std::string &propertiesJson, IPropertyManager *targetPropertyManager, const std::unordered_set< std::string > &ignoreProperties, bool createMissing=false) |
| Set the ordered list of properties by one string of values, separated by semicolons. | |
| void | setPropertiesWithString (const std::string &propertiesString, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >()) override |
| Sets all the declared properties from a string. | |
| void | setPropertyOrdinal (const int &index, const std::string &value) override |
| Set the value of a property by an index N.B. | |
| void | setPropertyValue (const std::string &name, const std::string &value) override |
| Set the value of a property by string N.B. | |
| void | setPropertyValueFromJson (const std::string &name, const Json::Value &value) override |
| Set the value of a property by Json::Value. | |
| std::unique_ptr< Property > | takeProperty (const size_t index) override |
| removes the property from the properties map and returns a pointer to it | |
| bool | validateProperties () const override |
| Validates all the properties in the collection. | |
| virtual | ~PropertyManager () override |
| Virtual destructor. | |
Public Member Functions inherited from Mantid::Kernel::IPropertyManager | |
| void | declareProperty (const std::string &name, const char *value, const std::string &doc, IValidator_sptr validator=std::make_shared< NullValidator >(), const unsigned int direction=Direction::Input) |
| Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). | |
| void | declareProperty (const std::string &name, const char *value, const unsigned int direction) |
| Add a property of string type to the list of managed properties. | |
| void | declareProperty (const std::string &name, const char *value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc=std::string(), const unsigned int direction=Direction::Input) |
| Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). | |
| template<typename T > | |
| void | declareProperty (const std::string &name, T value, const std::string &doc, const unsigned int direction=Direction::Input) |
| Add a property to the list of managed properties with no validator. | |
| template<typename T > | |
| void | declareProperty (const std::string &name, T value, const unsigned int direction) |
| Add a property of the template type to the list of managed properties. | |
| template<typename T > | |
| void | declareProperty (const std::string &name, T value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc="", const unsigned int direction=Direction::Input) |
| Add a property of the template type to the list of managed properties. | |
| std::vector< Property * > | getPropertiesInGroup (const std::string &group) const |
| Get the list of managed properties in a given group. | |
| IPropertyManager * | setProperty (const std::string &name, const char *value) |
| Specialised version of setProperty template method to handle const char *. | |
| IPropertyManager * | setProperty (const std::string &name, const std::string &value) |
| Specialised version of setProperty template method to handle std::string. | |
| template<typename T > | |
| IPropertyManager * | setProperty (const std::string &name, const T &value) |
| Templated method to set the value of a PropertyWithValue. | |
| template<typename T > | |
| IPropertyManager * | setProperty (const std::string &name, std::unique_ptr< T > value) |
| Templated method to set the value of a PropertyWithValue from a std::unique_ptr. | |
| void | setPropertyGroup (const std::string &name, const std::string &group) |
| Set the group for a given property. | |
| void | setPropertySettings (const std::string &name, std::unique_ptr< IPropertySettings > settings) |
| void | updatePropertyValues (const IPropertyManager &other) |
| Update values of the existing properties. | |
| virtual | ~IPropertyManager ()=default |
Protected Member Functions | |
| virtual void | declareProperties () |
| Base implementation does nothing - for implementing classes only. | |
| void | exposePropertyToComposite (const std::string &propertyName) |
| Exposes the property with the supplied name to BraggScattererComposite. | |
| const std::string & | getPropagatingGroupName () const |
| Returns the group name that is used to mark properties that are propagated. | |
| void | unexposePropertyFromComposite (const std::string &propertyName) |
| Removes exposure to composite for specified property. | |
Protected Member Functions inherited from Mantid::Kernel::PropertyManager | |
| Property * | getPointerToPropertyOrdinal (const int &index) const override |
| Get a property by an index. | |
| Property * | getPointerToPropertyOrNull (const std::string &name) const |
| Get a property by name. | |
Protected Member Functions inherited from Mantid::Kernel::IPropertyManager | |
| virtual void | afterPropertySet (const std::string &) |
| Override this method to perform a custom action right after a property was set. | |
| template<typename T > | |
| T | getValue (const std::string &name) const |
| Templated method to get the value of a property. | |
| template<> | |
| MANTID_KERNEL_DLL PropertyManager_sptr | getValue (const std::string &name) const |
| template<> | |
| MANTID_KERNEL_DLL PropertyManager_const_sptr | getValue (const std::string &name) const |
Private Attributes | |
| bool | m_isInitialized |
| std::string | m_propagatingGroupName |
Additional Inherited Members | |
Static Public Member Functions inherited from Mantid::Kernel::PropertyManager | |
| static std::string | getInvalidValuesFilterLogName (const std::string &logName) |
| Gets the correct log name for the matching invalid values log for a given log name. | |
| static std::string | getLogNameFromInvalidValuesFilter (const std::string &logName) |
| static bool | isAnInvalidValuesFilterLog (const std::string &logName) |
| Determine if the log's name has a substring indicating it should not be filtered. | |
Static Public Attributes inherited from Mantid::Kernel::PropertyManager | |
| static const std::string | INVALID_VALUES_SUFFIX = "_invalid_values" |
BraggScatterer is a general interface for representing scatterers in the unit cell of a periodic structure.
Since there are many possibilities of modelling scatterers, BraggScatterer is derived from PropertyManager. This way, new scatterers with very different parameters can be added easily.
New implementations must override the declareProperties method and define any parameters there. For most applications it should be easier to inherit from BraggScattererInCrystalStructure, which provides some default properties that are useful in many cases. CompositeBraggScatterer is designed to combine several scatterers.
CompositeBraggScatterer does not declare any properties by itself. For some properties it makes sense to be equal for all scatterers in the composite. This behavior can be achieved by calling the method makePropertyPropagating after it has been declared. Examples are the UnitCell and SpaceGroup properties in BraggScattererInCrystalStructure.
Construction of concrete scatterers is done through ScattererFactory.
Definition at line 53 of file BraggScatterer.h.
| Mantid::Geometry::BraggScatterer::BraggScatterer | ( | ) |
Default constructor.
Definition at line 14 of file BraggScatterer.cpp.
| double Mantid::Geometry::BraggScatterer::calculateFSquared | ( | const Kernel::V3D & | hkl | ) | const |
Returns |F(hkl)|^2.
Definition at line 29 of file BraggScatterer.cpp.
References calculateStructureFactor().
|
pure virtual |
Implemented in Mantid::Geometry::CompositeBraggScatterer, and Mantid::Geometry::IsotropicAtomBraggScatterer.
Referenced by calculateFSquared().
|
pure virtual |
Implemented in Mantid::Geometry::CompositeBraggScatterer, and Mantid::Geometry::IsotropicAtomBraggScatterer.
|
inlineprotectedvirtual |
Base implementation does nothing - for implementing classes only.
Reimplemented in Mantid::Geometry::BraggScattererInCrystalStructure.
Definition at line 71 of file BraggScatterer.h.
Referenced by initialize().
|
protected |
Exposes the property with the supplied name to BraggScattererComposite.
When a property is marked to be exposed to BraggScattererComposite, the composite also declares this property and tries to propagate the value assigned to the composite's property to all its members.
| propertyName | :: Name of the parameter that should be exposed. |
Definition at line 62 of file BraggScatterer.cpp.
References m_propagatingGroupName, and Mantid::Kernel::IPropertyManager::setPropertyGroup().
Referenced by Mantid::Geometry::BraggScattererInCrystalStructure::declareProperties().
|
protected |
Returns the group name that is used to mark properties that are propagated.
Definition at line 72 of file BraggScatterer.cpp.
References m_propagatingGroupName.
Referenced by isPropertyExposedToComposite(), and Mantid::Geometry::CompositeBraggScatterer::redeclareProperties().
| void Mantid::Geometry::BraggScatterer::initialize | ( | ) |
Initialization method that calls declareProperties() and sets initialized state to true.
Definition at line 19 of file BraggScatterer.cpp.
References declareProperties(), and m_isInitialized.
| bool Mantid::Geometry::BraggScatterer::isInitialized | ( | ) |
Returns whether the instance has been initialized.
Definition at line 26 of file BraggScatterer.cpp.
References m_isInitialized.
| bool Mantid::Geometry::BraggScatterer::isPropertyExposedToComposite | ( | const std::string & | propertyName | ) | const |
Checks whether a property with the given name is exposed to BraggScattererComposite.
Definition at line 37 of file BraggScatterer.cpp.
References Mantid::Kernel::PropertyManager::getProperty(), and isPropertyExposedToComposite().
Referenced by isPropertyExposedToComposite().
| bool Mantid::Geometry::BraggScatterer::isPropertyExposedToComposite | ( | Kernel::Property * | property | ) | const |
Checks if a property is exposed to BraggScattererComposite or throws std::invalid_argument if a null-pointer is supplied.
Definition at line 45 of file BraggScatterer.cpp.
References getPropagatingGroupName().
|
pure virtual |
Implemented in Mantid::Geometry::CompositeBraggScatterer, and Mantid::Geometry::IsotropicAtomBraggScatterer.
|
protected |
Removes exposure to composite for specified property.
Definition at line 67 of file BraggScatterer.cpp.
References Mantid::Kernel::IPropertyManager::setPropertyGroup().
|
private |
Definition at line 80 of file BraggScatterer.h.
Referenced by initialize(), and isInitialized().
|
private |
Definition at line 79 of file BraggScatterer.h.
Referenced by exposePropertyToComposite(), and getPropagatingGroupName().