#if !defined(RectangularHollowPrism_h) #define RectangularHollowPrism_h #include "parameters.hh" /** Structure definition for RectangularHollowPrism parameters * [PYTHONCLASS] = RectangularHollowPrismModel * [DISP_PARAMS] = short_side, b2a_ratio, c2a_ratio, thickness [DESCRIPTION] = Form factor for a hollow rectangular prism with uniform scattering length density. scale:Scale factor short_side: shortest side of the rectangular prism [A] b2a_ratio: ratio b/a [adim] c2a_ratio: ratio c/a [adim] thickness: thickness of the walls [A] sldPipe: Pipe_sld sldSolv: solvent_sld background:Incoherent Background [1/cm] [FIXED]= short_side.width; b2a_ratio.width; c2a_ratio.width; thicness.width; **/ class RectangularHollowPrismModel{ public: // Model parameters /// Scale factor // [DEFAULT]=scale=1.0 Parameter scale; /// Shortest side of rectangular prism [A] // [DEFAULT]=short_side=35 [A] Parameter short_side; /// Ratio b/a [adim] // [DEFAULT]=b2a_ratio=1 [adim] Parameter b2a_ratio; /// Ratio c/a [adim] // [DEFAULT]=c2a_ratio=1 [adim] Parameter c2a_ratio; /// Thickness of walls [A] // [DEFAULT]=thickness=1 [A] Parameter thickness; /// SLD_Pipe [1/A^(2)] // [DEFAULT]=sldPipe=6.3e-6 [1/A^(2)] Parameter sldPipe; /// sldSolv [1/A^(2)] // [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)] Parameter sldSolv; /// Incoherent Background [1/cm] // [DEFAULT]=background=0.0 [1/cm] Parameter background; // Constructor RectangularHollowPrismModel(); // Operators to get I(Q) double operator()(double q); double operator()(double qx, double qy); double calculate_ER(); double calculate_VR(); double evaluate_rphi(double q, double phi); }; #endif