#if !defined(spheroid_h)
#define spheroid_h
/** Structure definition for oblate parameters
* [PYTHONCLASS] = CoreShellEllipsoidModel
* [DISP_PARAMS] = equat_core, polar_core, equat_shell,polar_shell,axis_phi, axis_theta
[DESCRIPTION] = [SpheroidCoreShellModel] Calculates the form factor for an spheroid
ellipsoid particle with a core_shell structure.
The form factor is averaged over all possible
orientations of the ellipsoid such that P(q)
= scale*/Vol + bkg, where f is the
single particle scattering amplitude.
[Parameters]:
equat_core = equatorial radius of core,
polar_core = polar radius of core,
equat_shell = equatorial radius of shell,
polar_shell = polar radius (revolution axis) of shell,
contrast = SLD_core - SLD_shell
sld_solvent = SLD_solvent
background = Incoherent bkg
scale =scale
Note:It is the users' responsibility to ensure
that shell radii are larger than core radii.
oblate: polar radius < equatorial radius
prolate : polar radius > equatorial radius
[FIXED] = equat_core.width;polar_core.width; equat_shell.width; polar_shell.width; axis_phi.width; axis_theta.width
[ORIENTATION_PARAMS]= axis_phi; axis_theta; axis_phi.width; axis_theta.width
**/
typedef struct {
/// Scale factor
// [DEFAULT]=scale=1.0
double scale;
/// Equatorial radius of core [A]
// [DEFAULT]=equat_core=200.0 [A]
double equat_core;
/// Polar radius of core [A]
// [DEFAULT]=polar_core=20.0 [A]
double polar_core;
/// equatorial radius of shell [A]
// [DEFAULT]=equat_shell=250.0 [A]
double equat_shell;
/// polar radius of shell [A]
// [DEFAULT]=polar_shell=30.0 [A]
double polar_shell;
/// Scattering contrast [1/A^(2)]
// [DEFAULT]=contrast=1.0e-6 [1/A^(2)]
double contrast;
/// Solvent scattering length density [1/A^(2)]
// [DEFAULT]=sld_solvent=6.3e-6 [1/A^(2)]
double sld_solvent;
/// Incoherent Background [1/cm] 0.001
// [DEFAULT]=background=0.001 [1/cm]
double background;
//Disable for now
/// Orientation of the oblate axis w/respect incoming beam [rad]
// [DEFAULT]=axis_theta=0.0 [rad]
double axis_theta;
/// Orientation of the oblate in the plane of the detector [rad]
// [DEFAULT]=axis_phi=0.0 [rad]
double axis_phi;
} SpheroidParameters;
/// 1D scattering function
double spheroid_analytical_1D(SpheroidParameters *pars, double q);
/// 2D scattering function
double spheroid_analytical_2D(SpheroidParameters *pars, double q, double phi);
double spheroid_analytical_2DXY(SpheroidParameters *pars, double qx, double qy);
double spheroid_analytical_2D_scaled(SpheroidParameters *pars, double q, double q_x, double q_y);
#endif