BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SimulationFactory.cpp
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Core/Simulation/SimulationFactory.cpp
6 //! @brief Implement class SimulationFactory.
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 
21 
22 SimulationFactory::SimulationFactory()
23 {
25 
27 
29 
31 
33 
35 
36  registerItem("MiniGISASDetectorResolution", StandardSimulations::MiniGISASDetectorResolution);
37 
39 
41 
43 
45 
47 
49 
50  // polarization
51 
52  registerItem("MiniGISASPolarizationPP", StandardSimulations::MiniGISASPolarizationPP);
53 
54  registerItem("MiniGISASPolarizationPM", StandardSimulations::MiniGISASPolarizationPM);
55 
56  registerItem("MiniGISASPolarizationMP", StandardSimulations::MiniGISASPolarizationMP);
57 
58  registerItem("MiniGISASPolarizationMM", StandardSimulations::MiniGISASPolarizationMM);
59 
60  // rectangular detectors
61 
63 
65 
66  registerItem("RectDetectorPerpToDirectBeam", StandardSimulations::RectDetectorPerpToDirectBeam);
67 
68  registerItem("RectDetectorPerpToReflectedBeam",
70 
71  registerItem("RectDetectorPerpToReflectedBeamDpos",
73 
75 
76  // Monte-Carlo
78 
79  // region of interest
80 
83 
84  // background
85 
86  registerItem("ConstantBackground", StandardSimulations::ConstantBackgroundGISAS);
87 
88  // specular simulations
89 
90  registerItem("BasicSpecular", StandardSimulations::BasicSpecular);
91 
92  registerItem("BasicSpecularQ", StandardSimulations::BasicSpecularQ);
93 
94  registerItem("SpecularWithGaussianBeam", StandardSimulations::SpecularWithGaussianBeam);
95 
96  registerItem("SpecularWithSquareBeam", StandardSimulations::SpecularWithSquareBeam);
97 
98  registerItem("SpecularDivergentBeam", StandardSimulations::SpecularDivergentBeam);
99 
100  registerItem("TOFRWithRelativeResolution", StandardSimulations::TOFRWithRelativeResolution);
101 
102  registerItem("TOFRWithPointwiseResolution", StandardSimulations::TOFRWithPointwiseResolution);
103 
104  registerItem("OffSpecMini", StandardSimulations::MiniOffSpec);
105 
106  // polarized specular
107 
108  registerItem("BasicSpecularPP", StandardSimulations::BasicSpecularPP);
109 
110  registerItem("BasicSpecularMM", StandardSimulations::BasicSpecularMM);
111 
112  registerItem("BasicSpecularPM", StandardSimulations::BasicSpecularPM);
113 
114  registerItem("BasicSpecularMP", StandardSimulations::BasicSpecularMP);
115 
116  registerItem("BasicQSpecularPP", StandardSimulations::BasicSpecularQPP);
117 
118  registerItem("BasicQSpecularMM", StandardSimulations::BasicSpecularQMM);
119 
120  registerItem("BasicQSpecularPM", StandardSimulations::BasicSpecularQPM);
121 
122  registerItem("BasicQSpecularMP", StandardSimulations::BasicSpecularQMP);
123 
124  // depth probe simulations
125 
126  registerItem("BasicDepthProbe", StandardSimulations::BasicDepthProbe);
127 
129 }
Defines class DepthProbeSimulation.
Defines class OffSpecSimulation.
Defines class RealParameter.
Defines class SimulationFactory.
Defines class SpecularSimulation.
Defines namespace and functions for standard simulations.
bool registerItem(const std::string &item_key, CreateItemCallback CreateFn)
Registers object's creation function.
Definition: IFactory.h:53
GISASSimulation * RectDetectorPerpToReflectedBeam()
GISAS simulation with the rectangular detector perpendicular to the reflected beam.
GISASSimulation * BasicGISAS00()
Basic GISAS for polarization studies.
GISASSimulation * RectDetectorPerpToDirectBeam()
GISAS simulation with the rectangular detector perpendicular to the direct beam.
GISASSimulation * BasicGISAS()
Basic GISAS simulation with the detector phi[0,2], theta[0,2].
GISASSimulation * MiniGISASBeamDivergence()
GISAS simulation with beam divergence applied.
GISASSimulation * GISASWithMasks()
GISAS simulation with multiple masks on the detector plane.
GISASSimulation * MiniGISAS()
GISAS simulation with small detector and phi[-2,2], theta[0,2].
GISASSimulation * IsGISAXSSimulation1()
Typical IsGISAXS simulation with the detector phi[-1,1], theta[0,2].
GISASSimulation * ExtraLongWavelengthGISAS()
GISAS simulation with an extra long wavelength.
GISASSimulation * RectDetectorPerpToSample()
GISAS simulation with the rectangular detector perpendicular to the sample.
GISASSimulation * SphericalDetWithRoi()
GISAS simulation with spherical detector, region of interest and mask.
GISASSimulation * MiniGISASDetectorResolution()
GISAS simulation with detector resolution.
GISASSimulation * MiniGISASMonteCarlo()
GISAS simulation with Monte-Carlo integration switched ON.
GISASSimulation * IsGISAXSSimulation2()
Typical IsGISAXS simulation with the detector phi[0,2], theta[0,2].
GISASSimulation * RectDetectorGeneric()
GISAS simulation with generic rectangular detector.
GISASSimulation * MaxiGISAS()
GISAS simulation with large detector to test performance.
GISASSimulation * MiniGISAS_v2()
GISAS simulation with small detector and phi[-1,1], theta[0,1].
GISASSimulation * RectDetectorPerpToReflectedBeamDpos()
GISAS simulation with the rectangular detector perpendicular to the reflected beam when the coordinat...
GISASSimulation * MiniGISASSpecularPeak()
GISAS simulation with small detector and including specular peak.
GISASSimulation * RectDetWithRoi()
GISAS simulation with rectangular detector, region of interest and mask.
GISASSimulation * MiniGISASFit()
Simulation with fitting.
GISASSimulation * BasicPolarizedGISAS()
Basic GISAS simulation for spin flip channel.
GISASSimulation * MaxiGISAS00()
Basic GISAS for polarization studies.