#if !defined(coresecondmoment_h) #define coresecondmoment_h #include "parameters.hh" /** * Structure definition for sphere parameters */ //[PYTHONCLASS] = Core2ndMomentModel //[DISP_PARAMS] = radius_core //[DESCRIPTION] =Calculate CoreSecondMoment Model // // scale:calibration factor, // density_poly: density of the layer // sld_poly: the SLD of the layer // volf_cores: volume fraction of cores // ads_amount: adsorbed amount // second_moment: second moment of the layer // sld_solv: the SLD of the solvent // background // // //[FIXED]= radius_core.width //[ORIENTATION_PARAMS]= class Core2ndMomentModel{ public: // Model parameters /// Scale factor // [DEFAULT]=scale= 1.0 Parameter scale; /// Density of layer[g/cm^(3)] // [DEFAULT]=density_poly=0.7 [g/cm^(3)] Parameter density_poly; /// sld_poly [1/A^(2)] // [DEFAULT]=sld_poly= 1.5e-6 [1/A^(2)] Parameter sld_poly; /// radius_core [A] // [DEFAULT]=radius_core= 500.0 [A] Parameter radius_core; // Model parameters /// volume fraction of_cores // [DEFAULT]=volf_cores= 0.14 Parameter volf_cores; /// adsorbed amount [mg/m^(2)] // [DEFAULT]=ads_amount=1.9 [mg/m^(2)] Parameter ads_amount; /// sld_solv [1/A^(2)] // [DEFAULT]=sld_solv= 6.3e-6 [1/A^(2)] Parameter sld_solv; /// second_moment [A] // [DEFAULT]=second_moment=23.0 [A] Parameter second_moment; /// Incoherent Background [1/cm] // [DEFAULT]=background=0 [1/cm] Parameter background; // Constructor Core2ndMomentModel(); // Operators to get I(Q) double operator()(double q); double operator()(double qx, double qy); double calculate_ER(); double evaluate_rphi(double q, double phi); }; #endif