BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
INodeVisitor.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file Param/Node/INodeVisitor.h
6 //! @brief Defines interface class INodeVisitor.
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 USER_API
16 #ifndef BORNAGAIN_PARAM_NODE_INODEVISITOR_H
17 #define BORNAGAIN_PARAM_NODE_INODEVISITOR_H
18 
19 class BasicLattice2D;
20 class Beam;
21 class ConstantBackground;
23 class Crystal;
24 class DistributionCosine;
25 class DistributionGate;
30 class FootprintGauss;
31 class FootprintSquare;
33 class FormFactorBarGauss;
35 class FormFactorBox;
37 class FormFactorCone;
38 class FormFactorCone6;
40 class FormFactorCrystal;
42 class FormFactorCylinder;
47 class FormFactorDot;
57 class FormFactorPrism3;
58 class FormFactorPrism6;
59 class FormFactorPyramid;
72 class FormFactorWeighted;
91 class GISASSimulation;
92 class HexagonalLattice2D;
93 class IAbstractParticle;
94 class IClusteredParticles;
95 class IdentityRotation;
96 class IFormFactor;
97 class IBornFF;
100 class ParticleLayout;
101 class INode;
102 class Instrument;
114 class IParticle;
115 class IPeakShape;
116 class IRotation;
117 class ISampleNode;
118 class IsGISAXSDetector;
119 class Layer;
120 class LayerInterface;
121 class LayerRoughness;
122 class MesoCrystal;
123 class MultiLayer;
125 class Particle;
126 class ParticleComposition;
127 class ParticleCoreShell;
130 class RectangularDetector;
132 class RotationEuler;
133 class RotationX;
134 class RotationY;
135 class RotationZ;
136 class SpecularDetector1D;
137 class SpecularSimulation;
138 class SphericalDetector;
139 class SquareLattice2D;
140 
141 //! Visitor interface to visit ISampleNode objects.
142 //! @ingroup samples_internal
143 
144 //! From visitor pattern to achieve double dispatch.
145 
147 public:
149  virtual ~INodeVisitor() {}
150 
151  virtual void visit(const BasicLattice2D*) {}
152  virtual void visit(const Beam*) {}
153  virtual void visit(const ConstantBackground*) {}
154  virtual void visit(const ConvolutionDetectorResolution*) {}
155  virtual void visit(const Crystal*) {}
156  virtual void visit(const DistributionCosine*) {}
157  virtual void visit(const DistributionGate*) {}
158  virtual void visit(const DistributionGaussian*) {}
159  virtual void visit(const DistributionLogNormal*) {}
160  virtual void visit(const DistributionLorentz*) {}
161  virtual void visit(const DistributionTrapezoid*) {}
162  virtual void visit(const FootprintGauss*) {}
163  virtual void visit(const FootprintSquare*) {}
164  virtual void visit(const FormFactorAnisoPyramid*) {}
165  virtual void visit(const FormFactorBarGauss*) {}
166  virtual void visit(const FormFactorBarLorentz*) {}
167  virtual void visit(const FormFactorBox*) {}
168  virtual void visit(const FormFactorCantellatedCube*) {}
169  virtual void visit(const FormFactorCone*) {}
170  virtual void visit(const FormFactorCone6*) {}
171  virtual void visit(const FormFactorCoreShell*) {}
172  virtual void visit(const FormFactorCrystal*) {}
173  virtual void visit(const FormFactorCuboctahedron*) {}
174  virtual void visit(const FormFactorCylinder*) {}
175  virtual void visit(const FormFactorDecoratorMaterial*) {}
176  virtual void visit(const FormFactorDecoratorPositionFactor*) {}
177  virtual void visit(const FormFactorDecoratorRotation*) {}
178  virtual void visit(const FormFactorDodecahedron*) {}
179  virtual void visit(const FormFactorDot*) {}
180  virtual void visit(const FormFactorEllipsoidalCylinder*) {}
181  virtual void visit(const FormFactorFullSphere*) {}
182  virtual void visit(const FormFactorFullSpheroid*) {}
183  virtual void visit(const FormFactorGaussSphere*) {}
184  virtual void visit(const FormFactorHemiEllipsoid*) {}
185  virtual void visit(const FormFactorHollowSphere*) {}
186  virtual void visit(const FormFactorIcosahedron*) {}
187  virtual void visit(const FormFactorLongBoxGauss*) {}
188  virtual void visit(const FormFactorLongBoxLorentz*) {}
189  virtual void visit(const FormFactorPrism3*) {}
190  virtual void visit(const FormFactorPrism6*) {}
191  virtual void visit(const FormFactorPyramid*) {}
192  virtual void visit(const FormFactorCosineRippleBox*) {}
193  virtual void visit(const FormFactorCosineRippleGauss*) {}
194  virtual void visit(const FormFactorCosineRippleLorentz*) {}
195  virtual void visit(const FormFactorSawtoothRippleBox*) {}
196  virtual void visit(const FormFactorSawtoothRippleGauss*) {}
197  virtual void visit(const FormFactorSawtoothRippleLorentz*) {}
198  virtual void visit(const FormFactorSphereGaussianRadius*) {}
199  virtual void visit(const FormFactorSphereLogNormalRadius*) {}
200  virtual void visit(const FormFactorTetrahedron*) {}
201  virtual void visit(const FormFactorTruncatedCube*) {}
202  virtual void visit(const FormFactorTruncatedSphere*) {}
203  virtual void visit(const FormFactorTruncatedSpheroid*) {}
204  virtual void visit(const FormFactorWeighted*) {}
205  virtual void visit(const FTDecayFunction1DCauchy*) {}
206  virtual void visit(const FTDecayFunction1DGauss*) {}
207  virtual void visit(const FTDecayFunction1DTriangle*) {}
208  virtual void visit(const FTDecayFunction1DVoigt*) {}
209  virtual void visit(const FTDecayFunction2DCauchy*) {}
210  virtual void visit(const FTDecayFunction2DGauss*) {}
211  virtual void visit(const FTDecayFunction2DVoigt*) {}
212  virtual void visit(const FTDistribution1DCauchy*) {}
213  virtual void visit(const FTDistribution1DCosine*) {}
214  virtual void visit(const FTDistribution1DGate*) {}
215  virtual void visit(const FTDistribution1DGauss*) {}
216  virtual void visit(const FTDistribution1DTriangle*) {}
217  virtual void visit(const FTDistribution1DVoigt*) {}
218  virtual void visit(const FTDistribution2DCauchy*) {}
219  virtual void visit(const FTDistribution2DCone*) {}
220  virtual void visit(const FTDistribution2DGate*) {}
221  virtual void visit(const FTDistribution2DGauss*) {}
222  virtual void visit(const FTDistribution2DVoigt*) {}
223  virtual void visit(const GISASSimulation*) {}
224  virtual void visit(const HexagonalLattice2D*) {}
225  virtual void visit(const IAbstractParticle*) {}
226  virtual void visit(const IClusteredParticles*) {}
227  virtual void visit(const IdentityRotation*) {}
228  virtual void visit(const IFormFactor*) {}
229  virtual void visit(const IBornFF*) {}
230  virtual void visit(const IFormFactorDecorator*) {}
231  virtual void visit(const IInterferenceFunction*) {}
232  virtual void visit(const ParticleLayout*) {}
233  virtual void visit(const INode*) {}
234  virtual void visit(const Instrument*) {}
235  virtual void visit(const InterferenceFunction1DLattice*) {}
236  virtual void visit(const InterferenceFunction2DLattice*) {}
237  virtual void visit(const InterferenceFunction2DParaCrystal*) {}
239  virtual void visit(const InterferenceFunction3DLattice*) {}
242  virtual void visit(const InterferenceFunctionHardDisk*) {}
244  virtual void visit(const InterferenceFunctionTwin*) {}
245  virtual void visit(const InterferenceFunctionNone*) {}
246  virtual void visit(const IParticle*) {}
247  virtual void visit(const IPeakShape*) {}
248  virtual void visit(const IRotation*) {}
249  virtual void visit(const ISampleNode*) {}
250  virtual void visit(const IsGISAXSDetector*) {}
251  virtual void visit(const Layer*) {}
252  virtual void visit(const LayerInterface*) {}
253  virtual void visit(const LayerRoughness*) {}
254  virtual void visit(const MesoCrystal*) {}
255  virtual void visit(const MultiLayer*) {}
256  virtual void visit(const OffSpecularSimulation*) {}
257  virtual void visit(const Particle*) {}
258  virtual void visit(const ParticleComposition*) {}
259  virtual void visit(const ParticleCoreShell*) {}
260  virtual void visit(const ParticleDistribution*) {}
261  virtual void visit(const PoissonNoiseBackground*) {}
262  virtual void visit(const RectangularDetector*) {}
263  virtual void visit(const ResolutionFunction2DGaussian*) {}
264  virtual void visit(const RotationEuler*) {}
265  virtual void visit(const RotationX*) {}
266  virtual void visit(const RotationY*) {}
267  virtual void visit(const RotationZ*) {}
268  virtual void visit(const SpecularDetector1D*) {}
269  virtual void visit(const SpecularSimulation*) {}
270  virtual void visit(const SphericalDetector*) {}
271  virtual void visit(const SquareLattice2D*) {}
272 
273  //! Returns depth of the visitor in the composite hierarchy
274  int depth() const { return m_depth; }
275 
276  //! Sets depth of the visitor in the composite hierarchy
277  void setDepth(int depth) { m_depth = depth; }
278 
279 private:
280  int m_depth;
281 };
282 
283 #endif // BORNAGAIN_PARAM_NODE_INODEVISITOR_H
284 #endif // USER_API
A two-dimensional Bravais lattice with no special symmetry.
Definition: Lattice2D.h:53
An incident neutron or x-ray beam.
Definition: Beam.h:27
Class representing a constant background signal.
Convolutes the intensity in 1 or 2 dimensions with a resolution function.
A crystal structure, defined by a Bravais lattice, a basis, and a position variance.
Definition: Crystal.h:35
Cosine distribution.
Uniform distribution function with half width hwhm.
Definition: Distributions.h:88
Gaussian distribution with standard deviation std_dev.
Log-normal distribution.
Lorentz distribution with half width hwhm.
Trapezoidal distribution.
One-dimensional Cauchy decay function in reciprocal space; corresponds to exp(-|x|/decay_length) in r...
Definition: FTDecay1D.h:46
One-dimensional Gauss decay function in reciprocal space; corresponds to exp[-x^2/(2*decay_length^2)]...
Definition: FTDecay1D.h:59
One-dimensional triangle decay function in reciprocal space; corresponds to 1-|x|/decay_length if |x|...
Definition: FTDecay1D.h:72
One-dimensional pseudo-Voigt decay function in reciprocal space; corresponds to eta*Gauss + (1-eta)*C...
Definition: FTDecay1D.h:85
Two-dimensional Cauchy decay function in reciprocal space; corresponds to exp(-r) in real space,...
Definition: FTDecay2D.h:65
Two-dimensional Gauss decay function in reciprocal space; corresponds to exp(-r^2/2) in real space,...
Definition: FTDecay2D.h:79
Two-dimensional pseudo-Voigt decay function in reciprocal space; corresponds to eta*Gauss + (1-eta)*C...
Definition: FTDecay2D.h:92
Exponential IFTDistribution1D exp(-|omega*x|); its Fourier transform evaluate(q) is a Cauchy-Lorentzi...
IFTDistribution1D consisting of one cosine wave [1+cos(pi*x/omega) if |x|<omega, and 0 otherwise]; it...
Square gate IFTDistribution1D; its Fourier transform evaluate(q) is a sinc function starting at evalu...
Gaussian IFTDistribution1D; its Fourier transform evaluate(q) is a Gaussian starting at evaluate(0)=1...
Triangle IFTDistribution1D [1-|x|/omega if |x|<omega, and 0 otherwise]; its Fourier transform evaluat...
IFTDistribution1D that provides a Fourier transform evaluate(q) in form of a pseudo-Voigt decay funct...
Two-dimensional Cauchy distribution in Fourier space; corresponds to a normalized exp(-r) in real spa...
Two-dimensional cone distribution in Fourier space; corresponds to 1-r if r<1 (and 0 otherwise) in re...
Two-dimensional gate distribution in Fourier space; corresponds to normalized constant if r<1 (and 0 ...
Two-dimensional Gauss distribution in Fourier space; corresponds to normalized exp(-r^2/2) in real sp...
Two-dimensional Voigt distribution in Fourier space; corresponds to eta*Gauss + (1-eta)*Cauchy.
Gaussian beam footprint.
Rectangular beam footprint.
A frustum (truncated pyramid) with rectangular base.
The form factor of an elongated bar, with Gaussian profile in elongation direction.
Definition: FormFactorBar.h:27
The form factor of an elongated, with Lorentz form factor in elongation direction.
Definition: FormFactorBar.h:40
A rectangular prism (parallelepiped).
Definition: FormFactorBox.h:23
A cube, with truncation of all edges and corners, as in Croset (2017) Fig 7.
A frustum (truncated pyramid) with regular hexagonal base.
A conical frustum (cone truncated parallel to the base) with circular base.
Form Factor for a core shell particle.
The form factor for a cosine ripple, with box profile in elongation direction.
The form factor for a cosine ripple, with Gaussian profile in elongation direction.
The form factor for a cosine ripple, with Lorentz form factor in elongation direction.
The form factor of a MesoCrystal.
A truncated bifrustum with quadratic base.
A circular cylinder.
Decorates a scalar formfactor with the correct factor for the material's refractive index and that of...
Decorates a form factor with a position dependent phase factor.
Equips a form factor with a rotation.
A regular dodecahedron.
A dot, with scattering power as a sphere of radius rscat, but with F(q)=const.
Definition: FormFactorDot.h:23
A cylinder with elliptical base.
A full spheroid (an ellipsoid with two equal axes, hence with circular cross section)
The form factor of a Gaussian sphere.
An hemi ellipsoid, obtained by truncating a full ellipsoid in the middle plane spanned by two princip...
Integrated full sphere form factor over a uniform distribution of radii.
A regular icosahedron.
The form factor for a long rectangular box.
The form factor for a long rectangular box.
A prism based on an equilateral triangle.
A prism based on a regular hexagonal.
A frustum with a quadratic base.
The form factor for a cosine ripple, with box profile in elongation direction.
The form factor for a cosine ripple, with Gaussian profile in elongation direction.
The form factor for a cosine ripple, with Lorentz form factor in elongation direction.
A sphere with gaussian radius distribution.
A sphere with log normal radius distribution.
A frustum with equilateral trigonal base.
A cube, with tetrahedral truncation of all corners.
Coherent sum of different scalar IFormFactors with different weights.
Main class to run a Grazing-Incidence Small-Angle Scattering simulation.
A two-dimensional Bravais lattice with hexagonal symmetry.
Definition: Lattice2D.h:92
Interface for a generic particle.
Abstract base class for Born form factors.
Definition: IBornFF.h:41
Encapsulates another formfactor and adds extra functionality (a scalar factor, a position-dependent p...
Abstract base class for all form factors.
Definition: IFormFactor.h:36
Abstract base class of interference functions.
Visitor interface to visit ISampleNode objects.
Definition: INodeVisitor.h:146
virtual void visit(const FormFactorAnisoPyramid *)
Definition: INodeVisitor.h:164
virtual void visit(const FormFactorSphereGaussianRadius *)
Definition: INodeVisitor.h:198
virtual void visit(const FTDecayFunction1DCauchy *)
Definition: INodeVisitor.h:205
virtual void visit(const BasicLattice2D *)
Definition: INodeVisitor.h:151
virtual void visit(const InterferenceFunction2DSuperLattice *)
Definition: INodeVisitor.h:238
virtual void visit(const InterferenceFunctionFinite2DLattice *)
Definition: INodeVisitor.h:240
virtual void visit(const FormFactorCone6 *)
Definition: INodeVisitor.h:170
virtual void visit(const IdentityRotation *)
Definition: INodeVisitor.h:227
virtual ~INodeVisitor()
Definition: INodeVisitor.h:149
virtual void visit(const MultiLayer *)
Definition: INodeVisitor.h:255
virtual void visit(const FormFactorCylinder *)
Definition: INodeVisitor.h:174
virtual void visit(const InterferenceFunction2DParaCrystal *)
Definition: INodeVisitor.h:237
virtual void visit(const SpecularSimulation *)
Definition: INodeVisitor.h:269
virtual void visit(const FTDecayFunction2DVoigt *)
Definition: INodeVisitor.h:211
virtual void visit(const RotationY *)
Definition: INodeVisitor.h:266
void setDepth(int depth)
Sets depth of the visitor in the composite hierarchy.
Definition: INodeVisitor.h:277
virtual void visit(const IFormFactorDecorator *)
Definition: INodeVisitor.h:230
virtual void visit(const FormFactorDecoratorPositionFactor *)
Definition: INodeVisitor.h:176
virtual void visit(const FTDistribution1DCosine *)
Definition: INodeVisitor.h:213
virtual void visit(const FormFactorHemiEllipsoid *)
Definition: INodeVisitor.h:184
virtual void visit(const FormFactorTetrahedron *)
Definition: INodeVisitor.h:200
virtual void visit(const Particle *)
Definition: INodeVisitor.h:257
virtual void visit(const DistributionCosine *)
Definition: INodeVisitor.h:156
virtual void visit(const InterferenceFunction1DLattice *)
Definition: INodeVisitor.h:235
virtual void visit(const InterferenceFunctionRadialParaCrystal *)
Definition: INodeVisitor.h:243
virtual void visit(const FormFactorWeighted *)
Definition: INodeVisitor.h:204
virtual void visit(const ConvolutionDetectorResolution *)
Definition: INodeVisitor.h:154
virtual void visit(const DistributionGaussian *)
Definition: INodeVisitor.h:158
virtual void visit(const FormFactorBox *)
Definition: INodeVisitor.h:167
virtual void visit(const Beam *)
Definition: INodeVisitor.h:152
virtual void visit(const DistributionLorentz *)
Definition: INodeVisitor.h:160
virtual void visit(const FormFactorCosineRippleBox *)
Definition: INodeVisitor.h:192
virtual void visit(const FormFactorDecoratorRotation *)
Definition: INodeVisitor.h:177
virtual void visit(const FormFactorSawtoothRippleGauss *)
Definition: INodeVisitor.h:196
virtual void visit(const PoissonNoiseBackground *)
Definition: INodeVisitor.h:261
virtual void visit(const Layer *)
Definition: INodeVisitor.h:251
virtual void visit(const FormFactorCuboctahedron *)
Definition: INodeVisitor.h:173
virtual void visit(const FootprintSquare *)
Definition: INodeVisitor.h:163
virtual void visit(const FTDistribution2DCauchy *)
Definition: INodeVisitor.h:218
virtual void visit(const FTDecayFunction2DCauchy *)
Definition: INodeVisitor.h:209
virtual void visit(const FormFactorCosineRippleGauss *)
Definition: INodeVisitor.h:193
virtual void visit(const FormFactorTruncatedCube *)
Definition: INodeVisitor.h:201
virtual void visit(const FootprintGauss *)
Definition: INodeVisitor.h:162
virtual void visit(const IInterferenceFunction *)
Definition: INodeVisitor.h:231
virtual void visit(const IRotation *)
Definition: INodeVisitor.h:248
virtual void visit(const FormFactorDodecahedron *)
Definition: INodeVisitor.h:178
virtual void visit(const FormFactorLongBoxGauss *)
Definition: INodeVisitor.h:187
virtual void visit(const IParticle *)
Definition: INodeVisitor.h:246
virtual void visit(const FormFactorPrism6 *)
Definition: INodeVisitor.h:190
virtual void visit(const FTDecayFunction2DGauss *)
Definition: INodeVisitor.h:210
virtual void visit(const ParticleComposition *)
Definition: INodeVisitor.h:258
virtual void visit(const LayerRoughness *)
Definition: INodeVisitor.h:253
virtual void visit(const RotationEuler *)
Definition: INodeVisitor.h:264
virtual void visit(const FormFactorDot *)
Definition: INodeVisitor.h:179
virtual void visit(const RotationX *)
Definition: INodeVisitor.h:265
virtual void visit(const FormFactorCoreShell *)
Definition: INodeVisitor.h:171
virtual void visit(const FormFactorSawtoothRippleLorentz *)
Definition: INodeVisitor.h:197
virtual void visit(const FormFactorBarLorentz *)
Definition: INodeVisitor.h:166
virtual void visit(const InterferenceFunctionFinite3DLattice *)
Definition: INodeVisitor.h:241
virtual void visit(const InterferenceFunction2DLattice *)
Definition: INodeVisitor.h:236
virtual void visit(const RotationZ *)
Definition: INodeVisitor.h:267
virtual void visit(const FTDistribution2DGauss *)
Definition: INodeVisitor.h:221
virtual void visit(const FormFactorLongBoxLorentz *)
Definition: INodeVisitor.h:188
virtual void visit(const IAbstractParticle *)
Definition: INodeVisitor.h:225
virtual void visit(const FormFactorFullSphere *)
Definition: INodeVisitor.h:181
virtual void visit(const FTDistribution2DCone *)
Definition: INodeVisitor.h:219
virtual void visit(const HexagonalLattice2D *)
Definition: INodeVisitor.h:224
virtual void visit(const FormFactorCone *)
Definition: INodeVisitor.h:169
virtual void visit(const OffSpecularSimulation *)
Definition: INodeVisitor.h:256
virtual void visit(const FormFactorCrystal *)
Definition: INodeVisitor.h:172
virtual void visit(const FormFactorTruncatedSpheroid *)
Definition: INodeVisitor.h:203
virtual void visit(const FTDistribution1DVoigt *)
Definition: INodeVisitor.h:217
virtual void visit(const FormFactorCantellatedCube *)
Definition: INodeVisitor.h:168
virtual void visit(const FormFactorEllipsoidalCylinder *)
Definition: INodeVisitor.h:180
virtual void visit(const FormFactorBarGauss *)
Definition: INodeVisitor.h:165
virtual void visit(const ParticleLayout *)
Definition: INodeVisitor.h:232
virtual void visit(const IFormFactor *)
Definition: INodeVisitor.h:228
virtual void visit(const RectangularDetector *)
Definition: INodeVisitor.h:262
virtual void visit(const FormFactorGaussSphere *)
Definition: INodeVisitor.h:183
virtual void visit(const FormFactorSawtoothRippleBox *)
Definition: INodeVisitor.h:195
virtual void visit(const Instrument *)
Definition: INodeVisitor.h:234
virtual void visit(const FTDecayFunction1DTriangle *)
Definition: INodeVisitor.h:207
virtual void visit(const FTDistribution1DGauss *)
Definition: INodeVisitor.h:215
virtual void visit(const IBornFF *)
Definition: INodeVisitor.h:229
virtual void visit(const GISASSimulation *)
Definition: INodeVisitor.h:223
virtual void visit(const IPeakShape *)
Definition: INodeVisitor.h:247
virtual void visit(const FormFactorCosineRippleLorentz *)
Definition: INodeVisitor.h:194
virtual void visit(const ISampleNode *)
Definition: INodeVisitor.h:249
virtual void visit(const FormFactorHollowSphere *)
Definition: INodeVisitor.h:185
virtual void visit(const INode *)
Definition: INodeVisitor.h:233
virtual void visit(const ConstantBackground *)
Definition: INodeVisitor.h:153
virtual void visit(const FormFactorDecoratorMaterial *)
Definition: INodeVisitor.h:175
virtual void visit(const DistributionTrapezoid *)
Definition: INodeVisitor.h:161
virtual void visit(const LayerInterface *)
Definition: INodeVisitor.h:252
virtual void visit(const FTDistribution2DGate *)
Definition: INodeVisitor.h:220
virtual void visit(const FormFactorIcosahedron *)
Definition: INodeVisitor.h:186
virtual void visit(const FTDistribution1DGate *)
Definition: INodeVisitor.h:214
virtual void visit(const InterferenceFunctionNone *)
Definition: INodeVisitor.h:245
virtual void visit(const FormFactorFullSpheroid *)
Definition: INodeVisitor.h:182
virtual void visit(const InterferenceFunction3DLattice *)
Definition: INodeVisitor.h:239
virtual void visit(const SphericalDetector *)
Definition: INodeVisitor.h:270
virtual void visit(const DistributionLogNormal *)
Definition: INodeVisitor.h:159
virtual void visit(const FormFactorTruncatedSphere *)
Definition: INodeVisitor.h:202
virtual void visit(const FormFactorSphereLogNormalRadius *)
Definition: INodeVisitor.h:199
virtual void visit(const Crystal *)
Definition: INodeVisitor.h:155
virtual void visit(const FTDistribution2DVoigt *)
Definition: INodeVisitor.h:222
virtual void visit(const InterferenceFunctionTwin *)
Definition: INodeVisitor.h:244
virtual void visit(const SquareLattice2D *)
Definition: INodeVisitor.h:271
virtual void visit(const FTDecayFunction1DGauss *)
Definition: INodeVisitor.h:206
int depth() const
Returns depth of the visitor in the composite hierarchy.
Definition: INodeVisitor.h:274
virtual void visit(const ParticleDistribution *)
Definition: INodeVisitor.h:260
virtual void visit(const MesoCrystal *)
Definition: INodeVisitor.h:254
virtual void visit(const FormFactorPyramid *)
Definition: INodeVisitor.h:191
virtual void visit(const FormFactorPrism3 *)
Definition: INodeVisitor.h:189
virtual void visit(const SpecularDetector1D *)
Definition: INodeVisitor.h:268
virtual void visit(const FTDistribution1DCauchy *)
Definition: INodeVisitor.h:212
virtual void visit(const ParticleCoreShell *)
Definition: INodeVisitor.h:259
virtual void visit(const ResolutionFunction2DGaussian *)
Definition: INodeVisitor.h:263
virtual void visit(const DistributionGate *)
Definition: INodeVisitor.h:157
virtual void visit(const FTDecayFunction1DVoigt *)
Definition: INodeVisitor.h:208
virtual void visit(const InterferenceFunctionHardDisk *)
Definition: INodeVisitor.h:242
virtual void visit(const IsGISAXSDetector *)
Definition: INodeVisitor.h:250
virtual void visit(const FTDistribution1DTriangle *)
Definition: INodeVisitor.h:216
virtual void visit(const IClusteredParticles *)
Definition: INodeVisitor.h:226
Base class for tree-like structures containing parameterized objects.
Definition: INode.h:49
Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal.
Definition: IParticle.h:33
Abstract base class class that defines the peak shape of a Bragg peak.
Definition: IPeakShape.h:25
Abstract base class for rotations.
Definition: Rotations.h:28
Abstract base class for sample components and properties related to scattering.
Definition: ISampleNode.h:28
The identity rotation, which leaves everything in place.
Definition: Rotations.h:57
Assembles beam, detector and their relative positions with respect to the sample.
Definition: Instrument.h:32
Interference function of a 1D lattice.
Interference function of a 2D lattice.
Interference function of a 2D paracrystal.
Interference function of a 2D superlattice with a configurable interference function for each lattice...
Interference function of a 3D lattice.
Interference function of a finite 2D lattice.
Interference function of a finite 3D lattice.
Percus-Yevick hard disk interference function.
Default interference function (i.e.
Interference function of radial paracrystal.
Interference function for two particles at a mean distance and given standard deviation from each oth...
A spherical detector used for validation with IsGISAXS results.
Interface between two layers, possibly with roughness.
A roughness of interface between two layers.
A layer in a MultiLayer sample.
Definition: Layer.h:27
A particle with an internal structure of smaller particles.
Definition: MesoCrystal.h:25
Our sample model: a stack of layers one below the other.
Definition: MultiLayer.h:41
Main class to run an off-specular simulation.
A composition of particles at fixed positions.
A particle with a core/shell geometry.
A particle type that is a parametric distribution of IParticle's.
Decorator class that adds particles to ISampleNode objects.
A particle with a form factor and refractive index.
Definition: Particle.h:24
Class representing Poisson noise on top of the scattered intensity.
A flat rectangular detector with axes and resolution function.
Simple gaussian two-dimensional resolution function.
A sequence of rotations about the z-x'-z'' axes.
Definition: Rotations.h:133
A rotation about the x axis.
Definition: Rotations.h:73
A rotation about the y axis.
Definition: Rotations.h:93
A rotation about the z axis.
Definition: Rotations.h:113
1D detector for specular simulations.
Main class to run a specular simulation.
A detector with coordinate axes along angles phi and alpha.
A two-dimensional Bravais lattice with square unit cell.
Definition: Lattice2D.h:73