BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
TransformToDomain.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/TransformToDomain.h
6 //! @brief Defines class TransformToDomain
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_TRANSFORMTODOMAIN_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_TRANSFORMTODOMAIN_H
17 
19 #include "Param/Distrib/Distributions.h" // for IDistribution1D
27 #include <memory>
28 
29 class AngularSpecScan;
31 class GISASSimulation;
32 class Material;
34 class SessionItem;
35 class ISimulation;
36 
37 namespace TransformToDomain {
38 std::unique_ptr<Material> createDomainMaterial(const SessionItem& item);
39 std::unique_ptr<IParticle> createIParticle(const SessionItem& item);
40 std::unique_ptr<Layer> createLayer(const SessionItem& item);
41 std::unique_ptr<LayerRoughness> createLayerRoughness(const SessionItem& item);
42 std::unique_ptr<MultiLayer> createMultiLayer(const SessionItem& item);
43 std::unique_ptr<ParticleDistribution> createParticleDistribution(const SessionItem& item);
44 std::unique_ptr<ParticleLayout> createParticleLayout(const SessionItem& item);
45 
47  GISASSimulation& simulation);
48 void addBeamDivergencesToScan(const SessionItem& beam_item, AngularSpecScan& simulation);
49 
50 void setBeamDistribution(const std::string& parameter_name, const BeamDistributionItem& item,
51  ISimulation& simulation);
52 
53 void setSimulationOptions(ISimulation* simulation, const SessionItem& item);
54 void setTransformationInfo(IParticle* result, const SessionItem& item);
55 void setPositionInfo(IParticle* result, const SessionItem& item);
56 void setRotationInfo(IParticle* result, const SessionItem& item);
57 } // namespace TransformToDomain
58 
59 #endif // BORNAGAIN_GUI_COREGUI_MODELS_TRANSFORMTODOMAIN_H
Defines classes representing one-dimensional distributions.
Defines and implements the interface class IInterferenceFunction.
Defines interface IParticle.
Defines class Instrument.
Defines class LayerRoughness.
Defines class Layer.
Defines class MultiLayer.
Defines class ParticleDistribution.
Defines class ParticleLayout.
Scan type with inclination angles as coordinate values and a unique wavelength.
The BeamDistributionItem handles wavelength, inclination and azimuthal parameter distribution for Bea...
Main class to run a Grazing-Incidence Small-Angle Scattering simulation.
Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal.
Definition: IParticle.h:33
Abstract base class of OffSpecularSimulation, GISASSimulation and SpecularSimulation.
Definition: ISimulation.h:38
A wrapper for underlying material implementation.
Definition: Material.h:29
void setPositionInfo(IParticle *result, const SessionItem &item)
void setTransformationInfo(IParticle *result, const SessionItem &item)
void setRotationInfo(IParticle *result, const SessionItem &item)
std::unique_ptr< ParticleLayout > createParticleLayout(const SessionItem &item)
void addBeamDivergencesToScan(const SessionItem &beam_item, AngularSpecScan &simulation)
void addDistributionParametersToSimulation(const SessionItem &beam_item, GISASSimulation &simulation)
adds DistributionParameters to the ISimulation
std::unique_ptr< ParticleDistribution > createParticleDistribution(const SessionItem &item)
std::unique_ptr< Material > createDomainMaterial(const SessionItem &item)
std::unique_ptr< IParticle > createIParticle(const SessionItem &item)
void setBeamDistribution(const std::string &parameter_name, const BeamDistributionItem &item, ISimulation &simulation)
std::unique_ptr< MultiLayer > createMultiLayer(const SessionItem &item)
void setSimulationOptions(ISimulation *simulation, const SessionItem &item)
std::unique_ptr< Layer > createLayer(const SessionItem &item)
std::unique_ptr< LayerRoughness > createLayerRoughness(const SessionItem &item)