Index: trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option3.cc
===================================================================
--- trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option3.cc	(revision 988)
+++ trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option3.cc	(revision 1203)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4EmStandardPhysics_option3.cc,v 1.14 2008/11/21 16:50:30 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02-ref-02 $
+// $Id: G4EmStandardPhysics_option3.cc,v 1.18 2009/11/24 12:53:22 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-03-cand-03 $
 //
 //---------------------------------------------------------------------------
@@ -50,9 +50,13 @@
 #include "G4GammaConversion.hh"
 #include "G4PhotoElectricEffect.hh"
-#include "G4LowEnergyRayleigh.hh"
+#include "G4RayleighScattering.hh"
 
 #include "G4eMultipleScattering.hh"
+#include "G4MuMultipleScattering.hh"
 #include "G4hMultipleScattering.hh"
 #include "G4MscStepLimitType.hh"
+#include "G4UrbanMscModel93.hh"
+#include "G4WentzelVIModel.hh"
+#include "G4CoulombScattering.hh"
 
 #include "G4eIonisation.hh"
@@ -68,4 +72,6 @@
 #include "G4hIonisation.hh"
 #include "G4ionIonisation.hh"
+#include "G4IonParametrisedLossModel.hh"
+#include "G4NuclearStopping.hh"
 
 #include "G4Gamma.hh"
@@ -148,12 +154,13 @@
     if (particleName == "gamma") {
 
-      pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh);
       pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
       pmanager->AddDiscreteProcess(new G4ComptonScattering);
       pmanager->AddDiscreteProcess(new G4GammaConversion);
+      pmanager->AddDiscreteProcess(new G4RayleighScattering);
 
     } else if (particleName == "e-") {
 
       G4eMultipleScattering* msc = new G4eMultipleScattering();
+      msc->AddEmModel(0, new G4UrbanMscModel93());
       msc->SetStepLimitType(fUseDistanceToBoundary);
       pmanager->AddProcess(msc,                   -1, 1, 1);
@@ -166,4 +173,5 @@
 
       G4eMultipleScattering* msc = new G4eMultipleScattering();
+      msc->AddEmModel(0, new G4UrbanMscModel93());
       msc->SetStepLimitType(fUseDistanceToBoundary);
       pmanager->AddProcess(msc,                   -1, 1, 1);
@@ -177,5 +185,7 @@
                particleName == "mu-"    ) {
 
-      pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
+      G4MuMultipleScattering* msc = new G4MuMultipleScattering();
+      msc->AddEmModel(0, new G4WentzelVIModel());
+      pmanager->AddProcess(msc,                       -1, 1, 1);
       G4MuIonisation* muIoni = new G4MuIonisation();
       muIoni->SetStepFunction(0.2, 50*um);          
@@ -183,8 +193,8 @@
       pmanager->AddProcess(new G4MuBremsstrahlung,    -1,-3, 3);
       pmanager->AddProcess(new G4MuPairProduction,    -1,-4, 4);
+      pmanager->AddDiscreteProcess(new G4CoulombScattering());
 
     } else if (particleName == "alpha" ||
-               particleName == "He3" ||
-               particleName == "GenericIon") {
+               particleName == "He3") {
 
       pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
@@ -192,7 +202,19 @@
       ionIoni->SetStepFunction(0.1, 20*um);
       pmanager->AddProcess(ionIoni,                   -1, 2, 2);
+      pmanager->AddProcess(new G4NuclearStopping(),   -1, 3,-1);
+
+    } else if (particleName == "GenericIon") {
+
+      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
+      G4ionIonisation* ionIoni = new G4ionIonisation();
+      ionIoni->SetEmModel(new G4IonParametrisedLossModel());
+      ionIoni->SetStepFunction(0.1, 10*um);
+      pmanager->AddProcess(ionIoni,                   -1, 2, 2);
+      pmanager->AddProcess(new G4NuclearStopping(),   -1, 3,-1);
 
     } else if (particleName == "pi+" ||
                particleName == "pi-" ||
+	       particleName == "kaon+" ||
+               particleName == "kaon-" ||
                particleName == "proton" ) {
 
@@ -220,6 +242,4 @@
                particleName == "anti_xi-" ||
                particleName == "deuteron" ||
-	       particleName == "kaon+" ||
-               particleName == "kaon-" ||
 	       particleName == "lambda_c+" ||
                particleName == "omega-" ||
@@ -256,4 +276,5 @@
   opt.SetLambdaBinning(220);
   //opt.SetSplineFlag(true);
+  opt.SetPolarAngleLimit(0.2);
     
   // Ionization
