diff --git a/App/src/TestDetectorResolution.cpp b/App/src/TestDetectorResolution.cpp index 1f9a8768bdc62e61a387296e56d8c1552ad348f7..962b44165fbda23a7eee0237b6cb3687307c51b8 100644 --- a/App/src/TestDetectorResolution.cpp +++ b/App/src/TestDetectorResolution.cpp @@ -9,6 +9,7 @@ #include "LayerDecorator.h" #include "ParticleDecoration.h" #include "MathFunctions.h" +#include "ResolutionFunction2DSimple.h" namespace { @@ -41,7 +42,8 @@ void TestDetectorResolution::execute() experiment.setSample(mp_sample); experiment.setDetectorParameters(100, 0.0*Units::degree, 2.0*Units::degree ,100, 0.0*Units::degree, 2.0*Units::degree); - experiment.setDetectorResolutionFunction(&testResolutionFunction); + IResolutionFunction2D *p_resolution_function = new ResolutionFunction2DSimple(0.001, 0.001); + experiment.setDetectorResolutionFunction(p_resolution_function); experiment.setBeamParameters(1.0*Units::angstrom, -0.2*Units::degree, 0.0*Units::degree); experiment.runSimulation(); mp_intensity_output = experiment.getOutputDataClone(); diff --git a/App/src/TestMesoCrystal1.cpp b/App/src/TestMesoCrystal1.cpp index 05201afc253bf4f2d1ca65cbc4ea5b67a6c97278..a8402837e9e804728fc7d7489892799d584565e6 100644 --- a/App/src/TestMesoCrystal1.cpp +++ b/App/src/TestMesoCrystal1.cpp @@ -14,19 +14,11 @@ #include "MathFunctions.h" #include "Utils.h" #include "FormFactorDecoratorDebyeWaller.h" +#include "ResolutionFunction2DSimple.h" /* ************************************************************************* */ // global functions /* ************************************************************************* */ -namespace { - double testResolutionFunction(double u, double v) - { - double sigma_u = 0.0002; - double sigma_v = 0.0002; - return MathFunctions::IntegratedGaussian(u, 0.0, sigma_u) - * MathFunctions::IntegratedGaussian(v, 0.0, sigma_v); - } -} /* ************************************************************************* */ // TestMesoCrystal1 member definitions @@ -53,7 +45,7 @@ void TestMesoCrystal1::execute() , 256, -0.4*Units::degree, 0.066); // experiment.setDetectorParameters(2, 0.96*Units::degree, 0.962*Units::degree // , 2 , 0.376*Units::degree, 0.378*Units::degree); - experiment.setDetectorResolutionFunction(&testResolutionFunction); + experiment.setDetectorResolutionFunction(new ResolutionFunction2DSimple(0.0002, 0.0002)); experiment.setBeamParameters(1.77*Units::angstrom, -0.4*Units::degree, 0.0*Units::degree); experiment.setBeamIntensity(8e12); @@ -77,26 +69,26 @@ void TestMesoCrystal1::execute() // MesoCrystalBuilder member definitions /* ************************************************************************* */ MesoCrystalBuilder::MesoCrystalBuilder() -: m_meso_radius(1000*Units::nanometer) -, m_surface_filling_ratio(0.25) -, m_meso_height(0.5*Units::micrometer) -, m_sigma_meso_height(4*Units::nanometer) -, m_sigma_meso_radius(50*Units::nanometer) -, m_lattice_length_a(6.2*Units::nanometer) -, m_nanoparticle_radius(4.3*Units::nanometer) -, m_sigma_nanoparticle_radius(0.14*Units::nanometer) -, m_sigma_lattice_length_a(1.5*Units::nanometer) -, m_roughness(1.0*Units::nanometer) //: m_meso_radius(1000*Units::nanometer) -//, m_surface_filling_ratio(0.100013) +//, m_surface_filling_ratio(0.25) //, m_meso_height(0.5*Units::micrometer) -//, m_sigma_meso_height(199.989*Units::nanometer) -//, m_sigma_meso_radius(3.11584*Units::nanometer) -//, m_lattice_length_a(6.2128*Units::nanometer) -//, m_nanoparticle_radius(3.82322*Units::nanometer) -//, m_sigma_nanoparticle_radius(0.371165*Units::nanometer) -//, m_sigma_lattice_length_a(1.2186*Units::nanometer) -//, m_roughness(49.979*Units::nanometer) +//, m_sigma_meso_height(4*Units::nanometer) +//, m_sigma_meso_radius(50*Units::nanometer) +//, m_lattice_length_a(6.2*Units::nanometer) +//, m_nanoparticle_radius(4.3*Units::nanometer) +//, m_sigma_nanoparticle_radius(0.14*Units::nanometer) +//, m_sigma_lattice_length_a(1.5*Units::nanometer) +//, m_roughness(1.0*Units::nanometer) +: m_meso_radius(570.103*Units::nanometer) +, m_surface_filling_ratio(0.113898) +, m_meso_height(423.33*Units::nanometer) +, m_sigma_meso_height(10.0608*Units::nanometer) +, m_sigma_meso_radius(10.0882*Units::nanometer) +, m_lattice_length_a(6.21014*Units::nanometer) +, m_nanoparticle_radius(5.99176*Units::nanometer) +, m_sigma_nanoparticle_radius(0.0681535*Units::nanometer) +, m_sigma_lattice_length_a(2.61389*Units::nanometer) +, m_roughness(28.0626*Units::nanometer) { init_parameters(); } diff --git a/App/src/TestMesoCrystal2.cpp b/App/src/TestMesoCrystal2.cpp index a27b41030b08543cd05b4c2f939310872c77689b..823b2e3284d941a9e73886d36c86971b7614c9c3 100644 --- a/App/src/TestMesoCrystal2.cpp +++ b/App/src/TestMesoCrystal2.cpp @@ -29,19 +29,11 @@ #include "TCanvas.h" #include "TH2D.h" +#include "ResolutionFunction2DSimple.h" /* ************************************************************************* */ // global functions /* ************************************************************************* */ -namespace { - double testResolutionFunction(double u, double v) - { - double sigma_u = 0.0002; - double sigma_v = 0.0002; - return MathFunctions::IntegratedGaussian(u, 0.0, sigma_u) - * MathFunctions::IntegratedGaussian(v, 0.0, sigma_v); - } -} /* ************************************************************************* */ // TestMesoCrystal2 member definitions @@ -112,12 +104,17 @@ void TestMesoCrystal2::execute() TRange<double>(0.1, 0.4) ); fitSuite->addFitParameter("*/roughness", 1.0*Units::nanometer, 0.1*Units::nanometer, TRange<double>(0.01*Units::nanometer, 50.0*Units::nanometer) ); + fitSuite->addFitParameter("*/ResolutionFunction2D/sigma_x", 0.0002, 0.00001, + TRange<double>(0.0, 0.002) ); + fitSuite->addFitParameter("*/ResolutionFunction2D/sigma_y", 0.0002, 0.00001, + TRange<double>(0.0, 0.002) ); IsGISAXSTools::setMinimum(1e2); - FitSuiteObserverWriteTree *writeTreeObserver = new FitSuiteObserverWriteTree("~/fitmeso003.tree"); + std::string tree_file_name = Utils::FileSystem::GetHomePath()+"Examples/MesoCrystals/ex02_fitspheres/mesofit.tree"; + FitSuiteObserverWriteTree *writeTreeObserver = new FitSuiteObserverWriteTree(tree_file_name); fitSuite->attachObserver(writeTreeObserver); -// FitSuiteObserverDraw *drawObserver = new FitSuiteObserverDraw(canvas_name); -// fitSuite->attachObserver(drawObserver); + FitSuiteObserverDraw *drawObserver = new FitSuiteObserverDraw(canvas_name); + fitSuite->attachObserver(drawObserver); fitSuite->runFit(); @@ -137,7 +134,7 @@ void TestMesoCrystal2::initializeExperiment(const OutputData<double> *output_dat mp_experiment->setSampleBuilder( mp_sample_builder ); mp_experiment->setBeamParameters(1.77*Units::angstrom, -0.4*Units::degree, 0.0*Units::degree); mp_experiment->setBeamIntensity(8e12); - mp_experiment->setDetectorResolutionFunction(&testResolutionFunction); + mp_experiment->setDetectorResolutionFunction(new ResolutionFunction2DSimple(0.0002, 0.0002)); if( !output_data ) { // initialize default detector diff --git a/Core/Algorithms/inc/ConvolutionDetectorResolution.h b/Core/Algorithms/inc/ConvolutionDetectorResolution.h index ecd9c131cb7b74789915f509817fc1b2d7a4ab24..8eddafb51948cbca7b72538576f1603439d307ec 100644 --- a/Core/Algorithms/inc/ConvolutionDetectorResolution.h +++ b/Core/Algorithms/inc/ConvolutionDetectorResolution.h @@ -15,6 +15,7 @@ //! @date Jul 10, 2012 #include "IDetectorResolution.h" +#include "IResolutionFunction2D.h" //- ------------------------------------------------------------------- //! @class ConvolutionDetectorResolution @@ -26,20 +27,27 @@ class ConvolutionDetectorResolution : public IDetectorResolution { public: typedef double (*cumulative_DF_1d)(double); - typedef double (*cumulative_DF_2d)(double, double); //! Constructor taking a 1 dimensional resolution function as argument ConvolutionDetectorResolution(cumulative_DF_1d res_function_1d); //! Constructor taking a 2 dimensional resolution function as argument - ConvolutionDetectorResolution(cumulative_DF_2d res_function_2d); + ConvolutionDetectorResolution(IResolutionFunction2D *p_res_function_2d); //! Destructor virtual ~ConvolutionDetectorResolution(); //! Apply the encapsulated resolution function to the given intensity map by using a convolution virtual void applyDetectorResolution(OutputData<double> *p_intensity_map) const; + + //! add parameters from local pool to external pool and call recursion over direct children + virtual std::string addParametersToExternalPool(std::string path, ParameterPool *external_pool, int copy_number=-1) const; + +protected: + //! initialize pool parameters, i.e. register some of class members for later access via parameter pool + virtual void init_parameters(); + private: size_t m_dimension; cumulative_DF_1d m_res_function_1d; - cumulative_DF_2d m_res_function_2d; + IResolutionFunction2D *mp_res_function_2d; void apply1dConvolution(const std::vector<NamedVectorBase *> &axes, OutputData<double> *p_intensity_map) const; void apply2dConvolution(const std::vector<NamedVectorBase *> &axes, OutputData<double> *p_intensity_map) const; double getIntegratedPDF1d(double x, double step) const; diff --git a/Core/Algorithms/inc/Detector.h b/Core/Algorithms/inc/Detector.h index e4816d4bf4ef19696a139c19aa8dde609df9c198..d65e5886b98a37a36b7f5feacf7c5f7c99bc35a9 100644 --- a/Core/Algorithms/inc/Detector.h +++ b/Core/Algorithms/inc/Detector.h @@ -34,6 +34,9 @@ public: void setDetectorResolution(IDetectorResolution *p_detector_resolution) { mp_detector_resolution = p_detector_resolution; } void applyDetectorResolution(OutputData<double> *p_intensity_map) const; + //! add parameters from local pool to external pool and call recursion over direct children + virtual std::string addParametersToExternalPool(std::string path, ParameterPool *external_pool, int copy_number=-1) const; + protected: //! initialize pool parameters, i.e. register some of class members for later access via parameter pool virtual void init_parameters(); diff --git a/Core/Algorithms/inc/GISASExperiment.h b/Core/Algorithms/inc/GISASExperiment.h index 778919bdf0f7406d172bed03b1a5236da9e04e57..15b105aac2e4ca15dc37cc47f353c1f4d69b607a 100644 --- a/Core/Algorithms/inc/GISASExperiment.h +++ b/Core/Algorithms/inc/GISASExperiment.h @@ -16,7 +16,7 @@ #include "Experiment.h" -#include "ConvolutionDetectorResolution.h" +#include "IResolutionFunction2D.h" class GISASExperiment : public Experiment @@ -31,7 +31,7 @@ public: void setDetectorParameters(size_t n_phi, double phi_f_min, double phi_f_max, size_t n_alpha, double alpha_f_min, double alpha_f_max, bool isgisaxs_style=false); - void setDetectorResolutionFunction(ConvolutionDetectorResolution::cumulative_DF_2d resolution_function); + void setDetectorResolutionFunction(IResolutionFunction2D *p_resolution_function); void smearIntensityFromZAxisTilting(); private: diff --git a/Core/Algorithms/inc/IDetectorResolution.h b/Core/Algorithms/inc/IDetectorResolution.h index 9301508d7c60e6ec2671b3c3dd3fe700ca55d787..6d2c29ccd6a32359cce16edb00baa754f855b75f 100644 --- a/Core/Algorithms/inc/IDetectorResolution.h +++ b/Core/Algorithms/inc/IDetectorResolution.h @@ -16,8 +16,9 @@ //! @date Jul 10, 2012 #include "OutputData.h" +#include "IParameterized.h" -class IDetectorResolution +class IDetectorResolution : public IParameterized { public: //! Destructor diff --git a/Core/Algorithms/inc/IResolutionFunction2D.h b/Core/Algorithms/inc/IResolutionFunction2D.h new file mode 100644 index 0000000000000000000000000000000000000000..065be7821bbbeba4344cc6ad2eff6ab36f71c2df --- /dev/null +++ b/Core/Algorithms/inc/IResolutionFunction2D.h @@ -0,0 +1,27 @@ +#ifndef IRESOLUTIONFUNCTION2D_H_ +#define IRESOLUTIONFUNCTION2D_H_ +// ******************************************************************** +// * The BornAgain project * +// * Simulation of neutron and x-ray scattering at grazing incidence * +// * * +// * LICENSE AND DISCLAIMER * +// * Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris * +// * eget quam orci. Quisque porta varius dui, quis posuere nibh * +// * mollis quis. Mauris commodo rhoncus porttitor. * +// ******************************************************************** +//! @file IResolutionFunction2D.h +//! @brief Definition of IResolutionFunction2D interface +//! @author Scientific Computing Group at FRM II +//! @date Oct 16, 2012 + +#include "IParameterized.h" + +class IResolutionFunction2D : public IParameterized +{ +public: + virtual ~IResolutionFunction2D() {} + + virtual double evaluateCDF(double x, double y) const=0; +}; + +#endif /* IRESOLUTIONFUNCTION2D_H_ */ diff --git a/Core/Algorithms/inc/ResolutionFunction2DSimple.h b/Core/Algorithms/inc/ResolutionFunction2DSimple.h new file mode 100644 index 0000000000000000000000000000000000000000..f4dae33431ccbdbeab57214ed0baedc26c69cd86 --- /dev/null +++ b/Core/Algorithms/inc/ResolutionFunction2DSimple.h @@ -0,0 +1,34 @@ +#ifndef RESOLUTIONFUNCTION2DSIMPLE_H_ +#define RESOLUTIONFUNCTION2DSIMPLE_H_ +// ******************************************************************** +// * The BornAgain project * +// * Simulation of neutron and x-ray scattering at grazing incidence * +// * * +// * LICENSE AND DISCLAIMER * +// * Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris * +// * eget quam orci. Quisque porta varius dui, quis posuere nibh * +// * mollis quis. Mauris commodo rhoncus porttitor. * +// ******************************************************************** +//! @file ResolutionFunction2DSimple.h +//! @brief Definition of ResolutionFunction2DSimple class +//! @author Scientific Computing Group at FRM II +//! @date Oct 16, 2012 + +#include "IResolutionFunction2D.h" + +class ResolutionFunction2DSimple : public IResolutionFunction2D +{ +public: + ResolutionFunction2DSimple(double sigma_x, double sigma_y); + virtual ~ResolutionFunction2DSimple(); + + virtual double evaluateCDF(double x, double y) const; +protected: + virtual void init_parameters(); +private: + double m_sigma_x; + double m_sigma_y; +}; + + +#endif /* RESOLUTIONFUNCTION2DSIMPLE_H_ */ diff --git a/Core/Algorithms/src/ConvolutionDetectorResolution.cpp b/Core/Algorithms/src/ConvolutionDetectorResolution.cpp index 7c092acd789a2639ddcf3650ec6c6cf4f328ff85..6999dbc6cbc722a6637349c05745fbf72db3976d 100644 --- a/Core/Algorithms/src/ConvolutionDetectorResolution.cpp +++ b/Core/Algorithms/src/ConvolutionDetectorResolution.cpp @@ -9,20 +9,23 @@ ConvolutionDetectorResolution::ConvolutionDetectorResolution( cumulative_DF_1d res_function_1d) : m_dimension(1) , m_res_function_1d(res_function_1d) -, m_res_function_2d(0) +, mp_res_function_2d(0) { + setName("ConvolutionDetectorResolution"); } ConvolutionDetectorResolution::ConvolutionDetectorResolution( - cumulative_DF_2d res_function_2d) + IResolutionFunction2D *p_res_function_2d) : m_dimension(2) , m_res_function_1d(0) -, m_res_function_2d(res_function_2d) +, mp_res_function_2d(p_res_function_2d) { + setName("ConvolutionDetectorResolution"); } ConvolutionDetectorResolution::~ConvolutionDetectorResolution() { + delete mp_res_function_2d; } void ConvolutionDetectorResolution::applyDetectorResolution( @@ -44,6 +47,24 @@ void ConvolutionDetectorResolution::applyDetectorResolution( } } +std::string ConvolutionDetectorResolution::addParametersToExternalPool( + std::string path, ParameterPool* external_pool, int copy_number) const +{ + // add own parameters + std::string new_path = IParameterized::addParametersToExternalPool(path, external_pool, copy_number); + + // add parameters of the 2D resolution function + if (mp_res_function_2d) { + mp_res_function_2d->addParametersToExternalPool(new_path, external_pool, -1); + } + + return new_path; +} + +void ConvolutionDetectorResolution::init_parameters() +{ +} + void ConvolutionDetectorResolution::apply1dConvolution( const std::vector<NamedVectorBase*>& axes, OutputData<double>* p_intensity_map) const @@ -83,7 +104,7 @@ void ConvolutionDetectorResolution::apply2dConvolution( const std::vector<NamedVectorBase*>& axes, OutputData<double>* p_intensity_map) const { - if (m_res_function_2d==0) { + if (mp_res_function_2d==0) { throw LogicErrorException("No 2d resolution function present for convolution of 2d data."); } if (axes.size() != 2) { @@ -158,7 +179,7 @@ double ConvolutionDetectorResolution::getIntegratedPDF2d(double x, double xmax = x + halfstepx; double ymin = y - halfstepy; double ymax = y + halfstepy; - double result = m_res_function_2d(xmax, ymax) - m_res_function_2d(xmax, ymin) - - m_res_function_2d(xmin, ymax) + m_res_function_2d(xmin, ymin); + double result = mp_res_function_2d->evaluateCDF(xmax, ymax) - mp_res_function_2d->evaluateCDF(xmax, ymin) + - mp_res_function_2d->evaluateCDF(xmin, ymax) + mp_res_function_2d->evaluateCDF(xmin, ymin); return result; } diff --git a/Core/Algorithms/src/Detector.cpp b/Core/Algorithms/src/Detector.cpp index 49b1eca66341412c727c532081b1d4ed87417a76..20e1944befd006fa3f43140bb57cce7ed6980ce3 100644 --- a/Core/Algorithms/src/Detector.cpp +++ b/Core/Algorithms/src/Detector.cpp @@ -38,6 +38,18 @@ void Detector::applyDetectorResolution( } } +std::string Detector::addParametersToExternalPool(std::string path, + ParameterPool* external_pool, int copy_number) const +{ + // add own parameters + std::string new_path = IParameterized::addParametersToExternalPool(path, external_pool, copy_number); + + // add parameters of the resolution function + mp_detector_resolution->addParametersToExternalPool(new_path, external_pool, -1); + + return new_path; +} + void Detector::init_parameters() { } diff --git a/Core/Algorithms/src/Experiment.cpp b/Core/Algorithms/src/Experiment.cpp index db9baed1389558f11489b5578b4e077f5034a575..0e377fcf75b7308cad5d125adf23215d592fed2b 100644 --- a/Core/Algorithms/src/Experiment.cpp +++ b/Core/Algorithms/src/Experiment.cpp @@ -138,10 +138,6 @@ std::string Experiment::addParametersToExternalPool(std::string path, mp_sample->addParametersToExternalPool(sample_path, external_pool, -1); } - // Output parameterpool -// for(ParameterPool::iterator_t ip=external_pool->begin(); ip!=external_pool->end(); ip++) { -// std::cout << (*ip).first << " " << (*ip).second << std::endl; -// } return new_path; } diff --git a/Core/Algorithms/src/GISASExperiment.cpp b/Core/Algorithms/src/GISASExperiment.cpp index 394920138a893101c6777b122c5e407676ee1cf7..53b117805f04bbd0f68be664cd17b159ef5d6dd0 100644 --- a/Core/Algorithms/src/GISASExperiment.cpp +++ b/Core/Algorithms/src/GISASExperiment.cpp @@ -5,6 +5,8 @@ #include "DoubleToComplexInterpolatingFunction.h" #include "MathFunctions.h" #include "ProgramOptions.h" +#include "ConvolutionDetectorResolution.h" + #include <boost/thread.hpp> @@ -107,10 +109,9 @@ void GISASExperiment::setDetectorParameters(size_t n_phi, double phi_f_min, doub updateIntensityMapAxes(); } -void GISASExperiment::setDetectorResolutionFunction( - ConvolutionDetectorResolution::cumulative_DF_2d resolution_function) +void GISASExperiment::setDetectorResolutionFunction(IResolutionFunction2D *p_resolution_function) { - m_detector.setDetectorResolution(new ConvolutionDetectorResolution(resolution_function)); + m_detector.setDetectorResolution(new ConvolutionDetectorResolution(p_resolution_function)); } void GISASExperiment::smearIntensityFromZAxisTilting() diff --git a/Core/Algorithms/src/ResolutionFunction2DSimple.cpp b/Core/Algorithms/src/ResolutionFunction2DSimple.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fddad91f54ce0d89144c01f18bc46f6c08ecd333 --- /dev/null +++ b/Core/Algorithms/src/ResolutionFunction2DSimple.cpp @@ -0,0 +1,28 @@ +#include "ResolutionFunction2DSimple.h" +#include "MathFunctions.h" + +ResolutionFunction2DSimple::ResolutionFunction2DSimple(double sigma_x, + double sigma_y) +: m_sigma_x(sigma_x) +, m_sigma_y(sigma_y) +{ + setName("ResolutionFunction2D"); + init_parameters(); +} + +ResolutionFunction2DSimple::~ResolutionFunction2DSimple() +{ +} + +double ResolutionFunction2DSimple::evaluateCDF(double x, double y) const +{ + return MathFunctions::IntegratedGaussian(x, 0.0, m_sigma_x) + * MathFunctions::IntegratedGaussian(y, 0.0, m_sigma_y); +} + +void ResolutionFunction2DSimple::init_parameters() +{ + getParameterPool()->clear(); + getParameterPool()->registerParameter("sigma_x", &m_sigma_x); + getParameterPool()->registerParameter("sigma_y", &m_sigma_y); +} diff --git a/Core/Core.pro b/Core/Core.pro index 32568c7165ec4beb91ccf6468e908534a0dfa298..510ae680ae4e9512070ae6a34e1847bec55b141b 100644 --- a/Core/Core.pro +++ b/Core/Core.pro @@ -34,6 +34,7 @@ SOURCES += \ Algorithms/src/MultiLayerDWBASimulation.cpp \ Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp \ Algorithms/src/OpticalFresnel.cpp \ + Algorithms/src/ResolutionFunction2DSimple.cpp \ \ FormFactors/src/FormFactorDWBA.cpp \ FormFactors/src/FormFactorDWBAConstZ.cpp \ @@ -126,16 +127,18 @@ HEADERS += \ Algorithms/inc/GISASExperiment.h \ Algorithms/inc/IDetectorResolution.h \ Algorithms/inc/IFittingDataSelector.h \ + Algorithms/inc/IInterferenceFunctionStrategy.h \ + Algorithms/inc/IResolutionFunction2D.h \ Algorithms/inc/ISampleBuilder.h \ Algorithms/inc/ISimulation.h \ Algorithms/inc/ISquaredFunction.h \ - Algorithms/inc/IInterferenceFunctionStrategy.h \ Algorithms/inc/LayerDecoratorDWBASimulation.h \ Algorithms/inc/LayerDWBASimulation.h \ Algorithms/inc/LocalMonodisperseApproximationStrategy.h \ Algorithms/inc/MultiLayerDWBASimulation.h \ Algorithms/inc/MultiLayerRoughnessDWBASimulation.h \ Algorithms/inc/OpticalFresnel.h \ + Algorithms/inc/ResolutionFunction2DSimple.h \ \ FormFactors/inc/FormFactorDWBA.h \ FormFactors/inc/FormFactorDWBAConstZ.h \ diff --git a/Core/Tools/inc/Types.h b/Core/Tools/inc/Types.h index a6f322988b6d442c45074fa98ee2260f4107888e..f2af0f6c7166dfcfd8f55bb306950e397700a045 100644 --- a/Core/Tools/inc/Types.h +++ b/Core/Tools/inc/Types.h @@ -30,7 +30,7 @@ typedef std::pair<complex_t, complex_t > complexpair_t; /* ************************************************************************* */ -// container for holding kvectors with optimied location/deallocation +// container for holding kvectors with optimised location/deallocation /* ************************************************************************* */ class KVectorContainer { public: diff --git a/XCode_GISASFW.xcodeproj/project.pbxproj b/XCode_GISASFW.xcodeproj/project.pbxproj index 0cd64643d75e9ade428f6c9a42e05741f60d6877..af290b66b4dc9cce72b7ef5a572a08fe909f8db5 100644 --- a/XCode_GISASFW.xcodeproj/project.pbxproj +++ b/XCode_GISASFW.xcodeproj/project.pbxproj @@ -42,15 +42,6 @@ 62224814160CB853008205AC /* Point3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6222229E160CB745008205AC /* Point3D.cpp */; }; 62224815160CB853008205AC /* Transform3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6222229F160CB745008205AC /* Transform3D.cpp */; }; 62224816160CB853008205AC /* Vector3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222A0160CB745008205AC /* Vector3D.cpp */; }; - 62224821160CB853008205AC /* PythonInterface_classes_1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222AE160CB745008205AC /* PythonInterface_classes_1.cpp */; }; - 62224822160CB853008205AC /* PythonInterface_classes_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222AF160CB745008205AC /* PythonInterface_classes_2.cpp */; }; - 62224823160CB853008205AC /* PythonInterface_classes_3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B0160CB745008205AC /* PythonInterface_classes_3.cpp */; }; - 62224824160CB853008205AC /* PythonInterface_free_functions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B1160CB745008205AC /* PythonInterface_free_functions.cpp */; }; - 62224825160CB853008205AC /* PythonInterface_global_variables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B2160CB745008205AC /* PythonInterface_global_variables.cpp */; }; - 62224826160CB853008205AC /* PythonListConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B3160CB745008205AC /* PythonListConverter.cpp */; }; - 62224827160CB853008205AC /* PythonModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B4160CB745008205AC /* PythonModule.cpp */; }; - 62224828160CB853008205AC /* PythonOutputData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B5160CB745008205AC /* PythonOutputData.cpp */; }; - 62224829160CB853008205AC /* PythonPlusplusHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222B6160CB745008205AC /* PythonPlusplusHelper.cpp */; }; 6222484A160CB853008205AC /* Crystal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222DA160CB745008205AC /* Crystal.cpp */; }; 6222484B160CB853008205AC /* DiffuseParticleInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222DB160CB745008205AC /* DiffuseParticleInfo.cpp */; }; 6222484C160CB853008205AC /* HomogeneousMaterial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 622222DC160CB745008205AC /* HomogeneousMaterial.cpp */; }; @@ -166,6 +157,10 @@ 62EA737F1628422200656B41 /* OutputDataReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EA73781628422200656B41 /* OutputDataReader.cpp */; }; 62EA73801628422200656B41 /* OutputDataWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EA73791628422200656B41 /* OutputDataWriter.cpp */; }; 62EA73811628422200656B41 /* ParameterPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62EA737A1628422200656B41 /* ParameterPool.cpp */; }; + 62F3A3B4162D9966007FEE73 /* libboost_iostreams.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 62F3A3B3162D9966007FEE73 /* libboost_iostreams.dylib */; }; + 62F3A3BB162D99E4007FEE73 /* FitSuiteHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F3A3B8162D99E4007FEE73 /* FitSuiteHelper.cpp */; }; + 62F3A3BC162D99E4007FEE73 /* ROOTMinimizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F3A3B9162D99E4007FEE73 /* ROOTMinimizer.cpp */; }; + 62F3A3BD162D99E4007FEE73 /* TreeEventStructure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F3A3BA162D99E4007FEE73 /* TreeEventStructure.cpp */; }; 62F77E261619992B00C8F15E /* TestMesoCrystal1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F77E241619992B00C8F15E /* TestMesoCrystal1.cpp */; }; 62F77E271619992B00C8F15E /* TestMesoCrystal2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62F77E251619992B00C8F15E /* TestMesoCrystal2.cpp */; }; 62FDC05C1615E39200D28B08 /* ProgramOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 62FDC05B1615E39200D28B08 /* ProgramOptions.cpp */; }; @@ -217,7 +212,6 @@ 622221EB160CB745008205AC /* AppLinkDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppLinkDef.h; sourceTree = "<group>"; }; 622221EC160CB745008205AC /* CommandLine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommandLine.h; sourceTree = "<group>"; }; 622221ED160CB745008205AC /* DrawHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DrawHelper.h; sourceTree = "<group>"; }; - 622221EE160CB745008205AC /* EventFrame.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EventFrame.h; sourceTree = "<group>"; }; 622221EF160CB745008205AC /* FunctionalTestFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FunctionalTestFactory.h; sourceTree = "<group>"; }; 622221F0160CB745008205AC /* IFunctionalTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IFunctionalTest.h; sourceTree = "<group>"; }; 622221F1160CB745008205AC /* IsGISAXSTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IsGISAXSTools.h; sourceTree = "<group>"; }; @@ -1078,6 +1072,13 @@ 62EA73791628422200656B41 /* OutputDataWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OutputDataWriter.cpp; sourceTree = "<group>"; }; 62EA737A1628422200656B41 /* ParameterPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParameterPool.cpp; sourceTree = "<group>"; }; 62EA73821628425600656B41 /* ISampleBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ISampleBuilder.h; sourceTree = "<group>"; }; + 62F3A3B3162D9966007FEE73 /* libboost_iostreams.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libboost_iostreams.dylib; path = ../../../../../opt/local/lib/libboost_iostreams.dylib; sourceTree = "<group>"; }; + 62F3A3B5162D99D5007FEE73 /* FitSuiteHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FitSuiteHelper.h; sourceTree = "<group>"; }; + 62F3A3B6162D99D5007FEE73 /* ROOTMinimizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ROOTMinimizer.h; sourceTree = "<group>"; }; + 62F3A3B7162D99D5007FEE73 /* TreeEventStructure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeEventStructure.h; sourceTree = "<group>"; }; + 62F3A3B8162D99E4007FEE73 /* FitSuiteHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FitSuiteHelper.cpp; sourceTree = "<group>"; }; + 62F3A3B9162D99E4007FEE73 /* ROOTMinimizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ROOTMinimizer.cpp; sourceTree = "<group>"; }; + 62F3A3BA162D99E4007FEE73 /* TreeEventStructure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TreeEventStructure.cpp; sourceTree = "<group>"; }; 62F77E241619992B00C8F15E /* TestMesoCrystal1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TestMesoCrystal1.cpp; sourceTree = "<group>"; }; 62F77E251619992B00C8F15E /* TestMesoCrystal2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TestMesoCrystal2.cpp; sourceTree = "<group>"; }; 62F77E281619993B00C8F15E /* TestMesoCrystal1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestMesoCrystal1.h; sourceTree = "<group>"; }; @@ -1138,6 +1139,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 62F3A3B4162D9966007FEE73 /* libboost_iostreams.dylib in Frameworks */, 62FDC0641615F1CB00D28B08 /* libboost_program_options.dylib in Frameworks */, 62224887160CBD55008205AC /* libgsl.0.dylib in Frameworks */, 62224888160CBD55008205AC /* libgslcblas.0.dylib in Frameworks */, @@ -1176,6 +1178,9 @@ 622221E9160CB745008205AC /* inc */ = { isa = PBXGroup; children = ( + 62F3A3B5162D99D5007FEE73 /* FitSuiteHelper.h */, + 62F3A3B6162D99D5007FEE73 /* ROOTMinimizer.h */, + 62F3A3B7162D99D5007FEE73 /* TreeEventStructure.h */, 6218B467161B25B2007FFA5C /* TestIsGISAXS11.h */, 62F77E281619993B00C8F15E /* TestMesoCrystal1.h */, 62F77E291619993B00C8F15E /* TestMesoCrystal2.h */, @@ -1184,7 +1189,6 @@ 622221EB160CB745008205AC /* AppLinkDef.h */, 622221EC160CB745008205AC /* CommandLine.h */, 622221ED160CB745008205AC /* DrawHelper.h */, - 622221EE160CB745008205AC /* EventFrame.h */, 622221EF160CB745008205AC /* FunctionalTestFactory.h */, 622221F0160CB745008205AC /* IFunctionalTest.h */, 622221F1160CB745008205AC /* IsGISAXSTools.h */, @@ -1213,6 +1217,9 @@ 62222224160CB745008205AC /* src */ = { isa = PBXGroup; children = ( + 62F3A3B8162D99E4007FEE73 /* FitSuiteHelper.cpp */, + 62F3A3B9162D99E4007FEE73 /* ROOTMinimizer.cpp */, + 62F3A3BA162D99E4007FEE73 /* TreeEventStructure.cpp */, 6218B468161B25BC007FFA5C /* TestIsGISAXS11.cpp */, 62F77E241619992B00C8F15E /* TestMesoCrystal1.cpp */, 62F77E251619992B00C8F15E /* TestMesoCrystal2.cpp */, @@ -68192,6 +68199,7 @@ 627C2C58160B4937004C1B11 = { isa = PBXGroup; children = ( + 62F3A3B3162D9966007FEE73 /* libboost_iostreams.dylib */, 62FDC0631615F1CB00D28B08 /* libboost_program_options.dylib */, 622248A8160CC56B008205AC /* gtest.framework */, 622221E4160CB745008205AC /* App */, @@ -68416,6 +68424,9 @@ 62F77E261619992B00C8F15E /* TestMesoCrystal1.cpp in Sources */, 62F77E271619992B00C8F15E /* TestMesoCrystal2.cpp in Sources */, 6218B469161B25BC007FFA5C /* TestIsGISAXS11.cpp in Sources */, + 62F3A3BB162D99E4007FEE73 /* FitSuiteHelper.cpp in Sources */, + 62F3A3BC162D99E4007FEE73 /* ROOTMinimizer.cpp in Sources */, + 62F3A3BD162D99E4007FEE73 /* TreeEventStructure.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -68459,15 +68470,6 @@ 62224814160CB853008205AC /* Point3D.cpp in Sources */, 62224815160CB853008205AC /* Transform3D.cpp in Sources */, 62224816160CB853008205AC /* Vector3D.cpp in Sources */, - 62224821160CB853008205AC /* PythonInterface_classes_1.cpp in Sources */, - 62224822160CB853008205AC /* PythonInterface_classes_2.cpp in Sources */, - 62224823160CB853008205AC /* PythonInterface_classes_3.cpp in Sources */, - 62224824160CB853008205AC /* PythonInterface_free_functions.cpp in Sources */, - 62224825160CB853008205AC /* PythonInterface_global_variables.cpp in Sources */, - 62224826160CB853008205AC /* PythonListConverter.cpp in Sources */, - 62224827160CB853008205AC /* PythonModule.cpp in Sources */, - 62224828160CB853008205AC /* PythonOutputData.cpp in Sources */, - 62224829160CB853008205AC /* PythonPlusplusHelper.cpp in Sources */, 6222484A160CB853008205AC /* Crystal.cpp in Sources */, 6222484B160CB853008205AC /* DiffuseParticleInfo.cpp in Sources */, 6222484C160CB853008205AC /* HomogeneousMaterial.cpp in Sources */,