21 for (
size_t index = 0; index <
m_components.size(); ++index)
28 for (
size_t index = 0; index <
m_components.size(); ++index)
36 for (
size_t index = 0; index <
m_components.size(); ++index)
44 throw std::runtime_error(
"ReCompound::bottomZ() -> Error: "
45 "'this' contains no form factors.");
48 [&rotation](
IReParticle*
ff) { return ff->bottomZ(rotation); });
54 throw std::runtime_error(
"ReCompound::topZ() -> Error: "
55 "'this' contains no form factors.");
67 for (
size_t index = 0; index <
m_components.size(); ++index)
73 complex_t result(0.0, 0.0);
74 for (
size_t index = 0; index <
m_components.size(); ++index)
82 for (
size_t index = 0; index <
m_components.size(); ++index)
Defines and implements namespace BaseUtils::algo with some algorithms.
Defines class ReCompound.
Abstract base class for reprocessed particles.
IReParticle * clone() const override=0
Abstract base class for rotations.
A wrapper for underlying material implementation.
A reprocessed ParticleComposition.
complex_t theFF(const WavevectorInfo &wavevectors) const override
Returns scattering amplitude for complex wavevectors ki, kf.
SpinMatrix thePolFF(const WavevectorInfo &wavevectors) const override
Calculates and returns a polarized form factor calculation in DWBA.
void addFormFactor(const IReParticle &formfactor)
ReCompound * clone() const override
void setAmbientMaterial(const Material &material) override
Passes the material in which this particle is embedded.
double radialExtension() const override
Returns the (approximate in some cases) radial size of the particle of this form factor's shape....
double bottomZ(const IRotation *rotation) const override
Returns the z-coordinate of the lowest point in this shape after a given rotation.
std::vector< IReParticle * > m_components
double topZ(const IRotation *rotation) const override
Returns the z-coordinate of the lowest point in this shape after a given rotation.
Holds all wavevector information relevant for calculating form factors.
double max_value(const Iterator &begin, const Iterator &end, const Evaluator &evaluate)
Returns the maximum value of function evaluate as applied to the elements of an iterator range.
double min_value(const Iterator &begin, const Iterator &end, const Evaluator &evaluate)
Returns the minimum value of function evaluate as applied to the elements of an iterator range.