Skip to content
Snippets Groups Projects
Commit fe158076 authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

setName for formfactors

parent 590eda24
No related branches found
No related tags found
No related merge requests found
Showing
with 77 additions and 41 deletions
......@@ -25,11 +25,11 @@ void TestBugs::test_item339()
{
std::cout << "TestBugs::test_item339() -> " << std::endl;
const IMaterial *mAmbience =
MaterialManager::getHomogeneousMaterial("Air", 0.0, 0.0 );
// const IMaterial *mAmbience =
// MaterialManager::getHomogeneousMaterial("Air", 0.0, 0.0 );
const IMaterial *mSubstrate =
MaterialManager::getHomogeneousMaterial("Substrate", 6e-6, 2e-8 );
// const IMaterial *mSubstrate =
// MaterialManager::getHomogeneousMaterial("Substrate", 6e-6, 2e-8 );
complex_t n_particle(1.0-6e-4, 2e-8);
const IMaterial *mParticle =
......
......@@ -29,8 +29,7 @@ class FormFactorBox : public IFormFactorBorn
~FormFactorBox() {}
FormFactorBox *clone() const
{ return new FormFactorBox(m_radius, m_width, m_height ); }
FormFactorBox *clone() const;
virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
......
......@@ -61,8 +61,11 @@ class FormFactorDecoratorDebyeWaller : public IFormFactorDecorator
virtual FormFactorDecoratorDebyeWaller *clone() const
{
return new FormFactorDecoratorDebyeWaller(
FormFactorDecoratorDebyeWaller *result = new FormFactorDecoratorDebyeWaller(
mp_form_factor->clone(), m_h_dw_factor, m_r_dw_factor);
result->setName(getName());
return result;
}
virtual complex_t evaluate(
......
......@@ -45,7 +45,9 @@ inline FormFactorDecoratorFactor::FormFactorDecoratorFactor(
inline FormFactorDecoratorFactor* FormFactorDecoratorFactor::clone() const
{
return new FormFactorDecoratorFactor(mp_form_factor->clone(), m_factor);
FormFactorDecoratorFactor *result = new FormFactorDecoratorFactor(mp_form_factor->clone(), m_factor);
result->setName(getName());
return result;
}
inline complex_t FormFactorDecoratorFactor::evaluate(const cvector_t& k_i, const Bin1DCVector& k_f_bin, double alpha_i, double alpha_f) const
......
......@@ -28,6 +28,8 @@ class FormFactorDecoratorRefractiveIndex : public FormFactorDecoratorFactor
FormFactorDecoratorRefractiveIndex *clone() const;
virtual complex_t getAmbientRefractiveIndex() const { return m_refractive_index; }
virtual void setAmbientRefractiveIndex(const complex_t& ambient_refractive_index);
private:
complex_t getRefractiveIndexFactor(const complex_t& ambient_index, const complex_t& particle_index) const;
......@@ -50,10 +52,11 @@ inline FormFactorDecoratorRefractiveIndex::~FormFactorDecoratorRefractiveIndex()
inline FormFactorDecoratorRefractiveIndex* FormFactorDecoratorRefractiveIndex::clone() const
{
FormFactorDecoratorRefractiveIndex *p_new =
FormFactorDecoratorRefractiveIndex *result =
new FormFactorDecoratorRefractiveIndex(mp_form_factor->clone(), m_refractive_index);
p_new->m_factor = m_factor;
return p_new;
result->m_factor = m_factor;
result->setName(getName());
return result;
}
inline void FormFactorDecoratorRefractiveIndex::setAmbientRefractiveIndex(
......
......@@ -36,11 +36,7 @@ class FormFactorDecoratorTransformation : public IFormFactorDecorator
virtual ~FormFactorDecoratorTransformation() {}
virtual FormFactorDecoratorTransformation *clone() const
{
return new FormFactorDecoratorTransformation(
mp_form_factor->clone(), mP_transform);
}
virtual FormFactorDecoratorTransformation *clone() const;
virtual complex_t evaluate(
const cvector_t& k_i, const Bin1DCVector& k_f_bin,
......
......@@ -29,8 +29,7 @@ class FormFactorSphere : public IFormFactorBorn
~FormFactorSphere() { delete m_integrator; }
virtual FormFactorSphere *clone() const
{ return new FormFactorSphere(m_radius, m_height); }
virtual FormFactorSphere *clone() const;
virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
......
......@@ -66,9 +66,10 @@ inline FormFactorSphereGaussianRadius::FormFactorSphereGaussianRadius(double mea
inline FormFactorSphereGaussianRadius* FormFactorSphereGaussianRadius::clone() const
{
FormFactorSphereGaussianRadius *p_clone =
FormFactorSphereGaussianRadius *result =
new FormFactorSphereGaussianRadius(m_mean, m_sigma);
return p_clone;
result->setName(getName());
return result;
}
inline FormFactorSphereGaussianRadius::~FormFactorSphereGaussianRadius()
......
......@@ -16,6 +16,15 @@
#include "FormFactorBox.h"
#include "MathFunctions.h"
FormFactorBox *FormFactorBox::clone() const
{
FormFactorBox *result = new FormFactorBox(m_radius, m_width, m_height);
result->setName(getName());
return result;
}
complex_t FormFactorBox::evaluate_for_q(const cvector_t& q) const
{
complex_t qxR = m_radius*q.x();
......
......@@ -41,8 +41,9 @@ void FormFactorCone::init_parameters()
FormFactorCone* FormFactorCone::clone() const
{
FormFactorCone* ffCone = new FormFactorCone(m_radius, m_height, m_alpha);
return ffCone;
FormFactorCone* result = new FormFactorCone(m_radius, m_height, m_alpha);
result->setName(getName());
return result;
}
//! Real part of the integral.
......
......@@ -23,6 +23,7 @@ FormFactorCrystal::FormFactorCrystal(
, m_ambient_refractive_index(ambient_refractive_index)
, m_max_rec_length(0.0)
{
setName("FormFactorCrystal");
mp_particle = p_crystal.createBasis();
mp_basis_form_factor = mp_particle->createFormFactor();
mp_meso_form_factor = meso_crystal_form_factor.clone();
......@@ -40,9 +41,10 @@ FormFactorCrystal::~FormFactorCrystal()
FormFactorCrystal* FormFactorCrystal::clone() const
{
Crystal np_crystal(*mp_particle, m_lattice);
FormFactorCrystal *p_new = new FormFactorCrystal(np_crystal,
FormFactorCrystal *result = new FormFactorCrystal(np_crystal,
*mp_meso_form_factor, m_ambient_refractive_index);
return p_new;
result->setName(getName());
return result;
}
void FormFactorCrystal::setAmbientRefractiveIndex(
......
......@@ -38,7 +38,9 @@ void FormFactorCylinder::init_parameters()
FormFactorCylinder* FormFactorCylinder::clone() const
{
return new FormFactorCylinder(m_height, m_radius);
FormFactorCylinder *result = new FormFactorCylinder(m_height, m_radius);
result->setName(getName());
return result;
}
complex_t FormFactorCylinder::evaluate_for_q(const cvector_t& q) const
......
......@@ -51,9 +51,10 @@ void FormFactorDWBA::calculateTerms(const cvector_t& k_i, const Bin1DCVector& k_
FormFactorDWBA* FormFactorDWBA::clone() const
{
FormFactorDWBA *p_new = new FormFactorDWBA(mp_form_factor->clone());
p_new->setReflectionTransmissionFunction(*mp_RT);
return p_new;
FormFactorDWBA *result = new FormFactorDWBA(mp_form_factor->clone());
result->setReflectionTransmissionFunction(*mp_RT);
result->setName(getName());
return result;
}
......@@ -15,6 +15,16 @@
#include "FormFactorDecoratorTransformation.h"
// Everything done inline: Efficiency reasons? Proven useful?
FormFactorDecoratorTransformation *FormFactorDecoratorTransformation::clone() const
{
FormFactorDecoratorTransformation *result = new FormFactorDecoratorTransformation(
mp_form_factor->clone(), mP_transform);
result->setName(getName());
return result;
}
......@@ -36,8 +36,9 @@ void FormFactorFullSphere::init_parameters()
FormFactorFullSphere* FormFactorFullSphere::clone() const
{
FormFactorFullSphere *p_clone = new FormFactorFullSphere(m_radius);
return p_clone;
FormFactorFullSphere *result = new FormFactorFullSphere(m_radius);
result->setName(getName());
return result;
}
complex_t FormFactorFullSphere::evaluate_for_q(const cvector_t& q) const
......
......@@ -36,9 +36,10 @@ void FormFactorFullSpheroid::init_parameters()
FormFactorFullSpheroid* FormFactorFullSpheroid::clone() const
{
FormFactorFullSpheroid* ffFullSpheroid =
FormFactorFullSpheroid* result =
new FormFactorFullSpheroid(m_radius, m_height);
return ffFullSpheroid;
result->setName(getName());
return result;
}
complex_t FormFactorFullSpheroid::evaluate_for_q(const cvector_t& q) const
......
......@@ -47,8 +47,9 @@ void FormFactorGauss::init_parameters()
FormFactorGauss* FormFactorGauss::clone() const
{
FormFactorGauss *p_clone = new FormFactorGauss(m_height, m_width);
return p_clone;
FormFactorGauss *result = new FormFactorGauss(m_height, m_width);
result->setName(getName());
return result;
}
complex_t FormFactorGauss::evaluate_for_q(const cvector_t& q) const
......
......@@ -44,9 +44,10 @@ void FormFactorHemiSpheroid::init_parameters()
FormFactorHemiSpheroid* FormFactorHemiSpheroid::clone() const
{
FormFactorHemiSpheroid* ffSpheroid =
FormFactorHemiSpheroid* result =
new FormFactorHemiSpheroid(m_radius, m_width, m_height);
return ffSpheroid;
result->setName(getName());
return result;
}
//! Real part of the integral.
......
......@@ -45,8 +45,9 @@ void FormFactorLorentz::init_parameters()
FormFactorLorentz* FormFactorLorentz::clone() const
{
FormFactorLorentz *p_clone = new FormFactorLorentz(m_height, m_width);
return p_clone;
FormFactorLorentz *result = new FormFactorLorentz(m_height, m_width);
result->setName(getName());
return result;
}
complex_t FormFactorLorentz::evaluate_for_q(const cvector_t& q) const
......
......@@ -20,13 +20,16 @@ FormFactorParallelepiped::FormFactorParallelepiped(double height, double radius)
: m_height(height)
, m_radius(radius)
{
setName("FormFactorParallelepiped");
init_parameters();
}
FormFactorParallelepiped* FormFactorParallelepiped::clone() const
{
FormFactorParallelepiped *p_clone =
FormFactorParallelepiped *result =
new FormFactorParallelepiped(m_height, m_radius);
return p_clone;
result->setName(getName());
return result;
}
complex_t FormFactorParallelepiped::evaluate_for_q(const cvector_t& q) const
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment