Index: sasmodels/models/raspberry.c
===================================================================
--- sasmodels/models/raspberry.c	(revision 0433203b21cec5562e82731f94d8c3e23c3225be)
+++ sasmodels/models/raspberry.c	(revision a2d8a67a8370b3bfa30cff11c890597d110cfe2b)
@@ -49,22 +49,36 @@
     VS = M_4PI_3*rS*rS*rS;
 
+    //Number of small particles per large particle
     Np = vfS*fSs*VL/vfL/VS;
 
+    //Total scattering length difference
     slT = delrhoL*VL + Np*delrhoS*VS;
 
-    sfLS = sph_j1c(q*rL)*sph_j1c(q*rS)*sinc(q*(rL+deltaS*rS));
-    sfSS = sph_j1c(q*rS)*sph_j1c(q*rS)*sinc(q*(rL+deltaS*rS))*sinc(q*(rL+deltaS*rS));
-        
-    f2 = delrhoL*delrhoL*VL*VL*sph_j1c(q*rL)*sph_j1c(q*rL); 
-    f2 += Np*delrhoS*delrhoS*VS*VS*sph_j1c(q*rS)*sph_j1c(q*rS);
+    //Form factors for each particle
+    psiL = sph_j1c(q*rL);
+    psiS = sph_j1c(q*rS);
+
+    //Cross term between large and small particles
+    sfLS = psiL*psiS*sinc(q*(rL+deltaS*rS));
+    //Cross term between small particles at the surface
+    sfSS = psiS*psiS*sinc(q*(rL+deltaS*rS))*sinc(q*(rL+deltaS*rS));
+
+    //Large sphere form factor term
+    f2 = delrhoL*delrhoL*VL*VL*psiL*psiL;
+    //Small sphere form factor term
+    f2 += Np*delrhoS*delrhoS*VS*VS*psiS*psiS;
+    //Small particle - small particle cross term
     f2 += Np*(Np-1)*delrhoS*delrhoS*VS*VS*sfSS;
+    //Large-small particle cross term
     f2 += 2*Np*delrhoL*delrhoS*VL*VS*sfLS;
+    //Normalise by total scattering length difference
     if (f2 != 0.0){
         f2 = f2/slT/slT;
         }
 
+    //I(q) for large-small composite particles
     f2 = f2*(vfL*delrhoL*delrhoL*VL + vfS*fSs*Np*delrhoS*delrhoS*VS);
-
-    f2+= vfS*(1.0-fSs)*pow(delrhoS, 2)*VS*sph_j1c(q*rS)*sph_j1c(q*rS);
+    //I(q) for free small particles
+    f2+= vfS*(1.0-fSs)*delrhoS*delrhoS*VS*psiS*psiS;
     
     // normalize to single particle volume and convert to 1/cm
Index: sasmodels/models/raspberry.py
===================================================================
--- sasmodels/models/raspberry.py	(revision 0433203b21cec5562e82731f94d8c3e23c3225be)
+++ sasmodels/models/raspberry.py	(revision a2d8a67a8370b3bfa30cff11c890597d110cfe2b)
@@ -3,28 +3,81 @@
 ----------
 
-The large and small spheres have their own SLD, as well as the solvent. The
-surface coverage term is a fractional coverage (maximum of approximately 0.9
-for hexagonally-packed spheres on a surface). Since not all of the small
-spheres are necessarily attached to the surface, the excess free (small)
-spheres scattering is also included in the calculation. The function calculate
-follows equations (8)-(12) of the reference below, and the equations are not
-reproduced here.
-
-No inter-particle scattering is included in this model.
-
+The figure below shows a schematic of a large droplet surrounded by several smaller particles
+forming a structure similar to that of Pickering emulsions.
 
 .. figure:: img/raspberry_geometry.jpg
 
     Schematic of the raspberry model
-    
-where *Ro* is the radius of the large sphere, *Rp* the radius of the smaller 
-spheres on the surface and |delta| = the fractional penetration depth.
 
-For 2D data: The 2D scattering intensity is calculated in the same way as 1D,
-where the *q* vector is defined as
+In order to calculate the form factor of the entire complex, the self-correlation of the large droplet,
+the self-correlation of the particles, the correlation terms between different particles
+and the cross terms between large droplet and small particles all need to be calculated.
+
+Consider two infinitely thin shells of radii R2 and R2 separated by distance r. The general
+structure of the equation is then the form factor of the two shells multiplied by the phase
+factor that accounts for the separation of their centers.
 
 .. math::
 
-    q = \sqrt{q_x^2 + q_y^2}
+    S(q) = \frac{sin(qR_1)}{qR_1}\frac{sin(qR_2)}{qR_2}\frac{sin(qr)}{qr}
+
+In this case, the large droplet and small particles are solid spheres rather than thin shells. Thus
+the two terms must be integrated over $R_L$ and $R_S$ respectively using the weighting function of
+a sphere. We then obtain the functions for the form of the two spheres:
+
+.. math::
+
+    \Psi_L = \Int_0^{R_L}(4\piR^2_L)\frac{sin(qR_L)}{qR_L}dR_L = \frac{3[sin(qR_L)-qR_Lcos(qR_L)]}{(qR_L)^2}
+
+.. math::
+
+    \Psi_S = \Int_0^{R_S}(4\piR^2_S)\frac{sin(qR_S)}{qR_S}dR_S = \frac{3[sin(qR_S)-qR_Lcos(qR_S)]}{(qR_S)^2}
+
+The cross term between the large droplet and small particles is given by:
+
+.. math::
+    S_{LS} = \Psi_L\Psi_S\frac{sin(q(R_L+\deltaR_S))}{q(R_L+\deltaR_S)}
+
+and the self term between small particles is given by:
+
+.. math::
+    S_{SS} = \Psi_S^2\bigl[\frac{sin(q(R_L+\deltaR_S))}{q(R_L+\deltaR_S)}\bigr]^2
+
+The number of small particles per large droplet, $N_p$, is given by:
+
+.. math::
+
+    N_p = \frac{\phi_S\phi_{surface}V_L}{\phi_L\V_S}
+
+where $\phi_S$ is the volume fraction of small particles in the sample, $\phi_{surface}$ is the
+fraction of the small particles that are adsorbed to the large droplets, $\phi_L$ is the volume fraction
+of large droplets in the sample, and $V_S$ and $V_L$ are the volumes of individual small particles and
+large droplets respectively.
+
+The form factor of the entire complex can now be calculated including the excess scattering length
+densities of the components $\Delta\rho_L$ and $\Delta\rho_S$, where $\Delta\rho_x = |\rho_x-\rho_{solvent}|$ :
+
+.. math::
+
+    P_{LS} = \frac{1}{M^2}\bigl[(\Delta\rho_L)^2V_L^2\Psi_L^2+N_p(\Delta\rho_S)^2V_S^2\Psi_S^2
+                + N_p(1-N_p)(\Delta\rho_S)^2V_S^2S_{SS} + 2N_p\Delta\rho_L\Delta\rho_SV_LV_SS_{LS}
+
+where M is the total scattering length of the whole complex :
+
+.. math::
+    M = \Delta\rho_LV_L + N_p\Delta\rho_SV_S
+
+In a real system, there will ususally be an excess of small particles such that some fraction remain unbound.
+Therefore the overall scattering intensity is given by:
+
+.. math::
+    I(Q) = I_{LS}(Q) + I_S(Q) = (\phi_L(\Delta\rho_L)^2V_L + \phi_S\phi_{surface}N_p(\Delta\rho_S)^2V_S)P_{LS}
+            + \phi_S(1-\phi_{surface})(\Delta\rho_S)^2V_S\Psi_S^2
+
+A useful parameter to extract is the fraction of the surface area of the large droplets that is covered by small
+particles. This can be calculated from the model parameters as:
+
+.. math::
+    \Chi = \frac{4\phi_L\phi_{surface}(R_L+\delta\R_S)}{\phi_LR_S}
 
 
@@ -35,9 +88,9 @@
 *particles*, *Journal of Colloid and Interface Science*, 343(1) (2010) 36-41
 
-**Author:** Andrew jackson **on:** 2008
+**Author:** Andrew Jackson **on:** 2008
 
-**Modified by:** Paul Butler **on:** March 18, 2016
+**Modified by:** Andrew Jackson **on:** March 20, 2016
 
-**Reviewed by:** Paul Butler **on:** March 18, 2016
+**Reviewed by:** Andrew Jackson **on:** March 20, 2016
 """
 
@@ -80,6 +133,6 @@
               ["radius_sm", "Ang", 100, [0, inf], "",
                "radius of small spheres"],
-              ["penetration", "Ang", 0.0, [0, inf], "",
-               "penetration depth of small spheres into large sphere"],
+              ["penetration", "Ang", 0, [-1, 1], "",
+               "fractional penetration depth of small spheres into large sphere"],
              ]
 
