Index: sasmodels/direct_model.py
===================================================================
--- sasmodels/direct_model.py	(revision 23df8335e23a3bb960bb8c3ef9dc709fb7429652)
+++ sasmodels/direct_model.py	(revision 5024a563075fb86e48bd868acf2f39ea4af2e90b)
@@ -32,4 +32,5 @@
 from .details import make_kernel_args, dispersion_mesh
 from .modelinfo import DEFAULT_BACKGROUND
+from .product import RADIUS_MODE_ID
 
 # pylint: disable=unused-import
@@ -70,6 +71,9 @@
 
     For solid objects V_shell is equal to V_form and the volume ratio is 1.
-    """
-    R_eff_type = int(pars.pop('radius_effective_type', 1.0))
+
+    Use parameter *radius_effective_mode* to select the effective radius
+    calculation.
+    """
+    R_eff_type = int(pars.pop(RADIUS_MODE_ID, 1.0))
     mesh = get_mesh(calculator.info, pars, dim=calculator.dim, mono=mono)
     #print("pars", list(zip(*mesh))[0])
Index: sasmodels/model_test.py
===================================================================
--- sasmodels/model_test.py	(revision 81751c29b389be731a04ab84a1a93dedf718e16a)
+++ sasmodels/model_test.py	(revision 5024a563075fb86e48bd868acf2f39ea4af2e90b)
@@ -386,5 +386,5 @@
     for par in sorted(pars.keys()):
         # special handling of R_eff mode, which is not a usual parameter
-        if par == 'radius_effective_type':
+        if par == product.RADIUS_MODE_ID:
             continue
         parts = par.split('_pd')
Index: sasmodels/models/cylinder.py
===================================================================
--- sasmodels/models/cylinder.py	(revision 304c775207a9dbbadb23ad414848454d66b556d1)
+++ sasmodels/models/cylinder.py	(revision 5024a563075fb86e48bd868acf2f39ea4af2e90b)
@@ -185,11 +185,11 @@
 radius, length = parameters[2][2], parameters[3][2]
 tests.extend([
-    ({'radius_effective_type': 0}, 0.1, None, None, 0., pi*radius**2*length, 1.0),
-    ({'radius_effective_type': 1}, 0.1, None, None, (0.75*radius**2*length)**(1./3.), None, None),
-    ({'radius_effective_type': 2}, 0.1, None, None, radius, None, None),
-    ({'radius_effective_type': 3}, 0.1, None, None, length/2., None, None),
-    ({'radius_effective_type': 4}, 0.1, None, None, min(radius, length/2.), None, None),
-    ({'radius_effective_type': 5}, 0.1, None, None, max(radius, length/2.), None, None),
-    ({'radius_effective_type': 6}, 0.1, None, None, np.sqrt(4*radius**2 + length**2)/2., None, None),
+    ({'radius_effective_mode': 0}, 0.1, None, None, 0., pi*radius**2*length, 1.0),
+    ({'radius_effective_mode': 1}, 0.1, None, None, (0.75*radius**2*length)**(1./3.), None, None),
+    ({'radius_effective_mode': 2}, 0.1, None, None, radius, None, None),
+    ({'radius_effective_mode': 3}, 0.1, None, None, length/2., None, None),
+    ({'radius_effective_mode': 4}, 0.1, None, None, min(radius, length/2.), None, None),
+    ({'radius_effective_mode': 5}, 0.1, None, None, max(radius, length/2.), None, None),
+    ({'radius_effective_mode': 6}, 0.1, None, None, np.sqrt(4*radius**2 + length**2)/2., None, None),
 ])
 del radius, length
Index: sasmodels/product.py
===================================================================
--- sasmodels/product.py	(revision 39a06c989ba87dcedc6e5270d59fc4c9dd47ffe5)
+++ sasmodels/product.py	(revision 5024a563075fb86e48bd868acf2f39ea4af2e90b)
@@ -37,4 +37,6 @@
 #]
 
+STRUCTURE_MODE_ID = "structure_factor_mode"
+RADIUS_MODE_ID = "radius_effective_mode"
 RADIUS_ID = "radius_effective"
 VOLFRAC_ID = "volfraction"
@@ -43,5 +45,5 @@
     if p_info.have_Fq:
         par = parse_parameter(
-                "structure_factor_mode",
+                STRUCTURE_MODE_ID,
                 "",
                 0,
@@ -52,5 +54,5 @@
     if p_info.effective_radius_type is not None:
         par = parse_parameter(
-                "radius_effective_mode",
+                RADIUS_MODE_ID,
                 "",
                 0,
Index: sasmodels/sasview_model.py
===================================================================
--- sasmodels/sasview_model.py	(revision 39a06c989ba87dcedc6e5270d59fc4c9dd47ffe5)
+++ sasmodels/sasview_model.py	(revision 5024a563075fb86e48bd868acf2f39ea4af2e90b)
@@ -859,5 +859,5 @@
     P = _make_standard_model('cylinder')()
     model = MultiplicationModel(P, S)
-    model.setParam('radius_effective_mode', 1.0)
+    model.setParam(product.RADIUS_MODE_ID, 1.0)
     value = model.evalDistribution([0.1, 0.1])
     if np.isnan(value):
