Index: sansmodels/src/sans/models/c_extensions/WrapperGenerator.py
===================================================================
--- sansmodels/src/sans/models/c_extensions/WrapperGenerator.py	(revision ae3ce4eaa593202ebf49122e196897c0d45a25b6)
+++ sansmodels/src/sans/models/c_extensions/WrapperGenerator.py	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -4,4 +4,5 @@
 
 import os, sys
+import re
 
 class WrapperGenerator:
@@ -75,4 +76,6 @@
         ## List of default parameters (text)
         self.default_list = ""
+        ##description
+        self.description=''
         ## Dictionary of units
         self.details = ""
@@ -84,4 +87,5 @@
         rep += "  struc name: %s\n" % self.structName
         rep += "  params:     %s\n" % self.params
+        rep += "  description: %s\n"% self.description
         return rep
         
@@ -96,5 +100,5 @@
         f = open(self.file,'r')
         buf = f.read()
-        
+       
         self.default_list = "List of default parameters:\n"
         #lines = string.split(buf,'\n')
@@ -102,4 +106,54 @@
         self.details  = "## Parameter details [units, min, max]\n"
         self.details += "        self.details = {}\n"
+        # Catch Description
+        key = "[DESCRIPTION]"
+        find_description= 0
+        temp=""
+        for line in lines:
+            if line.count(key)>0 :
+                
+                try:
+                    find_description= 1
+                    index = line.index(key)
+                    toks = line[index:].split("=",1 )
+                    temp=toks[1].lstrip().rstrip()
+                    text='text'
+                    key2="<%s>"%text.lower()
+                    if re.match(key2,temp)!=None:
+                        #index2 = line.index(key2)
+                        #temp = temp[index2:]
+                        toks2=temp.split(key2,1)
+                        self.description=toks2[1]
+                        text='text'
+                        key2="</%s>"%text.lower()
+                        if re.search(key2,toks2[1])!=None:
+                            temp=toks2[1].split(key2,1)
+                            self.description=temp[0]
+                            break
+                        print self.description
+                    else:
+                        self.description=temp
+                        break
+                except:
+                     raise ValueError, "Could not parse file %s" % self.file
+            elif find_description==1:
+                text='text'
+                key2="</%s>"%text.lower()
+                #print "second line",line,key2,re.search(key2,line)
+                if re.search(key2,line)!=None:
+                    tok=line.split(key2,1)
+                    temp=tok[0].split("//",1)
+                    self.description+=tok[1].lstrip().rstrip()
+                    break
+                else:
+                    print re.search("//",line)
+                    if re.search("//",line)!=None:
+                        temp=line.split("//",1)
+                        self.description+='\n'+temp[1].lstrip().rstrip()
+                        
+                    else:
+                        self.description+=line
+                    
+                
         for line in lines:
             
@@ -132,5 +186,5 @@
                 toks2 = toks[0].split(',')
                 self.structName = toks2[0].lstrip().rstrip()
-                
+          
             # Catch struct content
             key = "[DEFAULT]"
@@ -274,5 +328,7 @@
             newline = self.replaceToken(newline, 
                                         "[DEFAULT_LIST]", self.default_list)
-
+            # Model Description
+            newline = self.replaceToken(newline, 
+                                        "[DESCRIPTION]", self.description)
             # Parameter details
             newline = self.replaceToken(newline, 
Index: sansmodels/src/sans/models/c_extensions/core_shell.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/core_shell.h	(revision 0f5bc9ff2027432913fd8d2cb067675244acdaf6)
+++ sansmodels/src/sans/models/c_extensions/core_shell.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -7,4 +7,5 @@
  //[PYTHONCLASS] = CoreShellModel
  //[DISP_PARAMS] = radius, thickness
+ //[DESCRIPTION] =""
 typedef struct {
     /// Scale factor
Index: sansmodels/src/sans/models/c_extensions/core_shell_cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/core_shell_cylinder.h	(revision 4e2f6ef85878f1d83352f8c6f07396ea0c373f0e)
+++ sansmodels/src/sans/models/c_extensions/core_shell_cylinder.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -7,5 +7,24 @@
  //[PYTHONCLASS] = CoreShellCylinderModel
  //[DISP_PARAMS] = radius, thickness, length, axis_theta, axis_phi
- //[DESCRIPTION] = ''
+ //[DESCRIPTION] = <text>"P(q,alpha)= scale/Vs*f(q)^(2) + bkg  Where:\n\
+						 f(q)= 2(core_sld- solvant_sld)* Vc*sin[qLcos(alpha/2)]/\n\
+						[qLcos(alpha/2)]*J1(qRsin(alpha))/[qRsin(alpha)] +\n 2(shell_sld-solvent_sld)*Vs\n\
+						*sin[q(L+T)cos(alpha/2)]/[[q(L+T)cos(alpha/2)]\n\
+						*J1(q(R+T)sin(alpha))/q(R+T)sin(alpha)]\n\
+						alpha:is the angle between the axis of the cylinder and the q-vector\n\
+						Vs: the volume of the outer shell\n\
+ 						Vc: the volume of the core\n\
+ 						L: the length of the core\n\
+     					shell_sld: the scattering length density of the shell\n\
+						solvent_sld: the scattering length density of the solvent\n\
+ 						bkg: the background\n\
+ 						T: the thickness\n\
+    					R+T: is the outer radius\n\
+ 						L+2T: The total length of the outershell\n\
+						J1: the first order Bessel function\n\
+ 						theta: axis_theta of the cylinder\n\
+ 						phi: the axis_phi of the cylinder"\
+					</text>
+
 typedef struct {
     /// Scale factor
Index: sansmodels/src/sans/models/c_extensions/cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/cylinder.h	(revision 4e2f6ef85878f1d83352f8c6f07396ea0c373f0e)
+++ sansmodels/src/sans/models/c_extensions/cylinder.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -5,5 +5,15 @@
  * [PYTHONCLASS] = CylinderModel
  * [DISP_PARAMS] = radius, length, cyl_theta, cyl_phi
-   [DESCRIPTION] = ''
+   [DESCRIPTION] = <text>"P(q,alpha)= scale/V*f(q)^(2)+bkg\n\
+						f(q)= 2*(scatter_sld - solvent_sld)*V*sin(qLcos(alpha/2))/[qLcos(alpha/2)]*\n\
+						J1(qRsin(alpha/2))/[qRsin(alpha)]\n\
+						V: Volume of the cylinder\n\
+						R: Radius of the cylinder\n\
+						L: Length of the cylinder\n\
+						J1: The bessel function\n\
+						alpha: angle betweenthe axis of the cylinder and the q-vector\n\
+						for 1D:the ouput is P(q)=scale/V*integral from pi/2 to zero of f(q)^(2)*\n\
+						sin(alpha)*dalpha+ bkg"
+					</text>
 	
  * */
Index: sansmodels/src/sans/models/c_extensions/ellipsoid.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/ellipsoid.h	(revision 0f5bc9ff2027432913fd8d2cb067675244acdaf6)
+++ sansmodels/src/sans/models/c_extensions/ellipsoid.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -9,4 +9,14 @@
  //[PYTHONCLASS] = EllipsoidModel
  //[DISP_PARAMS] = radius_a, radius_b, axis_theta, axis_phi
+ //[DESCRIPTION] = <text>"P(q.alpha)= scale*f(q)^(2)+ bkg\n\
+						f(q)= 3*(scatter_sld- scatter_solvent)*V*[sin(q*r(Ra,Rb,alpha)) - q*r*cos(qr(Ra,Rb,alpha))]\n\
+							/[qr(Ra,Rb,alpha)]^(3)"\
+						r(Ra,Rb,alpha)= [Rb^(2)*(sin(alpha))^(2) + Ra^(2)*(cos(alpha))^(2)]^(1/2)\
+						scatter_sld: scattering length density of the scatter\n\
+						solvent_sld: scattering length density of the solvent\n\
+						V: volune of the Eliipsoid\n\
+						Ra: radius along the rotation axis of the Ellipsoid\n\
+						Rb: radius perpendicular to the rotation axis of the ellipsoid\n\
+						</text>
 typedef struct {
     /// Scale factor
Index: sansmodels/src/sans/models/c_extensions/elliptical_cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/elliptical_cylinder.h	(revision 0f5bc9ff2027432913fd8d2cb067675244acdaf6)
+++ sansmodels/src/sans/models/c_extensions/elliptical_cylinder.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -5,5 +5,5 @@
  * [PYTHONCLASS] = EllipticalCylinderModel
  * [DISP_PARAMS] = r_minor, r_ratio, length, cyl_theta, cyl_phi, cyl_psi
- *
+ * [DESCRIPTION] = ""
  * */
 typedef struct {
Index: sansmodels/src/sans/models/c_extensions/gaussian.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/gaussian.h	(revision ae3ce4eaa593202ebf49122e196897c0d45a25b6)
+++ sansmodels/src/sans/models/c_extensions/gaussian.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -8,4 +8,5 @@
  * 
  * [PYTHONCLASS] = Gaussian
+ * [DESCRIPTION] = <text>f(x)=scale * 1/(sigma^2*2pi)e^(-(x-mu)^2/2sigma^2)</text>
  */
 typedef struct {
Index: sansmodels/src/sans/models/c_extensions/lorentzian.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/lorentzian.h	(revision ae3ce4eaa593202ebf49122e196897c0d45a25b6)
+++ sansmodels/src/sans/models/c_extensions/lorentzian.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -8,4 +8,5 @@
  * 
  * [PYTHONCLASS] = Lorentzian
+ * [DESCRIPTION] = <text>f(x)=scale * 1/pi 0.5gamma / [ (x-x_0)^2 + (0.5gamma)^2 ]</text>
  */
 typedef struct {
Index: sansmodels/src/sans/models/c_extensions/sphere.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/sphere.h	(revision 0f5bc9ff2027432913fd8d2cb067675244acdaf6)
+++ sansmodels/src/sans/models/c_extensions/sphere.h	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
@@ -7,4 +7,13 @@
  //[PYTHONCLASS] = SphereModel
  //[DISP_PARAMS] = radius
+ //[DESCRIPTION] =<text>P(q)=(scale/V)*[3V(scatter_sld-solvent_sld)*(sin(qR)-qRcos(qR))/(qR)^3]^(2)
+ //						+bkg
+ //						bkg: background level
+ //						R: radius of the sphere
+ //						V:The volume of the scatter
+ //						scatter_sld: the scattering length density of the scatter
+ //						solvent_sld: the scattering length density of the solvent
+ //				</text>
+ 
 typedef struct {
     /// Scale factor
