
function dmudx = precessXY(x,mu, y, r_wire, M, B_0, neutron_speed, gamma_n, magFunc, supMagParams)
%% Equation différentielle de la précession du neutron
% Equation à résoudre à l'aide d'ode45 par exemple
%
% Toutes les grandeurs sont à donner en unités SI.
% - x et y sont les cohordonnées dans le plan, x est également la direction
%   de propagation
% - mu est le vecteur normalisé de la direction du moment du neutron
% - r_wire est le diamètre du fil magnétique
% - M est le vecteur aimantation du fil
% - B_0 est le vecteur du champ appliqué sur l'échantillon
% - neutron_speed est la vitesse du neutron (dépend de la longeur d'onde)
% - gamma_n est le rapport giroscopique du neutron
%
%
% $Revision: 14 $
% $Author: lenertz $
% $Date: 2015-07-27 18:22:01 +0200 (lun., 27 juil. 2015) $

%%
%     if MagMod == 1;
%         [U,V,W] = wirePlanField_vector(r_wire, M, B_0, x, y);
%     elseif MagMod == 2;
%         [U,V,W] = wireVortexField_vector(r_wire, M, B_0, x, y);
%     elseif MagMod == 3;
%         [U,V,W] = wire3Field(r_wire, M, B_0, x, y);
%     end
    [U,V,W] = feval(magFunc, r_wire, M, B_0, x, y, supMagParams);
    B = [U, V, W];

    %produit vectoriel: mprime = mu x B      
    dmudx = gamma_n * cross(mu,B) / neutron_speed;

    dmudx = dmudx';
end
