#if !defined(parallelepiped_h) #define parallelepiped_h #include "parameters.hh" /** Structure definition for Parallelepiped parameters * [PYTHONCLASS] = ParallelepipedModel * [DISP_PARAMS] = short_a, short_b, long_c,parallel_phi,parallel_psi, parallel_theta [DESCRIPTION] = Form factor for a rectangular solid with uniform scattering length density. scale:Scale factor short_a: length of short edge [A] short_b: length of another short edge [A] long_c: length of long edge of the parallelepiped [A] sldPipe: Pipe_sld sldSolv: solvent_sld background:Incoherent Background [1/cm] [FIXED]= short_a.width; short_b.width; long_c.width;parallel_phi.width;parallel_psi.width; parallel_theta.width [ORIENTATION_PARAMS]= parallel_phi;parallel_psi; parallel_theta; parallel_phi.width;parallel_psi.width; parallel_theta.width; M0_sld_pipe; M_theta_pipe; M_phi_pipe;M0_sld_solv; M_theta_solv; M_phi_solv; Up_frac_i; Up_frac_f; Up_theta; [MAGNETIC_PARAMS]= M0_sld_pipe; M_theta_pipe; M_phi_pipe; M0_sld_solv; M_theta_solv; M_phi_solv; Up_frac_i; Up_frac_f; Up_theta; **/ class ParallelepipedModel{ public: // Model parameters /// Scale factor // [DEFAULT]=scale=1.0 Parameter scale; /// Length of short edge of the parallelepiped [A] // [DEFAULT]=short_a=35 [A] Parameter short_a; /// Length of short edge edge of the parallelepiped [A] // [DEFAULT]=short_b=75 [A] Parameter short_b; /// Length of long edge of the parallelepiped [A] // [DEFAULT]=long_c=400 [A] Parameter long_c; /// 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; /// Orientation of the parallelepiped axis w/respect incoming beam [deg] // [DEFAULT]=parallel_theta=0.0 [deg] Parameter parallel_theta; /// Orientation of the longitudinal axis of the parallelepiped in the plane of the detector [deg] // [DEFAULT]=parallel_phi=0.0 [deg] Parameter parallel_phi; /// Orientation of the cross-sectional minor axis of the parallelepiped in the plane of the detector [deg] // [DEFAULT]=parallel_psi=0.0 [deg] Parameter parallel_psi; /// M0_sld_pipe // [DEFAULT]=M0_sld_pipe=0.0e-6 [1/A^(2)] Parameter M0_sld_pipe; /// M_theta_pipe // [DEFAULT]=M_theta_pipe=0.0 [deg] Parameter M_theta_pipe; /// M_phi_pipe // [DEFAULT]=M_phi_pipe=0.0 [deg] Parameter M_phi_pipe; /// M0_sld_solv // [DEFAULT]=M0_sld_solv=0.0e-6 [1/A^(2)] Parameter M0_sld_solv; /// M_theta_solv // [DEFAULT]=M_theta_solv=0.0 [deg] Parameter M_theta_solv; /// M_phi_solv // [DEFAULT]=M_phi_solv=0.0 [deg] Parameter M_phi_solv; /// Up_frac_i // [DEFAULT]=Up_frac_i=0.5 [u/(u+d)] Parameter Up_frac_i; /// Up_frac_f // [DEFAULT]=Up_frac_f=0.5 [u/(u+d)] Parameter Up_frac_f; /// Up_theta // [DEFAULT]=Up_theta=0.0 [deg] Parameter Up_theta; // Constructor ParallelepipedModel(); // 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