Mantid
|
This class provides an extension of BraggScatterer, suitable for scatterers that are part of a crystal structure. More...
#include <BraggScattererInCrystalStructure.h>
Public Member Functions | |
BraggScattererInCrystalStructure () | |
Default constructor. More... | |
UnitCell | getCell () const |
Returns the cell which is currently set. More... | |
Kernel::V3D | getPosition () const |
Returns the position of the scatterer. More... | |
Public Member Functions inherited from Mantid::Geometry::BraggScatterer | |
BraggScatterer () | |
Default constructor. More... | |
double | calculateFSquared (const Kernel::V3D &hkl) const |
Returns |F(hkl)|^2. More... | |
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. More... | |
bool | isInitialized () |
Returns whether the instance has been initialized. More... | |
bool | isPropertyExposedToComposite (const std::string &propertyName) const |
Checks whether a property with the given name is exposed to BraggScattererComposite. More... | |
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. More... | |
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. More... | |
std::string | asString (bool withDefaultValues=false) const override |
Return the property manager serialized as a string. More... | |
void | clear () override |
Clears the whole property map. More... | |
void | declareOrReplaceProperty (std::unique_ptr< Property > p, const std::string &doc="") override |
Add or replace a property in the list of managed properties. More... | |
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). More... | |
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. More... | |
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). More... | |
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. More... | |
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. More... | |
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. More... | |
void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="") override |
Add a property to the list of managed properties. More... | |
virtual void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
Function to declare properties (i.e. store them) More... | |
bool | existsProperty (const std::string &name) const override |
Checks whether the named property is already in the list of managed property. More... | |
void | filterByProperty (const TimeSeriesProperty< bool > &filter, const std::vector< std::string > &excludedFromFiltering=std::vector< std::string >()) override |
Filter the managed properties by the given boolean property mask. More... | |
void | filterByTime (const Types::Core::DateAndTime &start, const Types::Core::DateAndTime &stop) override |
Filter out a run by time. More... | |
std::vector< std::string > | getDeclaredPropertyNames () const noexcept override |
Return the list of declared property names. More... | |
Property * | getPointerToProperty (const std::string &name) const override |
Get a property by name. More... | |
const std::vector< Property * > & | getProperties () const override |
Get the list of managed properties. More... | |
TypedValue | getProperty (const std::string &name) const override |
Get the value of a property. More... | |
std::string | getPropertyValue (const std::string &name) const override |
Get the value of a property as a string. More... | |
bool | operator!= (const PropertyManager &other) const |
PropertyManager & | operator+= (const PropertyManager &rhs) |
Addition operator. More... | |
PropertyManager & | operator= (const PropertyManager &) |
Assignment operator - performs a deep copy. More... | |
bool | operator== (const PropertyManager &other) const |
size_t | propertyCount () const override |
Count the number of properties under management. More... | |
PropertyManager () | |
Default constructor. More... | |
PropertyManager (const PropertyManager &) | |
copy constructor More... | |
void | removeProperty (const std::string &name, const bool delproperty=true) override |
removes the property from properties map More... | |
void | resetProperties () override |
Reset property values back to initial values (blank or default values) More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | setPropertyOrdinal (const int &index, const std::string &value) override |
Set the value of a property by an index N.B. More... | |
void | setPropertyValue (const std::string &name, const std::string &value) override |
Set the value of a property by string N.B. More... | |
void | setPropertyValueFromJson (const std::string &name, const Json::Value &value) override |
Set the value of a property by Json::Value. More... | |
void | splitByTime (std::vector< SplittingInterval > &splitter, std::vector< PropertyManager * > outputs) const override |
Split a run by time (splits the TimeSeriesProperties contained). More... | |
std::unique_ptr< Property > | takeProperty (const size_t index) override |
removes the property from the properties map and returns a pointer to it More... | |
bool | validateProperties () const override |
Validates all the properties in the collection. More... | |
virtual | ~PropertyManager () override |
Virtual destructor. More... | |
Public Member Functions inherited from Mantid::Kernel::IPropertyManager | |
virtual ::Json::Value | asJson (bool withDefaultValues=false) const =0 |
Return the property manager serialized as a json object. More... | |
virtual std::string | asString (bool withDefaultValues=false) const =0 |
Return the property manager serialized as a string. More... | |
virtual void | declareOrReplaceProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
Function to declare properties (i.e. store them) More... | |
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). More... | |
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. More... | |
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). More... | |
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. More... | |
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. More... | |
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. More... | |
virtual void | declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0 |
Function to declare properties (i.e. store them) More... | |
virtual bool | existsProperty (const std::string &name) const =0 |
Checks whether the named property is already in the list of managed property. More... | |
virtual void | filterByProperty (const TimeSeriesProperty< bool > &, const std::vector< std::string > &)=0 |
virtual void | filterByTime (const Types::Core::DateAndTime &, const Types::Core::DateAndTime &)=0 |
virtual std::vector< std::string > | getDeclaredPropertyNames () const noexcept=0 |
Get the list of managed property names. More... | |
virtual Property * | getPointerToProperty (const std::string &name) const =0 |
Get a pointer to property by name. More... | |
virtual const std::vector< Property * > & | getProperties () const =0 |
Get the list of managed properties. More... | |
std::vector< Property * > | getPropertiesInGroup (const std::string &group) const |
Get the list of managed properties in a given group. More... | |
virtual TypedValue | getProperty (const std::string &name) const =0 |
Get the value of a property. More... | |
virtual std::string | getPropertyValue (const std::string &name) const =0 |
Get the value of a property as a string. More... | |
virtual size_t | propertyCount () const =0 |
Returns the number of properties under management. More... | |
virtual void | removeProperty (const std::string &name, const bool delproperty=true)=0 |
Removes the property from management. More... | |
virtual void | resetProperties ()=0 |
virtual void | setProperties (const ::Json::Value &jsonValue, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)=0 |
Sets all the properties from a json object. More... | |
virtual void | setProperties (const std::string &propertiesJson, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)=0 |
Sets all properties from a string. More... | |
virtual void | setPropertiesWithString (const std::string &propertiesString, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >())=0 |
Sets all the declared properties from a string. More... | |
IPropertyManager * | setProperty (const std::string &name, const char *value) |
Specialised version of setProperty template method to handle const char *. More... | |
IPropertyManager * | setProperty (const std::string &name, const std::string &value) |
Specialised version of setProperty template method to handle std::string. More... | |
template<typename T > | |
IPropertyManager * | setProperty (const std::string &name, const T &value) |
Templated method to set the value of a PropertyWithValue. More... | |
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. More... | |
void | setPropertyGroup (const std::string &name, const std::string &group) |
Set the group for a given property. More... | |
virtual void | setPropertyOrdinal (const int &index, const std::string &value)=0 |
Set the value of a property by an index. More... | |
void | setPropertySettings (const std::string &name, std::unique_ptr< IPropertySettings > settings) |
virtual void | setPropertyValue (const std::string &name, const std::string &value)=0 |
Sets property value from a string. More... | |
virtual void | setPropertyValueFromJson (const std::string &name, const Json::Value &value)=0 |
Sets property value from a Json::Value. More... | |
virtual void | splitByTime (std::vector< SplittingInterval > &, std::vector< PropertyManager * >) const =0 |
virtual std::unique_ptr< Property > | takeProperty (const size_t index)=0 |
Removes the property from management and returns a pointer to it. More... | |
void | updatePropertyValues (const IPropertyManager &other) |
Update values of the existing properties. More... | |
virtual bool | validateProperties () const =0 |
Validates all the properties in the collection. More... | |
virtual | ~IPropertyManager ()=default |
Protected Member Functions | |
void | afterPropertySet (const std::string &propertyName) override |
Additional property processing. More... | |
virtual void | afterScattererPropertySet (const std::string &) |
This method should be re-implemented by subclasses for additional parameter processing. More... | |
void | declareProperties () override |
Declares basic properties, should not be overridden by subclasses, use declareScattererProperties instead. More... | |
virtual void | declareScattererProperties () |
This method should be implemented by subclasses for declaring additional properties. More... | |
Kernel::V3D | getPositionFromString (const std::string &positionString) const |
virtual void | setCell (const UnitCell &cell) |
Assigns a unit cell, which may be required for certain calculations. More... | |
virtual void | setPosition (const Kernel::V3D &position) |
Sets the position of the scatterer to the supplied coordinates - vector is wrapped to [0, 1). More... | |
Protected Member Functions inherited from Mantid::Geometry::BraggScatterer | |
void | afterPropertySet (const std::string &) override |
Base implementation does nothing, can be re-implemented by subclasses. More... | |
virtual void | declareProperties () |
Base implementation does nothing - for implementing classes only. More... | |
void | exposePropertyToComposite (const std::string &propertyName) |
Exposes the property with the supplied name to BraggScattererComposite. More... | |
const std::string & | getPropagatingGroupName () const |
Returns the group name that is used to mark properties that are propagated. More... | |
void | unexposePropertyFromComposite (const std::string &propertyName) |
Removes exposure to composite for specified property. More... | |
Protected Member Functions inherited from Mantid::Kernel::PropertyManager | |
Property * | getPointerToPropertyOrdinal (const int &index) const override |
Get a property by an index. More... | |
Property * | getPointerToPropertyOrNull (const std::string &name) const |
Get a property by name. More... | |
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. More... | |
virtual void | clear ()=0 |
Clears all properties under management. More... | |
virtual Property * | getPointerToPropertyOrdinal (const int &index) const =0 |
Get a property by an index. More... | |
template<typename T > | |
T | getValue (const std::string &name) const |
Templated method to get the value of a property. More... | |
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 |
Protected Attributes | |
UnitCell | m_cell |
Kernel::V3D | m_position |
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. More... | |
static std::string | getLogNameFromInvalidValuesFilter (const std::string &logName) |
static bool | isAnInvalidValuesFilterLog (const std::string &logName) |
Static Public Attributes inherited from Mantid::Kernel::PropertyManager | |
static const std::string | INVALID_VALUES_SUFFIX = "_invalid_values" |
This class provides an extension of BraggScatterer, suitable for scatterers that are part of a crystal structure.
Information about the unit cell can be set.
The unit cell is marked as exposed to BraggScattererComposite, so all members of one composite will have the same unit cell.
Definition at line 31 of file BraggScattererInCrystalStructure.h.
Mantid::Geometry::BraggScattererInCrystalStructure::BraggScattererInCrystalStructure | ( | ) |
Default constructor.
Definition at line 32 of file BraggScattererInCrystalStructure.cpp.
|
overrideprotectedvirtual |
Additional property processing.
Takes care of handling new property values.
Please note that derived classes should not re-implement this method, as the processing for the base properties is absolutely necessary. Instead, all deriving classes should override the method afterScattererPropertySet, which is called from this method.
Reimplemented from Mantid::Geometry::BraggScatterer.
Definition at line 89 of file BraggScattererInCrystalStructure.cpp.
References afterScattererPropertySet(), getPositionFromString(), Mantid::Kernel::PropertyManager::getProperty(), position, setCell(), setPosition, and Mantid::Geometry::strToUnitCell().
|
inlineprotectedvirtual |
This method should be re-implemented by subclasses for additional parameter processing.
Reimplemented in Mantid::Geometry::IsotropicAtomBraggScatterer.
Definition at line 43 of file BraggScattererInCrystalStructure.h.
Referenced by afterPropertySet().
|
overrideprotectedvirtual |
Declares basic properties, should not be overridden by subclasses, use declareScattererProperties instead.
Reimplemented from Mantid::Geometry::BraggScatterer.
Definition at line 52 of file BraggScattererInCrystalStructure.cpp.
References Mantid::Kernel::PropertyManager::declareProperty(), declareScattererProperties(), and Mantid::Geometry::BraggScatterer::exposePropertyToComposite().
|
inlineprotectedvirtual |
This method should be implemented by subclasses for declaring additional properties.
Reimplemented in Mantid::Geometry::IsotropicAtomBraggScatterer.
Definition at line 47 of file BraggScattererInCrystalStructure.h.
Referenced by declareProperties().
UnitCell Mantid::Geometry::BraggScattererInCrystalStructure::getCell | ( | ) | const |
Returns the cell which is currently set.
Definition at line 45 of file BraggScattererInCrystalStructure.cpp.
References m_cell.
Referenced by Mantid::Geometry::IsotropicAtomBraggScatterer::getDebyeWallerFactor().
Kernel::V3D Mantid::Geometry::BraggScattererInCrystalStructure::getPosition | ( | ) | const |
Returns the position of the scatterer.
Definition at line 42 of file BraggScattererInCrystalStructure.cpp.
References m_position.
|
protected |
Definition at line 65 of file BraggScattererInCrystalStructure.cpp.
References Mantid::Geometry::getTokenizedPositionString(), and position.
Referenced by afterPropertySet().
|
protectedvirtual |
Assigns a unit cell, which may be required for certain calculations.
Definition at line 48 of file BraggScattererInCrystalStructure.cpp.
References m_cell.
Referenced by afterPropertySet().
|
protectedvirtual |
Sets the position of the scatterer to the supplied coordinates - vector is wrapped to [0, 1).
Definition at line 37 of file BraggScattererInCrystalStructure.cpp.
References Mantid::Geometry::getWrappedVector(), m_position, and position.
|
protected |
Definition at line 57 of file BraggScattererInCrystalStructure.h.
|
protected |
Definition at line 56 of file BraggScattererInCrystalStructure.h.
Referenced by Mantid::Geometry::IsotropicAtomBraggScatterer::calculateStructureFactor(), getPosition(), and setPosition().