source: sasview/sansmodels/src/include/csparallelepiped.h @ cd127d2

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since cd127d2 was 101065a, checked in by Mathieu Doucet <doucetm@…>, 13 years ago

keep only header files in c_extensions and rename it 'include'

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*
2        TODO: Add 2D model
3*/
4
5#if !defined(csparallelepiped_h)
6#define csparallelepiped_h
7#include "parameters.hh"
8/** Structure definition for CSParallelepiped parameters
9 * [PYTHONCLASS] = CSParallelepipedModel
10 * [DISP_PARAMS] = shortA, midB, longC,parallel_phi,parallel_psi, parallel_theta
11   [DESCRIPTION] = <text> Form factor for a rectangular Shell. Below are the Parameters.
12                scale: scale factor
13                shortA: length of short edge  [A]
14                midB: length of another short edge [A]
15                longC: length of long edge  of the parallelepiped [A]
16                rimA: length of short edge  [A]
17                rimB: length of another short edge [A]
18                rimC: length of long edge  of the parallelepiped [A]
19                sld_rimA: sld of rimA [1/A^(2)]
20                sld_rimB: sld of rimB [1/A^(2)]
21                sld_rimC: sld of rimC [1/A^(2)]
22                sld_core: Pipe_sld [1/A^(2)]
23                sld_solv: solvent_sld [1/A^(2)]
24                background: incoherent Background [1/cm]
25                </text>
26        [FIXED]= <text>shortA.width; midB.width; longC.width;parallel_phi.width;parallel_psi.width; parallel_theta.width</text>
27        [ORIENTATION_PARAMS]= <text>parallel_phi;parallel_psi; parallel_theta; parallel_phi.width;parallel_psi.width; parallel_theta.width</text>
28
29
30 **/
31
32class CSParallelepipedModel{
33public:
34  // Model parameters
35  /// Scale factor
36  //  [DEFAULT]=scale=1.0
37  Parameter scale;
38  ///  Length of short edge of the parallelepiped [A]
39  //  [DEFAULT]=shortA=35 [A]
40  Parameter shortA;
41  /// Length of mid edge of the parallelepiped [A]
42  //  [DEFAULT]=midB=75 [A]
43  Parameter midB;
44  /// Length of long edge of the parallelepiped [A]
45  //  [DEFAULT]=longC=400 [A]
46  Parameter longC;
47  ///  Thickness of rimA [A]
48  //  [DEFAULT]=rimA=10 [A]
49  Parameter rimA;
50  /// Thickness of rimB [A] [A]
51  //  [DEFAULT]=rimB=10 [A]
52  Parameter rimB;
53  /// Thickness of rimC [A] [A]
54  //  [DEFAULT]=rimC=10 [A]
55  Parameter rimC;
56  /// SLD_rimA [1/A^(2)]
57  //  [DEFAULT]=sld_rimA=2e-6 [1/A^(2)]
58  Parameter sld_rimA;
59  /// SLD_rimB [1/A^(2)]
60  //  [DEFAULT]=sld_rimB=4e-6 [1/A^(2)]
61  Parameter sld_rimB;
62  /// SLD_rimC [1/A^(2)]
63  //  [DEFAULT]=sld_rimC=2e-6 [1/A^(2)]
64  Parameter sld_rimC;
65  /// SLD_pcore [1/A^(2)]
66  //  [DEFAULT]=sld_pcore=1e-6 [1/A^(2)]
67  Parameter sld_pcore;
68  /// sld_solv [1/A^(2)]
69  //  [DEFAULT]=sld_solv=6e-6 [1/A^(2)]
70  Parameter sld_solv;
71  /// Incoherent Background [1/cm]
72  //  [DEFAULT]=background=0.06 [1/cm]
73  Parameter background;
74  /// Orientation of the parallelepiped axis w/respect incoming beam [deg]
75  //  [DEFAULT]=parallel_theta=0.0 [deg]
76  Parameter parallel_theta;
77  /// Orientation of the longitudinal axis of the parallelepiped in the plane of the detector [deg]
78  //  [DEFAULT]=parallel_phi=0.0 [deg]
79  Parameter parallel_phi;
80  /// Orientation of the cross-sectional minor axis of the parallelepiped in the plane of the detector [deg]
81  //  [DEFAULT]=parallel_psi=0.0 [deg]
82  Parameter parallel_psi;
83
84  // Constructor
85  CSParallelepipedModel();
86
87  // Operators to get I(Q)
88  double operator()(double q);
89  double operator()(double qx, double qy);
90  double calculate_ER();
91  double evaluate_rphi(double q, double phi);
92};
93
94#endif
Note: See TracBrowser for help on using the repository browser.