diff --git a/Configure b/Configure
index 3b94f3036d48a98f09d4a1df4fbc0a0cbb076929..c14d51240c4e1b96f4215fe839a165e33d1f97a2 100755
--- a/Configure
+++ b/Configure
@@ -18,9 +18,9 @@
 # you may fetch it yourself from your nearest archive site.)
 #
 
-# $Id: Configure,v 1.33 2003/02/21 16:04:59 stesting Exp $
+# $Id: Configure,v 1.42 2003/10/02 18:04:36 stesting Exp $
 #
-# Generated on Fri Feb 21 17:04:19 CET 2003 [metaconfig 3.0 PL70]
+# Generated on Thu Oct  2 20:02:53 CEST 2003 [metaconfig 3.0 PL70]
 
 cat >/tmp/c1$$ <<EOF
 WARNING!!!!!
@@ -159,6 +159,7 @@ d_portable=''
 g4base=''
 g4conf=''
 g4include=''
+g4includes_flag=''
 g4install=''
 g4workdir=''
 g4bin=''
@@ -234,6 +235,8 @@ g4_make_version=''
 g4make=''
 g4w_use_g3tog4=''
 g4wlib_build_g3tog4=''
+g4w_use_step=''
+g4wlib_build_step=''
 lns=''
 c=''
 n=''
@@ -2349,6 +2352,23 @@ while test "$type"; do
 done
 cd .config/UU
 ans="$value"
+
+# Check for Windows!
+if test "X$g4system" = "XWIN32-VC" -o "X$g4system" = "XWIN32-VC7"; then
+
+checkdrive=`echo $ans|cut -d"/" -f2`
+
+if test "X$checkdrive" = "Xcygdrive"; then
+
+windrive=`echo $ans|cut -d"/" -f3`
+winpath=`echo $ans|cut -d"/" -f4-`
+
+fullwinpath="$windrive:/$winpath"
+ans=$fullwinpath
+
+fi # if cygwin syntax is used
+fi # if Win
+
 rp="$orig_rp"
 dflt="$orig_dflt"
 rm -f getfile.ok
@@ -2382,6 +2402,22 @@ case "$g4install" in
 	HOME=""
 	fi
 	g4install=$HOME/geant4
+
+# Check for Windows!
+if test $g4system = "WIN32-VC" -o $g4system = "WIN32-VC7"; then
+
+checkdrive=`echo $g4install|cut -d"/" -f2`
+
+if test $checkdrive = "cygdrive"; then
+
+windrive=`echo $g4install|cut -d"/" -f3`
+winpath=`echo $g4install|cut -d"/" -f4-`
+
+fullwinpath="$windrive:/$winpath"
+g4install=$fullwinpath
+
+fi
+fi
 	;;
 esac
 
@@ -2397,12 +2433,6 @@ case "$g4includes_flag" in
 	;;
 esac
 
-case "$g4include" in
-'')
-#	g4include=$g4install/include
-	g4include=''
-	;;
-esac
 
 g4message=`cat << EOM
 
@@ -2432,13 +2462,21 @@ g4includes_flag=$ans
 
 if [ X$g4includes_flag = Xy ] ; then
 
+case "$g4include" in
+'')
+	g4include=$g4install/include
+#	g4include=''
+	;;
+esac
+
 g4message=`cat << EOM
 
 Where will be directory to copy all Geant4 headers?
 EOM`
 
 #dflt="NO DEFAULT ANSWER"
-dflt=$g4install/include
+###dflt=$g4install/include
+dflt=$g4include
 fn='d~+'
 rp=$g4message
 . ./getfile
@@ -2543,7 +2581,7 @@ esac
 
 case "$g4ledata" in
 '')
-	g4ledata=$g4install/../G4EMLOW1.1
+	g4ledata=$g4install/../G4EMLOW2.2
 	;;
 esac
 
@@ -2620,12 +2658,38 @@ gans=$ans
 	esac
 done
 
-echo " "
+
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
+clhep_dirs=`find /usr/local/lib /usr/lib -name \*CLHEP\*|xargs echo`
+#echo clhep_dirs=$clhep_dirs
+
+fi
+
+if test "X$clhep_dirs" != "X" ; then
+
+g4clhep_base_dir_found=`echo $clhep_dirs|cut -d" " -f1`
+#echo g4clhep_base_dir_found=$g4clhep_base_dir_found
+
+
+#g4clhep_base_dir_n=`echo $g4clhep_base_dir_found |awk -F"/" '{print NF}'`
+#echo g4clhep_base_dir_n=$g4clhep_base_dir_n
+g4clhep_base_dir_found=`dirname $g4clhep_base_dir_found`
+g4clhep_base_dir_found=`dirname $g4clhep_base_dir_found`
+
+	g4clhep_base_dir=$g4clhep_base_dir_found
+
+else
 case "$g4clhep_base_dir" in
 '')
+	if test "X$g4system" = "XWIN32-VC" -o "X$g4system" = "XWIN32-VC7"; then
+	g4clhep_base_dir="c:/usr/local"
+	else
 	g4clhep_base_dir=/usr/local
+	fi
 	;;
 esac
+fi
 
 case "$g4clhep_include_dir" in
 '')
@@ -2647,9 +2711,11 @@ esac
 
 #while test 1 = 1  ; do
 
+if test "X$clhep_dirs" != "X" ; then
+
 g4message=`cat << EOM
 
-Please, specify where CLHEP is installed:
+Please, specify where CLHEP is installed. It was found in:
 
 CLHEP_BASE_DIR:			$g4clhep_base_dir
 
@@ -2662,6 +2728,24 @@ CLHEP_LIB
 You will be asked about customizing these next.
 EOM`
 
+else
+
+g4message=`cat << EOM
+
+Please, specify where CLHEP is installed (set by default):
+
+CLHEP_BASE_DIR:			$g4clhep_base_dir
+
+According to it will be set:
+
+CLHEP_INCLUDE_DIR		
+CLHEP_LIB_DIR			
+CLHEP_LIB		
+
+You will be asked about customizing these next.
+EOM`
+
+fi
 
 #dflt="Press [Enter] for default settings"
 #fn='d~'
@@ -2762,7 +2846,17 @@ gans=$ans
 	esac
 done
 
+if test "X$g4clhep_base_dir" = "X/usr" -o "X$g4clhep_base_dir" = "X/usr/local"; then
+g4clhep_base_dir=""
+fi
 
+if test "X$g4clhep_include_dir" = "X/usr/include" -o "X$g4clhep_include_dir" = "X/usr/local/include"; then
+g4clhep_include_dir=""
+fi
+
+if test "X$g4clhep_lib_dir" = "X/usr/lib" -o "X$g4clhep_lib_dir" = "X/usr/local/lib"; then
+g4clhep_lib_dir=""
+fi
 
 echo " "
 case "$g4global" in
@@ -2995,6 +3089,8 @@ esac
 #
 echo ""
 
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 while test 1 = 1  ; do
 
 g4message=`cat << EOM
@@ -3116,7 +3212,7 @@ fi
 
 fi
 
-
+fi # if !Win
 echo " "
 
 case "$g4make" in
@@ -3390,6 +3486,8 @@ gans=y
 		;;
 	esac
 
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4UI_BUILD_XAW_SESSION
@@ -3446,6 +3544,9 @@ gans=$ans
 		;;
 	esac
 
+fi # if !WIN
+
+if test "X$g4system" = "XWIN32-VC" -o "X$g4system" = "XWIN32-VC7"; then
 
 g4message=`cat << EOM
 
@@ -3474,6 +3575,10 @@ gans=$ans
 		;;
 	esac
 
+fi # if WIN
+
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4UI_BUILD_WO_SESSION
@@ -3502,6 +3607,8 @@ gans=$ans
 		;;
 	esac
 
+fi #if !WIN
+
 g4message=`cat << EOM
 
   G4UI_USE_TCSH
@@ -3536,11 +3643,6 @@ case "$g4vis_none" in
 	;;
 esac
 
-case "$g4vis_oglhome" in
-'')
-	g4vis_oglhome="/usr"
-	;;
-esac
 
 case "$g4vis_build_openglwin32_driver" in
 '')
@@ -3724,6 +3826,8 @@ case $g4vis_none in
 
 n)
 
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4VIS_BUILD_OPENGLX_DRIVER
@@ -3781,6 +3885,10 @@ gans=$ans
 		;;
 	esac
 
+fi # if !WIN
+
+if test "X$g4system" = "XWIN32-VC" -o "X$g4system" = "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4VIS_BUILD_OPENGLWIN32_DRIVER
@@ -3810,6 +3918,10 @@ gans=$ans
 		;;
 	esac
 
+fi # if WIN
+
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4VIS_BUILD_DAWN_DRIVER
@@ -3867,6 +3979,10 @@ gans=$ans
 		;;
 	esac
 
+fi # if !WIN
+
+if test "X$g4system" = "XWIN32-VC" -o "X$g4system" = "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4VIS_BUILD_OIWIN32_DRIVER
@@ -3895,6 +4011,10 @@ gans=$ans
 		;;
 	esac
 
+fi # if WIN
+
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 g4message=`cat << EOM
 
   G4VIS_BUILD_DAWNFILE_DRIVER
@@ -4043,6 +4163,7 @@ gans=y
 		;;
 	esac
 
+fi # if !WIN
 
 g4message=`cat << EOM
 
@@ -4102,24 +4223,77 @@ gans=y
 ;;
 esac
 
+if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
+
 if [ X$g4vis_build_openglx_driver = Xy ] || [ X$g4vis_build_openglxm_driver = Xy ] || [ X$g4vis_build_openglwin32_driver = Xy ] ; then 
 
+#####################################################################
+ogl_dirs=`find /usr/local/lib /usr/lib -name libGLU\*|xargs echo`
+#echo ogl_dirs=$ogl_dirs
+
+if test "X$ogl_dirs" != "X" ; then
+
+g4ogl_base_dir_found=`echo $ogl_dirs|cut -d" " -f1`
+#echo g4ogl_base_dir_found=$g4ogl_base_dir_found
+
+# That's right: should be twice! (e.g./usr/local/lib/libGLU.so -> /usr/local)
+g4ogl_base_dir_found=`dirname $g4ogl_base_dir_found`
+g4ogl_base_dir_found=`dirname $g4ogl_base_dir_found`
+
+	g4vis_oglhome=$g4ogl_base_dir_found
+else
+case "$g4vis_oglhome" in
+'')
+	g4vis_oglhome=/usr
+	;;
+esac
+fi
+
+##########################################################################
+
+if test "X$ogl_dirs" != "X" ; then
+
+g4message=`cat << EOM
+
+  OGLHOME/include
+  OGLHOME/lib
+
+You have selected to use OpenGL driver.
+Specify the correct path (OGLHOME) where OpenGL is installed in your system.
+It was found in:
+EOM`
+
+else
+
 g4message=`cat << EOM
 
   OGLHOME/include
   OGLHOME/lib
 
 You have selected to use OpenGL driver.
-Specify the correct path (OGLHOME) where OpenGL is installed in your system:
+Specify the correct path (OGLHOME) where OpenGL is installed in your system
+(set by defalt):
 EOM`
 
+fi
+
 dflt=$g4vis_oglhome
 fn='d~'
 rp=$g4message
 . ./getfile
 g4vis_oglhome=$ans
 
+if test "X$g4osname" = "XLinux"; then 
+
+if test "X$g4vis_oglhome" = "X/usr" -o "X$g4vis_oglhome" = "X/usr/local"; then
+g4vis_oglhome=""
 fi
+
+fi # if platform (Linux vs SUN)
+
+fi # if need
+fi # if platform (Unix vs Win)
+
 echo " "
 case "$g4wlib_build_g3tog4" in
 '')
@@ -4127,7 +4301,7 @@ case "$g4wlib_build_g3tog4" in
 	;;
 esac
 
-case "$g4w_use_g4tog4" in
+case "$g4w_use_g3tog4" in
 '')
 	g4w_use_g3tog4=n
 	;;
@@ -4137,7 +4311,7 @@ echo ""
 
 g4message=`cat << EOM
 
-  G4USE_G3TOG4  
+  G4LIB_BUILD_G3TOG4  
 
 If this variable is set, it will be built G3TOG4 module.
 Do you want to set this variable ?
@@ -4153,7 +4327,7 @@ gans=$ans
 	
 	n*|N*) 
 		g4wlib_build_g3tog4=n
-		g4w_use_g4tog4=n
+		g4w_use_g3tog4=n
 		;;
 	y*|Y*) 
 		g4wlib_build_g3tog4=y
@@ -4162,6 +4336,48 @@ gans=$ans
 	esac
 
 
+echo " "
+case "$g4wlib_build_step" in
+'')
+	g4wlib_build_step=n
+	;;
+esac
+
+case "$g4w_use_step" in
+'')
+	g4w_use_step=n
+	;;
+esac
+
+echo ""
+
+g4message=`cat << EOM
+
+  G4LIB_BUILD_STEP  
+
+If this variable is set, it will be built STEP module.
+Do you want to set this variable ?
+
+EOM`
+
+dflt=$g4wlib_build_step
+rp=$g4message
+. ./myread
+gans=$ans
+
+	case $gans in
+	
+	n*|N*) 
+		g4wlib_build_step=n
+		g4w_use_step=n
+		;;
+	y*|Y*) 
+		g4wlib_build_step=y
+		g4w_use_step=y
+		;;
+	esac
+
+
 echo " "
 
 case "$g4wanalysis_use" in
@@ -4287,6 +4503,7 @@ g4debug='$g4debug'
 g4global='$g4global'
 g4granular='$g4granular'
 g4include='$g4include'
+g4includes_flag='$g4includes_flag'
 g4install='$g4install'
 g4ledata='$g4ledata'
 g4levelgammadata='$g4levelgammadata'
@@ -4340,6 +4557,7 @@ g4vis_use_raytracer='$g4vis_use_raytracer'
 g4vis_use_vrml='$g4vis_use_vrml'
 g4vis_use_vrmlfile='$g4vis_use_vrmlfile'
 g4w_use_g3tog4='$g4w_use_g3tog4'
+g4w_use_step='$g4w_use_step'
 g4wanalysis_build='$g4wanalysis_build'
 g4wanalysis_build_jas='$g4wanalysis_build_jas'
 g4wanalysis_build_lab='$g4wanalysis_build_lab'
@@ -4349,6 +4567,7 @@ g4wanalysis_use_jas='$g4wanalysis_use_jas'
 g4wanalysis_use_lab='$g4wanalysis_use_lab'
 g4wanalysis_use_lizard='$g4wanalysis_use_lizard'
 g4wlib_build_g3tog4='$g4wlib_build_g3tog4'
+g4wlib_build_step='$g4wlib_build_step'
 g4workdir='$g4workdir'
 hint='$hint'
 lns='$lns'
diff --git a/ReleaseNotes/Patch4.5.2-2.txt b/ReleaseNotes/Patch4.5.2-2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ee2ec3b762a9f1a561c37bc39bcc492ac2647e22
--- /dev/null
+++ b/ReleaseNotes/Patch4.5.2-2.txt
@@ -0,0 +1,72 @@
+
+                 Geant4 5.2 - patch-02 Release Notes
+                 -----------------------------------
+
+                                                            3 October 2003
+
+List of fixes included in this public patch since release 5.2.p01:
+
+  o Configuration script
+    --------------------
+    + Configure:
+      o Corrected default name for data sets.
+      o Implemented automatic detection of OpenGL and CLHEP installations.
+      o Fixed behavior of script on Windows system, corrected definition of
+        paths and defaults.
+      o Cleared not allowed configuration drivers.
+
+  o Geometry:
+    --------
+    + verification:
+      o Fixed logic in G4GeomTestSegment::FindSomePoints() in case a
+        point gets stuck in a loop while along a curved surface.
+	Addresses also problem report #499.
+    + volumes:
+      o Made optional the printing of information on 'looping' particles
+        in G4PropagatorInField. It is now controlled by the verbose flag.
+        Addresses problem report #509.
+
+  o Hadronic processes:
+    ------------------
+    + management
+      o Fixed major bug in G4HadronicProcess class, affecting final state
+        generation in all materials with more than two elements.
+    + cross_sections:
+      o Fixes in the high energy equivalent photon generation in the
+        electronuclear interactions above 50 GeV. 
+
+  o Particles:
+    ---------
+    + Fixed memory leak for 'theElectronOccupancy' in G4DynamicParticle
+      assignment operator.
+    + Added DecayProperTime to deep copy of G4DecayProduct.
+
+  o Examples:
+    --------
+  - Updated reference outputs.
+  - advanced:
+      + composite_calorimeter
+        o Minor fix in inclusion of headers.
+  - extended:
+      + field
+        o Implemented complete migration to cuts-by-region.
+  - novice:
+      + N05
+        o Implemented complete migration to cuts-by-region.
+
+ ----------------------------------------------------------------------------
+
+                             Technical Notes
+                             --------------- 
+
+  o  This patch should be applied on top of release 5.2-patch01.
+     It is NOT a cumulative patch !
+  o  Technical notes distributed for release 5.2 are also applicable and
+     valid for this patch.
+
+The code and rebuilt binary libraries for release 5.2 are available through
+our "Source Code" Web page:  http://cern.ch/geant4
+
+Please refer to the Geant4 User Documentation:
+   http://cern.ch/geant4/G4UsersDocuments/Overview/html
+for further information about using Geant4.
diff --git a/config/scripts/GNUmakefile b/config/scripts/GNUmakefile
index 615abf6a6eb1de0b440d7ba3c57304c492342a09..9c0bd16304b5106d569733987ab604c9919021c8 100644
--- a/config/scripts/GNUmakefile
+++ b/config/scripts/GNUmakefile
@@ -1,6 +1,6 @@
-# $Id: GNUmakefile,v 1.3 2003/05/28 08:03:22 gcosmo Exp $
+# $Id: GNUmakefile,v 1.8 2003/10/02 17:57:10 stesting Exp $
 # --------------------------------------------------------------
-# GNUmakefile for config scripts.  Sergei Sadilov, 13/12/02.
+# GNUmakefile for tests module.  Gabriele Cosmo, 27/06/98.
 # --------------------------------------------------------------
 
 name := Marker
diff --git a/config/scripts/binmake.gmk b/config/scripts/binmake.gmk
index c2a621b9ebe8d477fc98d5055ae07f1c46e80654..b0b069affdcf519d63852c4be7f4b02d7c58bc7a 100644
--- a/config/scripts/binmake.gmk
+++ b/config/scripts/binmake.gmk
@@ -1,4 +1,4 @@
-# $Id: binmake.gmk,v 1.3 2003/05/28 08:03:22 gcosmo Exp $
+# $Id: binmake.gmk,v 1.8 2003/10/02 17:57:10 stesting Exp $
 # ----------------------------------------------------------
 # Script defining rules and paths for making binaries.
 #    First implementation: Gabriele Cosmo, 25/06/1998.
@@ -95,6 +95,8 @@ ifndef INCFLAGS
               -I$(G4BASE)/geometry/solids/specific/include \
               -I$(G4BASE)/geometry/solids/BREPS/include \
               -I$(G4BASE)/geometry/solids/Boolean/include \
+              -I$(G4BASE)/geometry/solids/STEP/include \
+              -I$(G4BASE)/geometry/solids/STEPinterface/include \
               -I$(G4BASE)/geometry/volumes/include \
               -I$(G4BASE)/geometry/verification/include \
               -I$(G4BASE)/geometry/magneticfield/include \
@@ -109,12 +111,8 @@ ifndef INCFLAGS
               -I$(G4BASE)/event/include \
               -I$(G4BASE)/graphics_reps/include \
               -I$(G4BASE)/intercoms/include
-  ifdef G4USE_STEP
-    INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \
-                -I$(G4BASE)/geometry/solids/STEPinterface/include
-  endif
   ifdef G4USE_G3TOG4
-    INCFLAGS += -I$(G4BASE)/g3tog4/include
+    INCFLAGS +=  -I$(G4BASE)/g3tog4/include
   endif
  endif
 endif
@@ -230,7 +228,7 @@ else
 endif
 LDLIBS_PREFINAL += $(LDLIBS4)
 
-ifneq (,$(findstring WIN32-VC,$(G4SYSTEM)))
+ifeq ($(G4SYSTEM),WIN32-VC)
   WIN32TMP := $(patsubst -L%,$(LIB_PATH)%,$(LDFLAGS))
   LDFLAGS  = $(patsubst /,$(PATH_DEL),$(WIN32TMP))
   LDLIBS = $(patsubst -l%,lib%.a,$(LDLIBS_PREFINAL))
@@ -333,7 +331,7 @@ $(G4TMPDIR)/exe/$(G4TARGET).d: $(G4TARGET).cc
 	@if [ ! -d $(G4TMPDIR)/exe ] ; then mkdir $(G4TMPDIR)/exe ;fi
 	@echo Making dependency for file $<...
 	@set -e;\
-	g++ $(GPPFLAGS) $(CPPFLAGS) -w $< |\
+	g++ $(GPPFLAGS) $(CPPFLAGS) $< |\
 	sed 's!$(G4TARGET)\.o!$(G4TMPDIR)/exe/& $@!' >$@;\
 	[ -s $@ ] || rm -f $@
 ifneq ($(dependencies),)
diff --git a/config/scripts/env.csh.SH b/config/scripts/env.csh.SH
index 6aecabe9cf2d711ab4d0e9413c071a9eeabff44e..7d270d137388f2ce45ecef23590395bccd16465d 100755
--- a/config/scripts/env.csh.SH
+++ b/config/scripts/env.csh.SH
@@ -287,6 +287,20 @@ setenv G4USE_G3TOG4 1
 echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4"
 endif 
 
+#
+# Use STEP module
+#
+#+
+if ( X$g4wlib_build_step == Xy )  then
+setenv G4LIB_BUILD_STEP 1
+echo "On this machine the G4LIB_BUILD_STEP=\$G4LIB_BUILD_STEP"
+endif 
+
+if ( X$g4w_use_step == Xy )  then
+setenv G4USE_STEP 1
+echo "On this machine the G4USE_STEP=\$G4USE_STEP"
+endif 
+
 #+
 #
 # g4shared
@@ -334,11 +348,38 @@ $spitshell >>env.csh <<'!NO!SUBS!'
 if ( ${?G4WORKDIR} ) then
 echo "In your environment you have the G4WORKDIR=$G4WORKDIR"
 else
-echo "G4WORKDIR will be set to HOME=$HOME."
-setenv G4WORKDIR $HOME
+# Check for Windows!
+if ( "X$G4SYSTEM" == "XWIN32-VC" || "X$G4SYSTEM" == "XWIN32-VC7" ) then
+
+setenv checkdrive `echo $HOME|cut -d"/" -f2`
+
+if ( "X$checkdrive" == "Xcygdrive" ) then
+
+setenv windrive `echo $HOME|cut -d"/" -f3`
+setenv winpath `echo $HOME|cut -d"/" -f4-`
+
+setenv fullwinpath "$windrive:/$winpath"
+setenv G4WORKDIR $fullwinpath
+
+endif # if cygwin syntax is used
+
+if ( "X$winpath" == "X" ) then
+echo "G4WORKDIR will be set to ${G4WORKDIR}geant4 (in "native" Windows syntax)."
+setenv G4WORKDIR ${G4WORKDIR}geant4
+else
+echo "G4WORKDIR will be set to $G4WORKDIR/geant4 (in "native" Windows syntax)."
+setenv G4WORKDIR $G4WORKDIR/geant4
 endif
 
 
+else # if Unix
+
+echo "G4WORKDIR will be set to HOME/geant4=$HOME/geant4"
+setenv G4WORKDIR $HOME/geant4
+
+endif
+endif
+
 !NO!SUBS!
 chmod 755 env.csh
 $eunicefix env.csh
diff --git a/config/scripts/env.sh.SH b/config/scripts/env.sh.SH
index 67a0368756eb95d6a6fa3262e9a6254422b18332..f478b1fd78688929492d0a007ffcdc572e231a33 100755
--- a/config/scripts/env.sh.SH
+++ b/config/scripts/env.sh.SH
@@ -410,6 +410,26 @@ echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4"
 fi
 fi 
 
+#
+# Use STEP module
+#
+#+
+if [ X$g4wlib_build_step = Xy ] ; then
+G4LIB_BUILD_STEP=1
+export G4LIB_BUILD_STEP
+if [ X\$g4non_display = X ] ; then
+echo "On this machine the G4LIB_BUILD_STEP=\$G4LIB_BUILD_STEP"
+fi
+fi 
+
+if [ X$g4w_use_step = Xy ] ; then
+G4USE_STEP=1
+export G4USE_STEP
+if [ X\$g4non_display = X ] ; then
+echo "On this machine the G4USE_STEP=\$G4USE_STEP"
+fi
+fi 
+
 #+
 #
 # g4shared
@@ -470,14 +490,48 @@ $spitshell >>env.sh <<'!NO!SUBS!'
 # G4WORKDIR
 #
 if [ $G4WORKDIR ] ; then
+
 if [ X$g4non_display = X ] ; then
 echo "In your environment you have the G4WORKDIR=$G4WORKDIR"
-fi
+fi # if non_display
+
 else
+
 if [ X$g4non_display = X ] ; then
-echo "G4WORKDIR will be set to HOME=$HOME."
+
+# Check for Windows!
+if test "X$G4SYSTEM" = "XWIN32-VC" -o "X$G4SYSTEM" = "XWIN32-VC7"; then
+
+checkdrive=`echo $HOME|cut -d"/" -f2`
+
+if test "X$checkdrive" = "Xcygdrive"; then
+
+windrive=`echo $HOME|cut -d"/" -f3`
+winpath=`echo $HOME|cut -d"/" -f4-`
+
+fullwinpath="$windrive:/$winpath"
+G4WORKDIR=$fullwinpath
+
+fi # if cygwin syntax is used
+
+if test "X$winpath" = "X"; then
+echo "G4WORKDIR will be set to ${G4WORKDIR}geant4 (in "native" Windows syntax)"
+export G4WORKDIR=${G4WORKDIR}geant4
+else
+echo "G4WORKDIR will be set to $G4WORKDIR/geant4 (in "native" Windows syntax)"
+export G4WORKDIR=${G4WORKDIR}/geant4
 fi
-export G4WORKDIR=$HOME
+
+
+else # if Unix
+
+echo "G4WORKDIR will be set to HOME/geant4=$HOME/geant4"
+export G4WORKDIR=$HOME/geant4
+
+fi # if platforms
+
+fi
+
 fi
 
 !NO!SUBS!
diff --git a/config/scripts/install.sh.SH b/config/scripts/install.sh.SH
index aeac7d2156080fbea0845d5e9c4283aaa1d99a55..544bb42ac23ba6655c8ea6ebce0df502cdca1d93 100755
--- a/config/scripts/install.sh.SH
+++ b/config/scripts/install.sh.SH
@@ -335,6 +335,22 @@ export G4USE_G3TOG4
 echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4"
 fi 
 
+#
+# Use STEP module
+#
+#+
+if [ X$g4wlib_build_step = Xy ] ; then
+G4LIB_BUILD_STEP=1
+export G4LIB_BUILD_STEP
+echo "On this machine the G4LIB_BUILD_STEP=\$G4LIB_BUILD_STEP"
+fi 
+
+if [ X$g4w_use_step = Xy ] ; then
+G4USE_STEP=1
+export G4USE_STEP
+echo "On this machine the G4USE_STEP=\$G4USE_STEP"
+fi 
+
 #+
 #
 # g4shared
@@ -375,6 +391,9 @@ fi
 
 #####################################################################
 
+echo g4conf=$g4conf
+
+#####################################################################
 # Create GNUmakefile.db to keep ALL GNUmakefile DB :)
 
 if test -f \$G4INSTALL/config/scripts/GNUmakefile.db ; then
@@ -391,20 +410,45 @@ echo ""
 echo "Starting installation..."
 echo ""
 cd $g4install/source
-echo `pwd`
+#echo `pwd`
 
 # There is no env!
 if [ X$g4global = Xy ] ; then
-$g4make global
+echo ""
+rm -rf $g4conf/g4make.log
+$g4make global 2>&1 | tee $g4conf/g4make.log
 fi
 
 # There is env for binaries - for User: should be set in env.[c]sh!
 if [ X$g4granular = Xy ] ; then
 G4LIB_USE_GRANULAR=1
 export G4LIB_USE_GRANULAR
-$g4make
+rm -rf $g4conf/g4make.log
+$g4make 2>&1 | tee $g4conf/g4make.log
 fi
 
+# Check for errors in log file
+export err=\$[ \`grep Error $g4conf/g4make.log | wc -w\` ]
+# echo err=\$err
+
+if [ X\$err = X0 ] ; then
+echo ""
+echo "####################################################"
+echo "# Your Geant4 installation seems to be successful! #"
+echo "# To be sure please have a look into the log file: #"
+echo "# $g4conf/g4make.log				 #"
+echo "####################################################"
+echo ""
+else
+echo ""
+echo "############################################################"
+echo "# It looks like you had errors during Geant4 installation! #"
+echo "# Please check log file:				      	 #"
+echo "# $g4conf/g4make.log					 #"
+echo "############################################################"
+echo ""
+fi 
+
 # There is no env!
 if [ X$g4includes_flag = Xy ] ; then
 $g4make includes
diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History
index 29130375f6d74ab799c014deabdd995009505020..fe86243bc556ae0a2e413848857187ac330f6cc1 100644
--- a/examples/advanced/composite_calorimeter/History
+++ b/examples/advanced/composite_calorimeter/History
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------
-$Id: History,v 1.12 2003/06/12 15:25:20 ribon Exp $
+$Id: History,v 1.13 2003/09/18 09:00:06 vnivanch Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -9,6 +9,9 @@ $Id: History,v 1.12 2003/06/12 15:25:20 ribon Exp $
                       Example History file
                       ---------------------
 
+18.09.03 V.Ivanchenko (ccal-V05-02-00)
+- Complete migration to model EM physics
+
 12.06.2003 - A.Ribon (ccal-V05-01-02)
 - Updated the LHEP, QGSP, and QGSC Physics Lists. 
   Done also some clean up.
diff --git a/examples/advanced/composite_calorimeter/include/G4EMModelBuilder.hh b/examples/advanced/composite_calorimeter/include/G4EMModelBuilder.hh
index efe9097524e10aca5146bea2adc8fa1406878135..7ab7ecdf1e49f5ae81da06a6c15da58041ecc557 100644
--- a/examples/advanced/composite_calorimeter/include/G4EMModelBuilder.hh
+++ b/examples/advanced/composite_calorimeter/include/G4EMModelBuilder.hh
@@ -30,9 +30,9 @@
 #include "G4ComptonScattering.hh"
 #include "G4GammaConversion.hh"
 #include "G4eplusAnnihilation.hh"
-#include "G4MultipleScatteringSTD.hh"
-#include "G4eIonisationSTD.hh"
-#include "G4eBremsstrahlungSTD.hh"
+#include "G4MultipleScattering52.hh"
+#include "G4eIonisation52.hh"
+#include "G4eBremsstrahlung52.hh"
 
 class G4EMModelBuilder 
 {
@@ -48,13 +48,13 @@ class G4EMModelBuilder
     G4ComptonScattering theComptonEffect;
     G4GammaConversion thePairProduction;
   
-    G4MultipleScatteringSTD theElectronMultipleScattering;
-    G4eIonisationSTD theElectronIonisation;
-    G4eBremsstrahlungSTD theElectronBremsStrahlung;
+    G4MultipleScattering52 theElectronMultipleScattering;
+    G4eIonisation52 theElectronIonisation;
+    G4eBremsstrahlung52 theElectronBremsStrahlung;
   
-    G4MultipleScatteringSTD thePositronMultipleScattering;
-    G4eIonisationSTD thePositronIonisation; 
-    G4eBremsstrahlungSTD thePositronBremsStrahlung;  
+    G4MultipleScattering52 thePositronMultipleScattering;
+    G4eIonisation52 thePositronIonisation; 
+    G4eBremsstrahlung52 thePositronBremsStrahlung;  
     G4eplusAnnihilation theAnnihilation;
 };
 // 2002 by J.P. Wellisch
diff --git a/examples/advanced/composite_calorimeter/include/G4HadronModelQEDBuilder.hh b/examples/advanced/composite_calorimeter/include/G4HadronModelQEDBuilder.hh
index 3f8dde731c07f4ff14b63bb8e2ee46a529ab906c..79c3e36e0fec100321cfc13c8897601d7d8d7101 100644
--- a/examples/advanced/composite_calorimeter/include/G4HadronModelQEDBuilder.hh
+++ b/examples/advanced/composite_calorimeter/include/G4HadronModelQEDBuilder.hh
@@ -27,8 +27,8 @@
 #include "G4ios.hh"
 #include <vector>
 
-#include "G4MultipleScatteringSTD.hh"
-#include "G4hIonisationSTD.hh"
+#include "G4MultipleScattering52.hh"
+#include "G4hIonisation52.hh"
 #include "G4ProcessManager.hh"
 
 class G4HadronModelQEDBuilder 
@@ -41,65 +41,65 @@ class G4HadronModelQEDBuilder
     virtual void Build();
 
   private:  
-    void RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD* aI);
+    void RegisterOne(G4ProcessManager* aP, G4MultipleScattering52 * aM, G4hIonisation52* aI);
 
   private:
   
    // Pi + 
-   G4MultipleScatteringSTD thePionPlusMult;
-   G4hIonisationSTD thePionPlusIonisation;
+   G4MultipleScattering52 thePionPlusMult;
+   G4hIonisation52 thePionPlusIonisation;
 
    // Pi -
-   G4MultipleScatteringSTD thePionMinusMult;
-   G4hIonisationSTD thePionMinusIonisation;
+   G4MultipleScattering52 thePionMinusMult;
+   G4hIonisation52 thePionMinusIonisation;
 
    // K + 
-   G4MultipleScatteringSTD theKaonPlusMult;
-   G4hIonisationSTD theKaonPlusIonisation;
+   G4MultipleScattering52 theKaonPlusMult;
+   G4hIonisation52 theKaonPlusIonisation;
 
    // K -
-   G4MultipleScatteringSTD theKaonMinusMult;
-   G4hIonisationSTD theKaonMinusIonisation;
+   G4MultipleScattering52 theKaonMinusMult;
+   G4hIonisation52 theKaonMinusIonisation;
 
    // Proton
-   G4MultipleScatteringSTD theProtonMult;
-   G4hIonisationSTD theProtonIonisation;
+   G4MultipleScattering52 theProtonMult;
+   G4hIonisation52 theProtonIonisation;
  
    // anti-proton
-   G4MultipleScatteringSTD theAntiProtonMult;
-   G4hIonisationSTD theAntiProtonIonisation; 
+   G4MultipleScattering52 theAntiProtonMult;
+   G4hIonisation52 theAntiProtonIonisation; 
       
    // SigmaMinus
-   G4MultipleScatteringSTD theSigmaMinusMult;
-   G4hIonisationSTD theSigmaMinusIonisation;
+   G4MultipleScattering52 theSigmaMinusMult;
+   G4hIonisation52 theSigmaMinusIonisation;
   
    // AntiSigmaMinus
-   G4MultipleScatteringSTD theAntiSigmaMinusMult;
-   G4hIonisationSTD theAntiSigmaMinusIonisation;
+   G4MultipleScattering52 theAntiSigmaMinusMult;
+   G4hIonisation52 theAntiSigmaMinusIonisation;
    
    // SigmaPlus
-   G4MultipleScatteringSTD theSigmaPlusMult;
-   G4hIonisationSTD theSigmaPlusIonisation;
+   G4MultipleScattering52 theSigmaPlusMult;
+   G4hIonisation52 theSigmaPlusIonisation;
   
    // AntiSigmaPlus
-   G4MultipleScatteringSTD theAntiSigmaPlusMult;
-   G4hIonisationSTD theAntiSigmaPlusIonisation;
+   G4MultipleScattering52 theAntiSigmaPlusMult;
+   G4hIonisation52 theAntiSigmaPlusIonisation;
     
    // XiMinus
-   G4MultipleScatteringSTD theXiMinusMult;
-   G4hIonisationSTD theXiMinusIonisation;
+   G4MultipleScattering52 theXiMinusMult;
+   G4hIonisation52 theXiMinusIonisation;
 
    // AntiXiMinus
-   G4MultipleScatteringSTD theAntiXiMinusMult;
-   G4hIonisationSTD theAntiXiMinusIonisation;
+   G4MultipleScattering52 theAntiXiMinusMult;
+   G4hIonisation52 theAntiXiMinusIonisation;
   
    // OmegaMinus
-   G4MultipleScatteringSTD theOmegaMinusMult;
-   G4hIonisationSTD theOmegaMinusIonisation;
+   G4MultipleScattering52 theOmegaMinusMult;
+   G4hIonisation52 theOmegaMinusIonisation;
    
    // AntiOmegaMinus
-   G4MultipleScatteringSTD theAntiOmegaMinusMult;
-   G4hIonisationSTD theAntiOmegaMinusIonisation;
+   G4MultipleScattering52 theAntiOmegaMinusMult;
+   G4hIonisation52  theAntiOmegaMinusIonisation;
 
    
 };
diff --git a/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh b/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh
index c4c24194e324438401dbb6fd8b6a0738b0c952b1..c6761b54fa4b8b579ec925a758b8f0b789daa684 100644
--- a/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh
+++ b/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh
@@ -43,9 +43,9 @@
 #include "G4AlphaInelasticProcess.hh"
 #include "G4LEAlphaInelastic.hh"
 
-#include "G4hIonisationSTD.hh"
+#include "G4hIonisation52.hh"
 #include "G4ionIonisation.hh"
-#include "G4MultipleScatteringSTD.hh"
+#include "G4MultipleScattering52.hh"
 
 class IonModelPhysics : public G4VPhysicsConstructor
 {
@@ -68,35 +68,35 @@ class IonModelPhysics : public G4VPhysicsConstructor
    G4LElastic*            theElasticModel;
 
    // Generic Ion physics
-   G4HadronElasticProcess    theIonElasticProcess;
-   G4MultipleScatteringSTD   fIonMultipleScattering;
-   G4ionIonisation           fIonIonisation;
+   G4HadronElasticProcess     theIonElasticProcess;
+   G4MultipleScattering52     fIonMultipleScattering;
+   G4hIonisation52            fIonIonisation;
 
    // Deuteron physics
-   G4HadronElasticProcess      theDElasticProcess;
-   G4MultipleScatteringSTD     fDeuteronMultipleScattering;
-   G4hIonisationSTD            fDeuteronIonisation;
-   G4DeuteronInelasticProcess  fDeuteronProcess;
-   G4LEDeuteronInelastic*      fDeuteronModel;
+   G4HadronElasticProcess     theDElasticProcess;
+   G4MultipleScattering52     fDeuteronMultipleScattering;
+   G4hIonisation52            fDeuteronIonisation;
+   G4DeuteronInelasticProcess fDeuteronProcess;
+   G4LEDeuteronInelastic*     fDeuteronModel;
 
    // Triton physics
-   G4HadronElasticProcess      theTElasticProcess;
-   G4MultipleScatteringSTD     fTritonMultipleScattering;
-   G4hIonisationSTD            fTritonIonisation;
-   G4TritonInelasticProcess    fTritonProcess;
-   G4LETritonInelastic*        fTritonModel;
+   G4HadronElasticProcess     theTElasticProcess;
+   G4MultipleScattering52     fTritonMultipleScattering;
+   G4hIonisation52            fTritonIonisation;
+   G4TritonInelasticProcess   fTritonProcess;
+   G4LETritonInelastic*       fTritonModel;
   
    // Alpha physics
-   G4HadronElasticProcess      theAElasticProcess;
-   G4MultipleScatteringSTD     fAlphaMultipleScattering;
-   G4hIonisationSTD            fAlphaIonisation;
-   G4AlphaInelasticProcess     fAlphaProcess;
-   G4LEAlphaInelastic*         fAlphaModel;
+   G4HadronElasticProcess     theAElasticProcess;
+   G4MultipleScattering52     fAlphaMultipleScattering;
+   G4hIonisation52            fAlphaIonisation;
+   G4AlphaInelasticProcess    fAlphaProcess;
+   G4LEAlphaInelastic*        fAlphaModel;
 
    // He3 physics
-   G4HadronElasticProcess      theHe3ElasticProcess;
-   G4MultipleScatteringSTD     fHe3MultipleScattering;
-   G4hIonisationSTD            fHe3Ionisation;
+   G4HadronElasticProcess     theHe3ElasticProcess;
+   G4MultipleScattering52     fHe3MultipleScattering;
+   G4hIonisation52            fHe3Ionisation;
 
 };
 
diff --git a/examples/advanced/composite_calorimeter/include/IonPhysics.hh b/examples/advanced/composite_calorimeter/include/IonPhysics.hh
index b611739e0f00db9b6c8cd18bdda50c3a8a1f0064..27a03ff2b42c534f034a356c48074426f465dd4c 100644
--- a/examples/advanced/composite_calorimeter/include/IonPhysics.hh
+++ b/examples/advanced/composite_calorimeter/include/IonPhysics.hh
@@ -43,6 +43,7 @@
 #include "G4AlphaInelasticProcess.hh"
 #include "G4LEAlphaInelastic.hh"
 
+#include "G4ionIonisation.hh"
 #include "G4hIonisation.hh"
 #include "G4MultipleScattering.hh"
 
@@ -64,12 +65,12 @@ class IonPhysics : public G4VPhysicsConstructor
 
   protected:
    // Elastic Process
-   G4LElastic*            theElasticModel;
+   G4LElastic*                 theElasticModel;
 
    // Generic Ion physics
-   G4HadronElasticProcess theIonElasticProcess;
-   G4MultipleScattering   fIonMultipleScattering;
-   G4hIonisation          fIonIonisation;
+   G4HadronElasticProcess      theIonElasticProcess;
+   G4MultipleScattering        fIonMultipleScattering;
+   G4ionIonisation             fIonIonisation;
 
    // Deuteron physics
    G4HadronElasticProcess      theDElasticProcess;
diff --git a/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh b/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh
index 40369c0e99ad295a3a55518487a8c56b61752b0d..84dcad6ce52fa7f1817b6963e3310af8a1db9362 100644
--- a/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh
+++ b/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh
@@ -27,11 +27,11 @@
 #include "G4ios.hh"
 
 #include "G4VPhysicsConstructor.hh"
-#include "G4MultipleScatteringSTD.hh"
-#include "G4MuBremsstrahlungSTD.hh"
-#include "G4MuPairProductionSTD.hh"
-#include "G4MuIonisationSTD.hh"
-#include "G4hIonisationSTD.hh"
+#include "G4MultipleScattering52.hh"
+#include "G4MuBremsstrahlung52.hh"
+#include "G4MuPairProduction52.hh"
+#include "G4MuIonisation52.hh"
+#include "G4hIonisation52.hh"
 
 #include "G4MuonMinusCaptureAtRest.hh"
 
@@ -53,24 +53,24 @@ class MuonModelPhysics : public G4VPhysicsConstructor
 
   protected:
    // Muon physics
-   G4MultipleScatteringSTD   fMuPlusMultipleScattering;
-   G4MuBremsstrahlungSTD     fMuPlusBremsstrahlung ;
-   G4MuPairProductionSTD     fMuPlusPairProduction;
-   G4MuIonisationSTD         fMuPlusIonisation;
+   G4MultipleScattering52   fMuPlusMultipleScattering;
+   G4MuBremsstrahlung52     fMuPlusBremsstrahlung ;
+   G4MuPairProduction52     fMuPlusPairProduction;
+   G4MuIonisation52         fMuPlusIonisation;
 
-   G4MultipleScatteringSTD   fMuMinusMultipleScattering;
-   G4MuBremsstrahlungSTD     fMuMinusBremsstrahlung ;
-   G4MuPairProductionSTD     fMuMinusPairProduction;
-   G4MuIonisationSTD         fMuMinusIonisation;
+   G4MultipleScattering52   fMuMinusMultipleScattering;
+   G4MuBremsstrahlung52     fMuMinusBremsstrahlung ;
+   G4MuPairProduction52     fMuMinusPairProduction;
+   G4MuIonisation52         fMuMinusIonisation;
 
    G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest;
 
    // Tau physics
-   G4MultipleScatteringSTD   fTauPlusMultipleScattering;
-   G4hIonisationSTD          fTauPlusIonisation;
+   G4MultipleScattering52   fTauPlusMultipleScattering;
+   G4hIonisation52          fTauPlusIonisation;
 
-   G4MultipleScatteringSTD   fTauMinusMultipleScattering;
-   G4hIonisationSTD          fTauMinusIonisation;
+   G4MultipleScattering52   fTauMinusMultipleScattering;
+   G4hIonisation52          fTauMinusIonisation;
 
 };
 
diff --git a/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc b/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc
index 2e47183c56b433732b0369dcc794cb5b3d47c85b..5f7c9b6d224518471c97df50dd7f43225b68cac1 100644
--- a/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc
+++ b/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc
@@ -50,7 +50,7 @@ G4HadronModelQEDBuilder::G4HadronModelQEDBuilder() {}
 G4HadronModelQEDBuilder::~G4HadronModelQEDBuilder(){}
 
 void G4HadronModelQEDBuilder::
-RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD * aI)
+RegisterOne(G4ProcessManager* aP, G4MultipleScattering52 * aM, G4hIonisation52 * aI)
 {
   aP->AddProcess(aI, ordInActive,2, 2);
   aP->AddProcess(aM);
diff --git a/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc b/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc
index 40e6aaf19dcabdb90f12617715f26054e9f9cc26..defc8fa5e63f879ec7518c645f29d0cc1353631f 100644
--- a/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc
+++ b/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc
@@ -31,6 +31,8 @@
 #include "G4BaryonConstructor.hh"
 #include "G4ProcessManager.hh"
 
+#include "G4Proton.hh"
+#include "G4AntiProton.hh"
 #include "G4PionPlus.hh"
 #include "G4PionMinus.hh"
 #include "G4KaonPlus.hh"
diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out
index f1f8bbb6505eca96ced7036b398acf4be00bed6c..75a8be4d4d6387f3ef622415a460432c5e9ac81a 100644
--- a/examples/extended/electromagnetic/TestEm1/TestEm1.out
+++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV;
@@ -164,7 +164,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=28s Real=43s Sys=11s
+  User=30s Real=1.1e+02s Sys=11s
 
  nb tracks/event   neutral:    27.9700   charged:   701.2500
  nb  steps/event   neutral:   147.2700   charged:  3376.9000
diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out
index d2eb72d59f7aa6b6fc318a23ee6864d5dd2ff1e0..9e5ffdbbe95d4e7039336e2c6d78c34f49a71c11 100644
--- a/examples/extended/electromagnetic/TestEm10/TestEm10.out
+++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
@@ -225,7 +225,7 @@ Regular X-ray TR  radiator EM process is called
 48	fGamma = 8.085e+04	sumE = 7.114
 49	fGamma = 9.283e+04	sumE = 7.138
 
-total time for build X-ray TR energy loss tables = 111.08 s
+total time for build X-ray TR energy loss tables = 108.94 s
 
 phot:  Total cross sections from Sandia parametrisation. 
 Em10PhysicsList::SetCuts:CutLength : 1 mm 
diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out
index 58c6fef5c54e51a087bd80c5486b59f0fb715c4e..639297d3689b55b39cfe4051820bc3ba4e4b1837 100644
--- a/examples/extended/electromagnetic/TestEm2/TestEm2.out
+++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV;
@@ -168,7 +168,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=23.54s Real=32.05s Sys=2.91s
+  User=24.11s Real=92.46s Sys=2.84s
                  LATERAL PROFILE                         CUMULATIVE LATERAL PROFILE
 
         bin              Mean         rms                 bin            Mean      rms 
diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out
index 6db128c62146d0fab9541785ccd0448dde16fb1c..193d6049244b71d0e06f88e9d0a4ea4f01e92e3d 100644
--- a/examples/extended/electromagnetic/TestEm3/TestEm3.out
+++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV;
@@ -250,7 +250,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=40.25s Real=52.67s Sys=7.56s
+  User=40.15s Real=138.86s Sys=7.17s
 
 -------------------------------------------------------------
                                    total energy dep            total tracklen 
diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out
index 58ca771bd99318bf2f7a1a1d8ae8a6159436fff4..d066e57f2e2d6012172a72e7c6828b9c371f734a 100644
--- a/examples/extended/electromagnetic/TestEm4/TestEm4.out
+++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out
index 6d347bdcdab4212de77f16139f77fbdbae31ee9a..a4d955ac6070f67fd7666d9a86a12dc6bbe9a3b8 100644
--- a/examples/extended/electromagnetic/TestEm5/TestEm5.out
+++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
@@ -189,7 +189,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 100000
-  User=63s Real=1.2e+03s Sys=78s
+  User=60s Real=1.4e+03s Sys=82s
  ================== run summary =====================
  end of Run TotNbofEvents = 100000
     mean charged track length   in absorber=0.0209443 +- 1.36937e-05  mm  
diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out
index 30a52c0ec1c8ee113a3a0a421d2f63052b92f89d..d67f65226c66ae8ba3b5c1afe09f7a819658b643 100644
--- a/examples/extended/electromagnetic/TestEm6/TestEm6.out
+++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
@@ -202,7 +202,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 5
-  User=0.02s Real=2.7s Sys=0.01s
+  User=0.01s Real=0.74s Sys=0.02s
 
 --------- Ranecu engine status ---------
  Initial seed (index) = 0
diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out
index 9b0b8e3009dd27e6383e25cd508e2cf0ce56fde5..d8d9d0f6041148c2850cf7fb70d4a3e607aa8f2c 100644
--- a/examples/extended/electromagnetic/TestEm7/TestEm7.out
+++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV;
@@ -73,6 +73,7 @@ tally 3: position = 5 0 0 cm
 ---------------------------------------------------------
 World is registered to the default region.
 physicsList->Construct() start.
+physicsList->Construct() start.
 
 phot:  Total cross sections from Sandia parametrisation. 
 Thank you for using G4BinaryCascade. 
@@ -135,7 +136,7 @@ msc:  Model variant of multiple scattering
 hIoni:  
       dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
       Lambda tables from threshold to 100 TeV in 120 bins.
-      Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below.
+      Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0
 
 msc:  Model variant of multiple scattering 
       Lambda tables from 100 eV  to 100 TeV in 100 bins.
@@ -170,6 +171,9 @@ MuPairProd:
       dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
       Lambda tables from threshold to 100 TeV in 120 bins.
       Parametrised model 
+Region DefaultRegionForTheWorld
+ Materials : Galactic Water 
+ Production cuts :  gamma 1 mm     e- 1 mm     e+ 1 mm 
 
 ========= Table of registered couples ==============================
 
@@ -189,12 +193,6 @@ Index : 1     used in the geometry : Yes     recalculation needed : No
 
 ====================================================================
 
-### Run 0 start.
-
---------- Ranecu engine status ---------
- Initial seed (index) = 0
- Current couple of seeds = 1692458005, 1054920321
-----------------------------------------
 Start closing geometry.
 G4GeometryManager::ReportVoxelStats -- Voxel Statistics
 
@@ -210,6 +208,12 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
     Percent     Memory      Heads    Nodes   Pointers    Total CPU    Volume
     -------   --------     ------   ------   --------   ----------    ----------
      100.00          0k         1        5          8         0.00    Absorber
+### Run 0 start.
+
+--------- Ranecu engine status ---------
+ Initial seed (index) = 0
+ Current couple of seeds = 1692458005, 1054920321
+----------------------------------------
 Start Run processing.
 
 ---> Begin of Event: 0
@@ -234,30 +238,30 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10000
-  User=189.43s Real=380.44s Sys=52.11s
+  User=218.05s Real=388.75s Sys=71.28s
 
 ---------------------------------------------------------
  Cumulated Doses : 	Edep      	Edep/Ebeam 	Dose
-tally 0: 	 	10.556 GeV	0.659749 % 	0.000211407 Gy
-tally 1: 	 	7.76408 GeV	0.485255 % 	0.000155493 Gy
-tally 2: 	 	3.32639 GeV	0.207899 % 	6.66183e-05 Gy
-tally 3: 	 	1.63959 GeV	0.102475 % 	3.28365e-05 Gy
+tally 0: 	 	10.5839 GeV	0.661495 % 	0.000211967 Gy
+tally 1: 	 	7.35039 GeV	0.4594 % 	0.000147208 Gy
+tally 2: 	 	2.90011 GeV	0.181257 % 	5.80811e-05 Gy
+tally 3: 	 	1.32232 GeV	0.0826453 % 	2.64825e-05 Gy
 
 ---------------------------------------------------------
 
 --------- Ranecu engine status ---------
  Initial seed (index) = 0
- Current couple of seeds = 2084081781, 1451269122
+ Current couple of seeds = 1291616465, 2050820174
 ----------------------------------------
 Graphics systems deleted.
 Visualization Manager deleting...
-G4 kernel has come to Quit state.
-Deletion of G4 kernel class start.
 UserDetectorConstruction deleted.
 UserPhysicsList deleted.
 UserRunAction deleted.
 UserPrimaryGenerator deleted.
+G4 kernel has come to Quit state.
 EventManager deleted.
 UImanager deleted.
 StateManager deleted.
+RunManagerKernel is deleted.
 RunManager is deleting.
diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out
index 9d2268044174a74224d678206103886cde3d7ccf..1bad19f4ceaf31c4c4251d429a57e0e664211080 100644
--- a/examples/extended/electromagnetic/TestEm8/TestEm8.out
+++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
@@ -250,7 +250,7 @@ Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 1000
-  User=1.92s Real=2.06s Sys=0s
+  User=1.99s Real=5.65s Sys=0s
  ================== run summary =====================
  end of Run TotNbofEvents = 1000
     mean charged track length   in absorber=40.2593 +- 0.20516  mm  
diff --git a/examples/extended/field/field01/History b/examples/extended/field/field01/History
index b60088e78dd883f2141802a0f3afa363cb8118b0..f3c580002d5adaddc0502822462af5c7035d8461 100644
--- a/examples/extended/field/field01/History
+++ b/examples/extended/field/field01/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.6 2003/06/25 17:40:46 gcosmo Exp $
+$Id: History,v 1.7 2003/08/27 17:38:54 vnivanch Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -15,6 +15,10 @@ track of all tags.
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+27-08-03 V.Ivant (fieldex-V05-02-00)
+------------------------------------
+ - Remove obsolete interfaces
+
 Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00)
 --------------------------------------------
 - Fixed mechanism for update of geometry in detector-construction.
diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out
index f0d11db74791f466d219484e895e915a7d406267..a6c3c01ad45d97960faa4af6a813dfb89b72d22e 100644
--- a/examples/extended/field/field01/field01.out
+++ b/examples/extended/field/field01/field01.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4ClassicalRK4 (default) is called
@@ -1145,7 +1145,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.34s Real=0.45s Sys=0.1s
+  User=0.37s Real=0.61s Sys=0.08s
 Graphics systems deleted.
 Visualization Manager deleting...
 G4 kernel has come to Quit state.
diff --git a/examples/extended/field/field01/include/F01PhysicsList.hh b/examples/extended/field/field01/include/F01PhysicsList.hh
index d3b8f42e43c7e0a898b5651d39f528e55d6aaf60..1a7227e5dc8120a3c4b18947c12836991aa74470 100644
--- a/examples/extended/field/field01/include/F01PhysicsList.hh
+++ b/examples/extended/field/field01/include/F01PhysicsList.hh
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F01PhysicsList.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F01PhysicsList.hh,v 1.3 2003/08/27 17:38:54 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 //
 
 #ifndef F01PhysicsList_h
@@ -83,14 +83,11 @@ class F01PhysicsList: public G4VUserPhysicsList
     void AddParameterisation();
     void ConstructGeneral();
     void ConstructEM();
-    
+
   public:
 
     void SetGammaCut(G4double);
     void SetElectronCut(G4double);
-    void SetProtonCut(G4double);
-    void SetCutsByEnergy(G4double);
-    void GetRange(G4double);
 
     void SetMaxStep(G4double);
 
@@ -121,7 +118,6 @@ class F01PhysicsList: public G4VUserPhysicsList
 
     G4double cutForGamma;
     G4double cutForElectron;
-    G4double cutForProton;
 
     F01DetectorConstruction* pDet;
     F01PhysicsListMessenger* physicsListMessenger;
diff --git a/examples/extended/field/field01/src/F01PhysicsList.cc b/examples/extended/field/field01/src/F01PhysicsList.cc
index 235a012ed1d654c25f4a7758227cddc1ba472e03..5570be840da742c108a738fe03032c2a63fd53b6 100644
--- a/examples/extended/field/field01/src/F01PhysicsList.cc
+++ b/examples/extended/field/field01/src/F01PhysicsList.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F01PhysicsList.cc,v 1.7 2003/06/16 16:48:56 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F01PhysicsList.cc,v 1.8 2003/08/27 17:38:54 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 // 
 
 #include "G4Timer.hh"
@@ -42,7 +42,7 @@
 #include "G4UnitsTable.hh"
 #include "G4ios.hh"
 #include <iomanip>
-               
+
 #include "G4FastSimulationManagerProcess.hh"
 
 
@@ -65,7 +65,6 @@ F01PhysicsList::F01PhysicsList(F01DetectorConstruction* p)
 
   cutForGamma = defaultCutValue ;
   cutForElectron = defaultCutValue ;
-  cutForProton = defaultCutValue ;
 
   SetVerboseLevel(1);
   physicsListMessenger = new F01PhysicsListMessenger(this);
@@ -256,7 +255,7 @@ void F01PhysicsList::ConstructEM()
 
       pmanager->AddProcess(theeplusStepCut,-1,-1,5);
       theeplusStepCut->SetMaxStep(MaxChargedStep) ;
-  
+
     } 
     else if( particleName == "mu+" || 
                particleName == "mu-"    ) 
@@ -294,7 +293,7 @@ void F01PhysicsList::ConstructEM()
       pmanager->AddProcess(thehMultipleScattering,-1,1,1);
       pmanager->AddProcess(thehIonisation,-1,2,2);
 
-      
+
         pmanager->AddProcess( thehadronStepCut,-1,-1,3);
         thehadronStepCut->SetMaxStep(MaxChargedStep) ;
       thehadronStepCut->SetMaxStep(10*mm) ;
@@ -384,7 +383,6 @@ void F01PhysicsList::SetCuts()
 
 void F01PhysicsList::SetGammaCut(G4double val)
 {
-  ResetCuts();
   cutForGamma = val;
 }
 
@@ -392,69 +390,9 @@ void F01PhysicsList::SetGammaCut(G4double val)
 
 void F01PhysicsList::SetElectronCut(G4double val)
 {
-  ResetCuts();
   cutForElectron = val;
 }
 
-//////////////////////////////////////////////////////////////////////
-
-void F01PhysicsList::SetProtonCut(G4double val)
-{
-  ResetCuts();
-  cutForProton = val;
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-void F01PhysicsList::SetCutsByEnergy(G4double val)
-{
-  G4ParticleTable* theParticleTable =  G4ParticleTable::GetParticleTable();
-  G4Material* currMat = pDet->GetAbsorberMaterial();
-
-  // set cut values for gamma at first and for e- second and next for e+,
-  // because some processes for e+/e- need cut values for gamma
-
-  G4ParticleDefinition* part;
-  G4double cut;
-
-  part = theParticleTable->FindParticle("e-");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "e-");
-
-  part = theParticleTable->FindParticle("e+");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "e+");
-
-  // set cut values for proton and anti_proton before all other hadrons
-  // because some processes for hadrons need cut values for proton/anti_proton
-
-  part = theParticleTable->FindParticle("proton");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "proton");
-
-  part = theParticleTable->FindParticle("anti_proton");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "anti_proton");
-
-  SetCutValueForOthers(cut);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void F01PhysicsList::GetRange(G4double val)
-{
-  G4ParticleTable* theParticleTable =  G4ParticleTable::GetParticleTable();
-  G4Material* currMat = pDet->GetAbsorberMaterial();
-
-  G4ParticleDefinition* part;
-  G4double cut;
-  part = theParticleTable->FindParticle("e-");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  G4cout << "material : " << currMat->GetName() << G4endl;
-  G4cout << "particle : " << part->GetParticleName() << G4endl;
-  G4cout << "energy   : " << val / keV << " (keV)" << G4endl;
-  G4cout << "range    : " << cut / mm << " (mm)" << G4endl;
-}
 
 ////////////////////////////////////////////////////////////////////////////
 
diff --git a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc
index 149a86aa008739f51ef688103fcd7aceb0282965..5bad649a51601619dc55e90734a27a90bd822f60 100644
--- a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc
+++ b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F01PhysicsListMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F01PhysicsListMessenger.cc,v 1.5 2003/08/27 17:38:54 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 //
 // 
 
@@ -55,27 +55,6 @@ F01PhysicsListMessenger::F01PhysicsListMessenger(F01PhysicsList * List)
   cutECmd->SetDefaultUnit("mm");
   cutECmd->AvailableForStates(G4State_Idle);
 
-  cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this);
-  cutPCmd->SetGuidance("Set cut values by RANGE for proton and others.");
-  cutPCmd->SetParameterName("range",true);
-  cutPCmd->SetDefaultValue(1.);
-  cutPCmd->SetDefaultUnit("mm");
-  cutPCmd->AvailableForStates(G4State_Idle);
-
-  eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this);
-  eCmd->SetGuidance("Set cut values by ENERGY for charged particles.");
-  eCmd->SetParameterName("energy",true);
-  eCmd->SetDefaultValue(10.);
-  eCmd->SetDefaultUnit("keV");
-  eCmd->AvailableForStates(G4State_Idle);
-
-  rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this);
-  rCmd->SetGuidance("Display the RANGE of Electron for the current material.");
-  rCmd->SetParameterName("energy",true);
-  rCmd->SetDefaultValue(10.);
-  rCmd->SetDefaultUnit("keV");
-  rCmd->AvailableForStates(G4State_Idle);
-
   setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this);
   setMaxStepCmd->SetGuidance("Set max. step length in the detector");
   setMaxStepCmd->SetParameterName("mxStep",true);
@@ -92,26 +71,17 @@ F01PhysicsListMessenger::~F01PhysicsListMessenger()
 
   delete cutGCmd;
   delete cutECmd;
-  delete cutPCmd;
-  delete rCmd;
-  delete eCmd;
 
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-  
+
 void F01PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
 {
   if(command == cutGCmd)
     { F01List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));}
   if(command == cutECmd)
     { F01List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));}
-  if(command == cutPCmd)
-    { F01List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));}
-  if(command == eCmd)
-    { F01List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));}
-  if(command == rCmd)
-    { F01List->GetRange(rCmd->GetNewDoubleValue(newValue));}
   if(command == setMaxStepCmd)
     { F01List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));}
 }
diff --git a/examples/extended/field/field02/History b/examples/extended/field/field02/History
index 40e504ccc14d2528dfe30677e6ee6bf3ddfc7bf0..c23a7152f70c82356d134a4b3df428fd4c1cf47e 100644
--- a/examples/extended/field/field02/History
+++ b/examples/extended/field/field02/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.9 2003/06/25 17:33:42 gcosmo Exp $
+$Id: History,v 1.10 2003/08/27 17:44:07 vnivanch Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -15,6 +15,10 @@ track of all tags.
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+27-08-03 V.Ivant (fieldex-V05-02-00)
+------------------------------------
+ - Remove obsolete interfaces
+
 Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00)
 --------------------------------------------
 - Fixed mechanism for update of geometry in detector-construction.
diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out
index 029befe9be562fb4ab78323251c5934348990ee1..789f6582109ff2b9b80447dc447f63a335ef181b 100644
--- a/examples/extended/field/field02/field02.out
+++ b/examples/extended/field/field02/field02.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4ClassicalRK4 (default) is called
@@ -2822,7 +2822,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng  Ne
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.47s Real=1.08s Sys=0.59s
+  User=0.47s Real=1.75s Sys=0.45s
 Graphics systems deleted.
 Visualization Manager deleting...
 G4 kernel has come to Quit state.
diff --git a/examples/extended/field/field02/include/F02PhysicsList.hh b/examples/extended/field/field02/include/F02PhysicsList.hh
index 0cc9b6b85cd84b7ab50f08e3cd3fa9b2cb69438a..03dc4c9747ec82ab49230fd71b393b751365e6d0 100644
--- a/examples/extended/field/field02/include/F02PhysicsList.hh
+++ b/examples/extended/field/field02/include/F02PhysicsList.hh
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F02PhysicsList.hh,v 1.2 2001/07/11 09:58:02 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F02PhysicsList.hh,v 1.3 2003/08/27 17:44:08 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 //
 
 #ifndef F02PhysicsList_h
@@ -83,14 +83,11 @@ class F02PhysicsList: public G4VUserPhysicsList
     void AddParameterisation();
     void ConstructGeneral();
     void ConstructEM();
-    
+
   public:
 
     void SetGammaCut(G4double);
     void SetElectronCut(G4double);
-    void SetProtonCut(G4double);
-    void SetCutsByEnergy(G4double);
-    void GetRange(G4double);
 
     void SetMaxStep(G4double);
 
@@ -121,7 +118,6 @@ class F02PhysicsList: public G4VUserPhysicsList
 
     G4double cutForGamma;
     G4double cutForElectron;
-    G4double cutForProton;
 
     F02DetectorConstruction* pDet;
     F02PhysicsListMessenger* physicsListMessenger;
diff --git a/examples/extended/field/field02/src/F02PhysicsList.cc b/examples/extended/field/field02/src/F02PhysicsList.cc
index 1aa8c9a7d6ca1f2b675493176027242ce69805d3..c4adcba8fb2053fe5ece2e88a72989d3bf3449b3 100644
--- a/examples/extended/field/field02/src/F02PhysicsList.cc
+++ b/examples/extended/field/field02/src/F02PhysicsList.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F02PhysicsList.cc,v 1.6 2003/06/16 16:49:01 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F02PhysicsList.cc,v 1.7 2003/08/27 17:44:08 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 // 
 
 #include "G4Timer.hh"
@@ -42,7 +42,7 @@
 #include "G4UnitsTable.hh"
 #include "G4ios.hh"
 #include <iomanip>
-               
+
 #include "G4FastSimulationManagerProcess.hh"
 
 
@@ -65,7 +65,6 @@ F02PhysicsList::F02PhysicsList(F02DetectorConstruction* p)
 
   cutForGamma = defaultCutValue ;
   cutForElectron = defaultCutValue ;
-  cutForProton = defaultCutValue ;
 
   SetVerboseLevel(1);
   physicsListMessenger = new F02PhysicsListMessenger(this);
@@ -363,7 +362,6 @@ void F02PhysicsList::SetCuts()
 
 void F02PhysicsList::SetGammaCut(G4double val)
 {
-  ResetCuts();
   cutForGamma = val;
 }
 
@@ -371,70 +369,9 @@ void F02PhysicsList::SetGammaCut(G4double val)
 
 void F02PhysicsList::SetElectronCut(G4double val)
 {
-  ResetCuts();
   cutForElectron = val;
 }
 
-//////////////////////////////////////////////////////////////////////
-
-void F02PhysicsList::SetProtonCut(G4double val)
-{
-  ResetCuts();
-  cutForProton = val;
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-void F02PhysicsList::SetCutsByEnergy(G4double val)
-{
-  G4ParticleTable* theParticleTable =  G4ParticleTable::GetParticleTable();
-  G4Material* currMat = pDet->GetAbsorberMaterial();
-
-  // set cut values for gamma at first and for e- second and next for e+,
-  // because some processes for e+/e- need cut values for gamma
-
-  G4ParticleDefinition* part;
-  G4double cut;
-
-  part = theParticleTable->FindParticle("e-");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "e-");
-
-  part = theParticleTable->FindParticle("e+");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "e+");
-
-  // set cut values for proton and anti_proton before all other hadrons
-  // because some processes for hadrons need cut values for proton/anti_proton
-
-  part = theParticleTable->FindParticle("proton");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "proton");
-
-  part = theParticleTable->FindParticle("anti_proton");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "anti_proton");
-
-  SetCutValueForOthers(cut);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void F02PhysicsList::GetRange(G4double val)
-{
-  G4ParticleTable* theParticleTable =  G4ParticleTable::GetParticleTable();
-  G4Material* currMat = pDet->GetAbsorberMaterial();
-
-  G4ParticleDefinition* part;
-  G4double cut;
-  part = theParticleTable->FindParticle("e-");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  G4cout << "material : " << currMat->GetName() << G4endl;
-  G4cout << "particle : " << part->GetParticleName() << G4endl;
-  G4cout << "energy   : " << val / keV << " (keV)" << G4endl;
-  G4cout << "range    : " << cut / mm << " (mm)" << G4endl;
-}
-
 ////////////////////////////////////////////////////////////////////////////
 
 void F02PhysicsList::SetMaxStep(G4double step)
diff --git a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc
index f08d033f4a0a34f33f27c9e3f69618eae06de486..8e01378f2ab491a5ebc4d9f877f6eb2304671b61 100644
--- a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc
+++ b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F02PhysicsListMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F02PhysicsListMessenger.cc,v 1.5 2003/08/27 17:44:08 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 //
 // 
 
@@ -55,27 +55,6 @@ F02PhysicsListMessenger::F02PhysicsListMessenger(F02PhysicsList * List)
   cutECmd->SetDefaultUnit("mm");
   cutECmd->AvailableForStates(G4State_Idle);
 
-  cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this);
-  cutPCmd->SetGuidance("Set cut values by RANGE for proton and others.");
-  cutPCmd->SetParameterName("range",true);
-  cutPCmd->SetDefaultValue(1.);
-  cutPCmd->SetDefaultUnit("mm");
-  cutPCmd->AvailableForStates(G4State_Idle);
-
-  eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this);
-  eCmd->SetGuidance("Set cut values by ENERGY for charged particles.");
-  eCmd->SetParameterName("energy",true);
-  eCmd->SetDefaultValue(10.);
-  eCmd->SetDefaultUnit("keV");
-  eCmd->AvailableForStates(G4State_Idle);
-
-  rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this);
-  rCmd->SetGuidance("Display the RANGE of Electron for the current material.");
-  rCmd->SetParameterName("energy",true);
-  rCmd->SetDefaultValue(10.);
-  rCmd->SetDefaultUnit("keV");
-  rCmd->AvailableForStates(G4State_Idle);
-
   setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this);
   setMaxStepCmd->SetGuidance("Set max. step length in the detector");
   setMaxStepCmd->SetParameterName("mxStep",true);
@@ -92,26 +71,17 @@ F02PhysicsListMessenger::~F02PhysicsListMessenger()
 
   delete cutGCmd;
   delete cutECmd;
-  delete cutPCmd;
-  delete rCmd;
-  delete eCmd;
 
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-  
+
 void F02PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
 {
   if(command == cutGCmd)
     { F02List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));}
   if(command == cutECmd)
     { F02List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));}
-  if(command == cutPCmd)
-    { F02List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));}
-  if(command == eCmd)
-    { F02List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));}
-  if(command == rCmd)
-    { F02List->GetRange(rCmd->GetNewDoubleValue(newValue));}
   if(command == setMaxStepCmd)
     { F02List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));}
 }
diff --git a/examples/extended/field/field03/History b/examples/extended/field/field03/History
index fca4cea01820f1674a864ba75cf10ddd716891b1..1b1b511eeae250a193e9d767b65df84b8db44f2a 100644
--- a/examples/extended/field/field03/History
+++ b/examples/extended/field/field03/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.6 2003/06/25 17:33:55 gcosmo Exp $
+$Id: History,v 1.7 2003/08/27 17:50:29 vnivanch Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -15,6 +15,10 @@ track of all tags.
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+27-08-03 V.Ivant (fieldex-V05-02-00)
+------------------------------------
+ - Remove obsolete interfaces
+
 Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00)
 --------------------------------------------
 - Fixed mechanism for update of geometry in detector-construction.
diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out
index 033901793075743e30c48f02e8116ff5a62d95ec..b93570b5fb357318293d1f9f2dcbc8269603bb26 100644
--- a/examples/extended/field/field03/field03.out
+++ b/examples/extended/field/field03/field03.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4ClassicalRK4 (default) is called
@@ -1756,7 +1756,7 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
 Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.63s Real=0.87s Sys=0.24s
+  User=0.68s Real=1.23s Sys=0.17s
 Graphics systems deleted.
 Visualization Manager deleting...
 G4 kernel has come to Quit state.
diff --git a/examples/extended/field/field03/include/F03PhysicsList.hh b/examples/extended/field/field03/include/F03PhysicsList.hh
index 08d6812de9cd45bd823a102c08bbba30c70a513d..9bd13ba690f7f0c8cf2cf6d1e665510fea9dabe5 100644
--- a/examples/extended/field/field03/include/F03PhysicsList.hh
+++ b/examples/extended/field/field03/include/F03PhysicsList.hh
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F03PhysicsList.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F03PhysicsList.hh,v 1.4 2003/08/27 17:50:29 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 //
 
 #ifndef F03PhysicsList_h
@@ -66,11 +66,11 @@ class F03PhysicsList: public G4VUserPhysicsList
     // Construct particle and physics
     void ConstructParticle();
     void ConstructProcess();
- 
+
     void SetCuts();
 
   protected:
-    // these methods Construct particles 
+    // these methods Construct particles
     void ConstructBosons();
     void ConstructLeptons();
     void ConstructMesons();
@@ -83,14 +83,11 @@ class F03PhysicsList: public G4VUserPhysicsList
     void AddParameterisation();
     void ConstructGeneral();
     void ConstructEM();
-    
+
   public:
 
     void SetGammaCut(G4double);
     void SetElectronCut(G4double);
-    void SetProtonCut(G4double);
-    void SetCutsByEnergy(G4double);
-    void GetRange(G4double);
 
     void SetMaxStep(G4double);
 
@@ -121,7 +118,6 @@ class F03PhysicsList: public G4VUserPhysicsList
 
     G4double cutForGamma;
     G4double cutForElectron;
-    G4double cutForProton;
 
     F03DetectorConstruction* pDet;
     F03PhysicsListMessenger* physicsListMessenger;
diff --git a/examples/extended/field/field03/src/F03PhysicsList.cc b/examples/extended/field/field03/src/F03PhysicsList.cc
index c62a2ea3c71c5d018e49a8e3f75192826c64ac2a..7753a7e18465ddf628a1ff02b721968a887d8a78 100644
--- a/examples/extended/field/field03/src/F03PhysicsList.cc
+++ b/examples/extended/field/field03/src/F03PhysicsList.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F03PhysicsList.cc,v 1.6 2003/06/16 16:49:06 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F03PhysicsList.cc,v 1.7 2003/08/27 17:50:29 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 // 
 
 #include "G4Timer.hh"
@@ -42,7 +42,7 @@
 #include "G4UnitsTable.hh"
 #include "G4ios.hh"
 #include <iomanip>
-               
+
 #include "G4FastSimulationManagerProcess.hh"
 
 
@@ -65,7 +65,6 @@ F03PhysicsList::F03PhysicsList(F03DetectorConstruction* p)
 
   cutForGamma = defaultCutValue ;
   cutForElectron = defaultCutValue ;
-  cutForProton = defaultCutValue ;
 
   SetVerboseLevel(1);
   physicsListMessenger = new F03PhysicsListMessenger(this);
@@ -256,7 +255,7 @@ void F03PhysicsList::ConstructEM()
       pmanager->AddProcess(new G4MuPairProduction(),-1,-1,4); 
       pmanager->AddProcess( muonStepCut,-1,-1,3);
       muonStepCut->SetMaxStep(MaxChargedStep) ;
-    } 
+    }
     else if (
                 particleName == "proton"  
                || particleName == "antiproton"  
@@ -364,7 +363,6 @@ void F03PhysicsList::SetCuts()
 
 void F03PhysicsList::SetGammaCut(G4double val)
 {
-  ResetCuts();
   cutForGamma = val;
 }
 
@@ -372,70 +370,9 @@ void F03PhysicsList::SetGammaCut(G4double val)
 
 void F03PhysicsList::SetElectronCut(G4double val)
 {
-  ResetCuts();
   cutForElectron = val;
 }
 
-//////////////////////////////////////////////////////////////////////
-
-void F03PhysicsList::SetProtonCut(G4double val)
-{
-  ResetCuts();
-  cutForProton = val;
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-void F03PhysicsList::SetCutsByEnergy(G4double val)
-{
-  G4ParticleTable* theParticleTable =  G4ParticleTable::GetParticleTable();
-  G4Material* currMat = pDet->GetAbsorberMaterial();
-
-  // set cut values for gamma at first and for e- second and next for e+,
-  // because some processes for e+/e- need cut values for gamma
-
-  G4ParticleDefinition* part;
-  G4double cut;
-
-  part = theParticleTable->FindParticle("e-");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "e-");
-
-  part = theParticleTable->FindParticle("e+");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "e+");
-
-  // set cut values for proton and anti_proton before all other hadrons
-  // because some processes for hadrons need cut values for proton/anti_proton
-
-  part = theParticleTable->FindParticle("proton");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "proton");
-
-  part = theParticleTable->FindParticle("anti_proton");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  SetCutValue(cut, "anti_proton");
-
-  SetCutValueForOthers(cut);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void F03PhysicsList::GetRange(G4double val)
-{
-  G4ParticleTable* theParticleTable =  G4ParticleTable::GetParticleTable();
-  G4Material* currMat = pDet->GetAbsorberMaterial();
-
-  G4ParticleDefinition* part;
-  G4double cut;
-  part = theParticleTable->FindParticle("e-");
-  cut = G4EnergyLossTables::GetRange(part,val,currMat);
-  G4cout << "material : " << currMat->GetName() << G4endl;
-  G4cout << "particle : " << part->GetParticleName() << G4endl;
-  G4cout << "energy   : " << val / keV << " (keV)" << G4endl;
-  G4cout << "range    : " << cut / mm << " (mm)" << G4endl;
-}
-
 ////////////////////////////////////////////////////////////////////////////
 
 void F03PhysicsList::SetMaxStep(G4double step)
diff --git a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc
index 221635cd992e800385b8388cdd308c32a293090a..276b24bdec0d339e259a9b0cc0e30ef4c5f43b61 100644
--- a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc
+++ b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: F03PhysicsListMessenger.cc,v 1.3 2002/12/05 01:06:58 asaim Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: F03PhysicsListMessenger.cc,v 1.4 2003/08/27 17:50:29 vnivanch Exp $
+// GEANT4 tag $Name: fieldex-V05-02-00 $
 //
 // 
 
@@ -55,27 +55,6 @@ F03PhysicsListMessenger::F03PhysicsListMessenger(F03PhysicsList * List)
   cutECmd->SetDefaultUnit("mm");
   cutECmd->AvailableForStates(G4State_Idle);
 
-  cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this);
-  cutPCmd->SetGuidance("Set cut values by RANGE for proton and others.");
-  cutPCmd->SetParameterName("range",true);
-  cutPCmd->SetDefaultValue(1.);
-  cutPCmd->SetDefaultUnit("mm");
-  cutPCmd->AvailableForStates(G4State_Idle);
-
-  eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this);
-  eCmd->SetGuidance("Set cut values by ENERGY for charged particles.");
-  eCmd->SetParameterName("energy",true);
-  eCmd->SetDefaultValue(10.);
-  eCmd->SetDefaultUnit("keV");
-  eCmd->AvailableForStates(G4State_Idle);
-
-  rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this);
-  rCmd->SetGuidance("Display the RANGE of Electron for the current material.");
-  rCmd->SetParameterName("energy",true);
-  rCmd->SetDefaultValue(10.);
-  rCmd->SetDefaultUnit("keV");
-  rCmd->AvailableForStates(G4State_Idle);
-
   setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this);
   setMaxStepCmd->SetGuidance("Set max. step length in the detector");
   setMaxStepCmd->SetParameterName("mxStep",true);
@@ -92,9 +71,6 @@ F03PhysicsListMessenger::~F03PhysicsListMessenger()
 
   delete cutGCmd;
   delete cutECmd;
-  delete cutPCmd;
-  delete rCmd;
-  delete eCmd;
 
 }
 
@@ -106,12 +82,6 @@ void F03PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue
     { F03List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));}
   if(command == cutECmd)
     { F03List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));}
-  if(command == cutPCmd)
-    { F03List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));}
-  if(command == eCmd)
-    { F03List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));}
-  if(command == rCmd)
-    { F03List->GetRange(rCmd->GetNewDoubleValue(newValue));}
   if(command == setMaxStepCmd)
     { F03List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));}
 }
diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out
index 8fbf8b4a4de6d4666fb66e1c7133bdb358118aff..981cfd1fa6a89ac3bc13c667278b35bc41287321 100644
--- a/examples/novice/N01/exampleN01.out
+++ b/examples/novice/N01/exampleN01.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Start Run processing.
diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out
index 377ff8676316ca859b207d70735e14f889bae577..c2f2efa68293e8f02d6dc348c08ee350d429c9ad 100644
--- a/examples/novice/N02/exampleN02.out
+++ b/examples/novice/N02/exampleN02.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out
index 59aae6ada7cc1d15cf6d990eeceeae3ce1dbfd8a..e352dae6120a91f5fbb9cb620e5d8e6db6bea552 100644
--- a/examples/novice/N03/exampleN03.out
+++ b/examples/novice/N03/exampleN03.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV;
diff --git a/examples/novice/N04/exampleN04.EMtest.out b/examples/novice/N04/exampleN04.EMtest.out
index 00638b4bc2c0529526a05e8facf3c8d4c411390f..434aa56205e46bb27e6267ecb60c699f78751a72 100644
--- a/examples/novice/N04/exampleN04.EMtest.out
+++ b/examples/novice/N04/exampleN04.EMtest.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 
diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out
index 686fdabc2ea6bbc0668ba14c11312bfd20483e11..319318451169b84b1dce999fdd421de154776f1a 100644
--- a/examples/novice/N04/exampleN04.out
+++ b/examples/novice/N04/exampleN04.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 
diff --git a/examples/novice/N05/History b/examples/novice/N05/History
index eff614b00538a1dcfcaa2c92788d23ccc789ccb3..1d4afbb79c7051d63461ebe1d1d2516ac892a4f0 100644
--- a/examples/novice/N05/History
+++ b/examples/novice/N05/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.15 2003/05/28 11:20:40 gcosmo Exp $
+$Id: History,v 1.16 2003/08/27 16:15:42 vnivanch Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -15,6 +15,9 @@ track of all tags.
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+August 27, 2003 Vladimir Ivanchenko (exampleN05-V05-02-00)
+- Migrade to cut per region
+
 May 28, 2003 Gabriele Cosmo (exampleN05-V05-01-00)
 - Get rid of pedantic warnings ...
 
diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out
index 1eb7b4a5d6bd951cfc86bed37f6e5cd852d805e9..d22a20d1cfb1ea5d59b6d949d6055386b25ba171 100644
--- a/examples/novice/N05/exampleN05.out
+++ b/examples/novice/N05/exampleN05.out
@@ -1,7 +1,7 @@
 RunManager construction starting....
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 
@@ -367,30 +367,30 @@ number of event = 5
 number of event = 5
 ### Run 9 start.
 >>> Event 0
-     21 hits are stored in EM ExN05CalorimeterHitsCollection.
-     Total energy deposition in EM calorimeter crytals : 0.98184 (GeV)
-     4 hits are stored in HAD ExN05CalorimeterHitsCollection.
-     Total energy deposition in HAD calorimeter towers : 0.0160081 (GeV)
+     19 hits are stored in EM ExN05CalorimeterHitsCollection.
+     Total energy deposition in EM calorimeter crytals : 0.993099 (GeV)
+     0 hits are stored in HAD ExN05CalorimeterHitsCollection.
+     Total energy deposition in HAD calorimeter towers : 0 (GeV)
 >>> Event 1
-     21 hits are stored in EM ExN05CalorimeterHitsCollection.
-     Total energy deposition in EM calorimeter crytals : 0.999905 (GeV)
+     20 hits are stored in EM ExN05CalorimeterHitsCollection.
+     Total energy deposition in EM calorimeter crytals : 0.998787 (GeV)
      0 hits are stored in HAD ExN05CalorimeterHitsCollection.
      Total energy deposition in HAD calorimeter towers : 0 (GeV)
 >>> Event 2
-     25 hits are stored in EM ExN05CalorimeterHitsCollection.
-     Total energy deposition in EM calorimeter crytals : 0.994767 (GeV)
-     1 hits are stored in HAD ExN05CalorimeterHitsCollection.
-     Total energy deposition in HAD calorimeter towers : 0.00279667 (GeV)
->>> Event 3
-     17 hits are stored in EM ExN05CalorimeterHitsCollection.
-     Total energy deposition in EM calorimeter crytals : 0.996532 (GeV)
-     1 hits are stored in HAD ExN05CalorimeterHitsCollection.
-     Total energy deposition in HAD calorimeter towers : 0.00338702 (GeV)
->>> Event 4
-     21 hits are stored in EM ExN05CalorimeterHitsCollection.
-     Total energy deposition in EM calorimeter crytals : 0.993742 (GeV)
+     19 hits are stored in EM ExN05CalorimeterHitsCollection.
+     Total energy deposition in EM calorimeter crytals : 0.997835 (GeV)
      0 hits are stored in HAD ExN05CalorimeterHitsCollection.
      Total energy deposition in HAD calorimeter towers : 0 (GeV)
+>>> Event 3
+     21 hits are stored in EM ExN05CalorimeterHitsCollection.
+     Total energy deposition in EM calorimeter crytals : 0.98835 (GeV)
+     2 hits are stored in HAD ExN05CalorimeterHitsCollection.
+     Total energy deposition in HAD calorimeter towers : 0.0075445 (GeV)
+>>> Event 4
+     18 hits are stored in EM ExN05CalorimeterHitsCollection.
+     Total energy deposition in EM calorimeter crytals : 0.993327 (GeV)
+     1 hits are stored in HAD ExN05CalorimeterHitsCollection.
+     Total energy deposition in HAD calorimeter towers : 0.00279654 (GeV)
 number of event = 5
 Graphics systems deleted.
 Visualization Manager deleting...
diff --git a/examples/novice/N05/include/ExN05SpecialCuts.hh b/examples/novice/N05/include/ExN05SpecialCuts.hh
index c44c87b13b981abaf6d302626945986482b02ec0..716060d2587c0c0d521eab5cb6b7823087c7f6c0 100644
--- a/examples/novice/N05/include/ExN05SpecialCuts.hh
+++ b/examples/novice/N05/include/ExN05SpecialCuts.hh
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: ExN05SpecialCuts.hh,v 1.6 2002/01/09 17:24:18 ranjard Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: ExN05SpecialCuts.hh,v 1.7 2003/08/27 16:15:42 vnivanch Exp $
+// GEANT4 tag $Name: exampleN05-V05-02-00 $
 //
 // 
 // ------------------------------------------------------------
@@ -83,13 +83,14 @@ class ExN05SpecialCuts : public G4VProcess
      //  no operation in  AlongStepDoIt
      virtual G4VParticleChange* AlongStepDoIt(
 			     const G4Track& ,
-			     const G4Step& 
+			     const G4Step&
 			    ) {return 0;};
 
   private:
-  
-  // hide assignment operator as private 
-     ExN05SpecialCuts& operator=(const ExN05SpecialCuts& right){return *this;};
+
+  // hide assignment operator as private
+     ExN05SpecialCuts(ExN05SpecialCuts&);
+     ExN05SpecialCuts& operator=(const ExN05SpecialCuts& right);
 
 };
 
diff --git a/examples/novice/N05/src/ExN05MinEkineCuts.cc b/examples/novice/N05/src/ExN05MinEkineCuts.cc
index 074b85cc8b5ac42afe95480f217b2eb94c129248..075ba08c299d22061cd6dba9ba7856702e19bd1a 100644
--- a/examples/novice/N05/src/ExN05MinEkineCuts.cc
+++ b/examples/novice/N05/src/ExN05MinEkineCuts.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: ExN05MinEkineCuts.cc,v 1.5 2003/05/28 11:20:25 gcosmo Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: ExN05MinEkineCuts.cc,v 1.6 2003/08/27 16:15:42 vnivanch Exp $
+// GEANT4 tag $Name: exampleN05-V05-02-00 $
 //
 // 
 // --------------------------------------------------------------
@@ -69,25 +69,25 @@ G4double ExN05MinEkineCuts::PostStepGetPhysicalInteractionLength(
    G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
    const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
    G4ParticleDefinition* aParticleDef = aTrack.GetDefinition();
-  
+
    if (pUserLimits) {
      //min kinetic energy
      G4double temp = DBL_MAX;
      G4double    eKine     = aParticle->GetKineticEnergy();
-     G4Material* aMaterial = aTrack.GetMaterial();
+     const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple();
      G4double eMin = pUserLimits->GetUserMinEkine(aTrack);
 
      G4double    rangeNow = DBL_MAX;
      if (aParticleDef->GetPDGCharge() != 0.0) {
-       rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial);
+       rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,couple);
      }
      if (eKine < eMin ) {
        proposedStep = 0.;
      } else if (aParticleDef->GetPDGCharge() != 0.0) {
        // charged particles only
-       G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial);
+       G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,couple);
        temp = rangeNow - rangeMin;
-       if (proposedStep > temp) proposedStep = temp;        
+       if (proposedStep > temp) proposedStep = temp;
      }
    }
    return proposedStep;
diff --git a/examples/novice/N05/src/ExN05MinRangeCuts.cc b/examples/novice/N05/src/ExN05MinRangeCuts.cc
index c90ca968d30a4d98dcf37eaafc5cd749016636ef..8e66b967a5adfb433e0bfb1500e93a0d3239a41a 100644
--- a/examples/novice/N05/src/ExN05MinRangeCuts.cc
+++ b/examples/novice/N05/src/ExN05MinRangeCuts.cc
@@ -21,12 +21,12 @@
 // ********************************************************************
 //
 //
-// $Id: ExN05MinRangeCuts.cc,v 1.5 2003/05/28 11:20:25 gcosmo Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: ExN05MinRangeCuts.cc,v 1.6 2003/08/27 16:15:43 vnivanch Exp $
+// GEANT4 tag $Name: exampleN05-V05-02-00 $
 //
 // 
 // --------------------------------------------------------------
-//	GEANT 4 class implementation file 
+//	GEANT 4 class implementation file
 // --------------------------------------------------------------
 //                   15 April 1998 M.Maire
 // --------------------------------------------------------------
@@ -54,7 +54,7 @@ ExN05MinRangeCuts::ExN05MinRangeCuts(ExN05MinRangeCuts&)
   : ExN05SpecialCuts()
 {}
 
- 
+
 G4double ExN05MinRangeCuts::PostStepGetPhysicalInteractionLength(
                              const G4Track& aTrack,
 			     G4double ,
@@ -69,16 +69,16 @@ G4double ExN05MinRangeCuts::PostStepGetPhysicalInteractionLength(
    G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
    const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
    G4ParticleDefinition* aParticleDef = aTrack.GetDefinition();
-  
+
    if (pUserLimits) {
      G4double temp = DBL_MAX;
 
      //min remaining range
      G4double    eKine     = aParticle->GetKineticEnergy();
-     G4Material* aMaterial = aTrack.GetMaterial();
+     const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple();
      G4double    rangeNow = DBL_MAX;
      if (aParticleDef->GetPDGCharge() != 0.0) {
-       rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial);
+       rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,couple);
      }
      temp = (rangeNow - pUserLimits->GetUserMinRange(aTrack));
      if (temp < 0.) {
diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out
index c878e414078b3c85892153dedafa0c4109d1dbaa..7d567ff618cfe729ed8b2b03d031551a856d115d 100644
--- a/examples/novice/N06/exampleN06.out
+++ b/examples/novice/N06/exampleN06.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 Visualization Manager instantiating...
@@ -988,6 +988,6 @@ Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
     1  -88.8 cm  -2.31 m      -5 m    2.18 eV      0 eV   5.58 m    5.58 m          Tank  Transportation
     2  -2.22 m   -5.79 m     -10 m    2.18 eV      0 eV   6.23 m    11.8 m    OutOfWorld  Transportation
 Number of optical photons produces in this event : 58
-number of event = 1 User=0.11s Real=0.22s Sys=0.11s
+number of event = 1 User=0.15s Real=0.24s Sys=0.09s
 Graphics systems deleted.
 Visualization Manager deleting...
diff --git a/examples/novice/N07/exampleN07.out b/examples/novice/N07/exampleN07.out
index 75b56a4fdc896eb3dc6dcb9405de79a102913eaf..af8580da9682f168dadbdbf1d2c0ded7ff61f1c9 100644
--- a/examples/novice/N07/exampleN07.out
+++ b/examples/novice/N07/exampleN07.out
@@ -1,6 +1,6 @@
 **********************************************
  Geant4 version $Name:  $
-                                (27-June-2003)
+                                (27-August-2003)
              Copyright : Geant4 Collaboration
 **********************************************
 
@@ -77,59 +77,137 @@ compt:  Total cross sections from a parametrisation. Good description from 10 Ke
        Scattered gamma energy according Klein-Nishina.
         PhysicsTables from 1 keV to 100 GeV in 80 bins. 
 
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
 
-eIoni:  delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
-        delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins.
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
 
-eBrem:  Total cross sections from a NEW parametrisation based on the EEDL data library. 
- Good description from 1 KeV to 100 GeV.
-        log scale extrapolation above 100 GeV 
-        Gamma energy sampled from a parametrised formula.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
+
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
+
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
 annihil:  Total cross section from Heilter formula(annihilation into 2 photons).
         gamma energies sampled according Heitler
         PhysicsTables from 10 keV to 10 TeV in 100 bins. 
 
-hIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuBrems:  theoretical cross section 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-MuPairProd:  theoretical cross sections 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
+hIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+========= Table of registered couples ==============================
+
+Index : 0     used in the geometry : Yes     recalculation needed : No 
+ Material : Galactic
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
+ Region(s) which use this couple : 
+    DefaultRegionForTheWorld
+
+Index : 1     used in the geometry : Yes     recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 100.511 keV    e- 1.37814 MeV    e+ 1.28002 MeV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 2     used in the geometry : Yes     recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 6.17835 keV    e- 342.891 keV    e+ 334.551 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 3     used in the geometry : Yes     recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 1 cm     e- 1 cm     e+ 1 cm 
+ Energy thresholds :  gamma 282.478 keV    e- 15.0137 MeV    e+ 13.9447 MeV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 4     used in the geometry : Yes     recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 1 cm     e- 1 cm     e+ 1 cm 
+ Energy thresholds :  gamma 19.0521 keV    e- 2.14666 MeV    e+ 2.04351 MeV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 5     used in the geometry : Yes     recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 10 cm     e- 10 cm     e+ 10 cm 
+ Energy thresholds :  gamma 2.24888 MeV    e- 437.915 MeV    e+ 406.735 MeV
+ Region(s) which use this couple : 
+    Calor-C
+
+Index : 6     used in the geometry : Yes     recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 10 cm     e- 10 cm     e+ 10 cm 
+ Energy thresholds :  gamma 56.6382 keV    e- 24.5664 MeV    e+ 22.8173 MeV
+ Region(s) which use this couple : 
+    Calor-C
+
+====================================================================
+
 Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=10.33s Real=12.26s Sys=1.74s
+  User=6.16s Real=7.03s Sys=0.87s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -137,55 +215,55 @@ Region : Calor-A
  Production thresholds :
     gamma 1 mm     e- 1 mm     e+ 1 mm 
  Energy deposition in an event :
-    Absorber 3.49356 GeV      Gap 393.529 MeV
+    Absorber 1.41527 GeV      Gap 123.931 MeV
  Number of secondaries in an event :
-    gamma in Absorber 1399.4    in Gap 85.8
-    e-    in Absorber 2262.9    in Gap 211.9
-    e+    in Absorber 125.4    in Gap 3.3
+    gamma in Absorber 844.2    in Gap 49.3
+    e-    in Absorber 1406.9    in Gap 134.7
+    e+    in Absorber 76.9    in Gap 2.2
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 100.53 keV    in Gap 6.24451 keV
-    e-    in Absorber 32.2931 eV     in Gap 39.6342 eV 
-    e+    in Absorber 0 eV     in Gap 150.656 keV
+    gamma in Absorber 100.512 keV    in Gap 6.17866 keV
+    e-    in Absorber 83.272 eV     in Gap 138.94 eV 
+    e+    in Absorber 4.25396 keV    in Gap 464.95 keV
  Total track length of e+/e- in an event :
-    Absorber 1.47887 m        Gap 69.4646 cm 
+    Absorber 98.4398 cm       Gap 42.2172 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 3909.5      Gap 433.7
+    Absorber 2367.1      Gap 216.2
 ############################################################
 Region : Calor-B
  Production thresholds :
     gamma 1 cm     e- 1 cm     e+ 1 cm 
  Energy deposition in an event :
-    Absorber 2.94872 GeV      Gap 340.061 MeV
+    Absorber 755.069 MeV      Gap 99.3706 MeV
  Number of secondaries in an event :
-    gamma in Absorber 674.8    in Gap 42.3
-    e-    in Absorber 1229.7    in Gap 109.3
-    e+    in Absorber 88.5    in Gap 2.3
+    gamma in Absorber 329.6    in Gap 32.3
+    e-    in Absorber 620.9    in Gap 61.7
+    e+    in Absorber 45.3    in Gap 1.9
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 282.484 keV    in Gap 19.5278 keV
-    e-    in Absorber 14.4371 eV     in Gap 288.537 eV 
-    e+    in Absorber 0 eV     in Gap 41.4122 keV
+    gamma in Absorber 282.591 keV    in Gap 19.1129 keV
+    e-    in Absorber 54.0936 eV     in Gap 283.491 eV 
+    e+    in Absorber 38.4768 keV    in Gap 1.03141 MeV
  Total track length of e+/e- in an event :
-    Absorber 94.0935 cm       Gap 45.4318 cm 
+    Absorber 49.862 cm       Gap 35.0573 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 2074      Gap 231.3
+    Absorber 1001      Gap 115.6
 ############################################################
 Region : Calor-C
  Production thresholds :
     gamma 10 cm     e- 10 cm     e+ 10 cm 
  Energy deposition in an event :
-    Absorber 3.30547 GeV      Gap 327.191 MeV
+    Absorber 667.291 MeV      Gap 70.417 MeV
  Number of secondaries in an event :
-    gamma in Absorber 268.5    in Gap 24.2
-    e-    in Absorber 475.8    in Gap 44.9
-    e+    in Absorber 72.8    in Gap 2.3
+    gamma in Absorber 165.6    in Gap 15.1
+    e-    in Absorber 292.6    in Gap 29.2
+    e+    in Absorber 45.8    in Gap 1.5
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 295.459 keV    in Gap 57.1333 keV
-    e-    in Absorber 10.9379 eV     in Gap 981.287 eV 
-    e+    in Absorber 0 eV     in Gap 440.57 keV
+    gamma in Absorber 307.211 keV    in Gap 62.0259 keV
+    e-    in Absorber 414.542 eV     in Gap 64.1086 eV 
+    e+    in Absorber 36.3999 keV    in Gap 944.837 keV
  Total track length of e+/e- in an event :
-    Absorber 65.3681 cm       Gap 29.9694 cm 
+    Absorber 41.6568 cm       Gap 21.2983 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 942.8      Gap 120.5
+    Absorber 491.3      Gap 61.3
 ############################################################
 /run/dumpCouples
 
@@ -271,59 +349,137 @@ compt:  Total cross sections from a parametrisation. Good description from 10 Ke
        Scattered gamma energy according Klein-Nishina.
         PhysicsTables from 1 keV to 100 GeV in 80 bins. 
 
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
 
-eIoni:  delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
-        delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins.
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
-eBrem:  Total cross sections from a NEW parametrisation based on the EEDL data library. 
- Good description from 1 KeV to 100 GeV.
-        log scale extrapolation above 100 GeV 
-        Gamma energy sampled from a parametrised formula.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
+
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
 annihil:  Total cross section from Heilter formula(annihilation into 2 photons).
         gamma energies sampled according Heitler
         PhysicsTables from 10 keV to 10 TeV in 100 bins. 
 
-hIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuBrems:  theoretical cross section 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-MuPairProd:  theoretical cross sections 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
+hIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+========= Table of registered couples ==============================
+
+Index : 0     used in the geometry : Yes     recalculation needed : No 
+ Material : Galactic
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
+ Region(s) which use this couple : 
+    DefaultRegionForTheWorld
+
+Index : 1     used in the geometry : Yes     recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 200 mum    e- 200 mum    e+ 200 mum
+ Energy thresholds :  gamma 47.1847 keV    e- 383.065 keV    e+ 364.659 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 2     used in the geometry : Yes     recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 200 mum    e- 200 mum    e+ 200 mum
+ Energy thresholds :  gamma 2.78576 keV    e- 123.426 keV    e+ 121.916 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 3     used in the geometry : Yes     recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
+ Energy thresholds :  gamma 120.589 keV    e- 2.614 MeV    e+ 2.42788 MeV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 4     used in the geometry : Yes     recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
+ Energy thresholds :  gamma 8.59044 keV    e- 561.061 keV    e+ 540.718 keV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 5     used in the geometry : Yes     recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 2 cm     e- 2 cm     e+ 2 cm 
+ Energy thresholds :  gamma 419.689 keV    e- 35.5413 MeV    e+ 33.0107 MeV
+ Region(s) which use this couple : 
+    Calor-C
+
+Index : 6     used in the geometry : Yes     recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 2 cm     e- 2 cm     e+ 2 cm 
+ Energy thresholds :  gamma 26.9798 keV    e- 4.2772 MeV    e+ 3.97266 MeV
+ Region(s) which use this couple : 
+    Calor-C
+
+====================================================================
+
 Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=10.31s Real=12.29s Sys=1.98s
+  User=11.22s Real=13.27s Sys=1.6s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -331,55 +487,55 @@ Region : Calor-A
  Production thresholds :
     gamma 200 mum    e- 200 mum    e+ 200 mum
  Energy deposition in an event :
-    Absorber 2.54186 GeV      Gap 316.78 MeV
+    Absorber 1.20895 GeV      Gap 248.223 MeV
  Number of secondaries in an event :
-    gamma in Absorber 955.6    in Gap 55.7
-    e-    in Absorber 1635.8    in Gap 216.1
-    e+    in Absorber 60.7    in Gap 1.8
+    gamma in Absorber 758.7    in Gap 94.9
+    e-    in Absorber 1460.7    in Gap 273.7
+    e+    in Absorber 62.8    in Gap 1.7
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 47.1968 keV    in Gap 2.80248 keV
-    e-    in Absorber 7.24449 eV     in Gap 104.367 eV 
-    e+    in Absorber 42.1686 keV    in Gap 0 eV 
+    gamma in Absorber 2.79229 keV    in Gap 2.79435 keV
+    e-    in Absorber 11.6659 eV     in Gap 2.12921 eV 
+    e+    in Absorber 71.6535 keV    in Gap 384.31 keV
  Total track length of e+/e- in an event :
-    Absorber 91.5175 cm       Gap 47.8247 cm 
+    Absorber 2.72344 m        Gap 1.22621 m  
  Total number of steps of e+/e- in an event :
-    Absorber 3656.4      Gap 539.5
+    Absorber 2533.9      Gap 597.6
 ############################################################
 Region : Calor-B
  Production thresholds :
     gamma 2 mm     e- 2 mm     e+ 2 mm 
  Energy deposition in an event :
-    Absorber 2.86186 GeV      Gap 358.872 MeV
+    Absorber 1.36776 GeV      Gap 156.077 MeV
  Number of secondaries in an event :
-    gamma in Absorber 886.8    in Gap 63.6
-    e-    in Absorber 1468.7    in Gap 149.7
-    e+    in Absorber 81.8    in Gap 2.5
+    gamma in Absorber 790.5    in Gap 60.9
+    e-    in Absorber 1347.5    in Gap 139.7
+    e+    in Absorber 79.4    in Gap 2.5
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 120.595 keV    in Gap 8.6932 keV
-    e-    in Absorber 2.9868 eV     in Gap 43.8425 eV 
-    e+    in Absorber 0 eV     in Gap 311.721 keV
+    gamma in Absorber 120.628 keV    in Gap 8.69977 keV
+    e-    in Absorber 70.5799 eV     in Gap 44.8316 eV 
+    e+    in Absorber 8.86675 keV    in Gap 93.4792 keV
  Total track length of e+/e- in an event :
-    Absorber 98.849 cm       Gap 57.602 cm 
+    Absorber 93.5088 cm       Gap 54.4657 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 2520.5      Gap 322.2
+    Absorber 2240.1      Gap 243.8
 ############################################################
 Region : Calor-C
  Production thresholds :
     gamma 2 cm     e- 2 cm     e+ 2 cm 
  Energy deposition in an event :
-    Absorber 2.34641 GeV      Gap 298.604 MeV
+    Absorber 1.49598 GeV      Gap 351.099 MeV
  Number of secondaries in an event :
-    gamma in Absorber 301.1    in Gap 25.1
-    e-    in Absorber 588.4    in Gap 56.3
-    e+    in Absorber 47.5    in Gap 1.4
+    gamma in Absorber 589.1    in Gap 109.9
+    e-    in Absorber 1133.7    in Gap 129.7
+    e+    in Absorber 97.9    in Gap 3.3
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 292.792 keV    in Gap 28.3517 keV
-    e-    in Absorber 90.4966 eV     in Gap 335.856 eV 
-    e+    in Absorber 0 eV     in Gap 932.349 keV
+    gamma in Absorber 27.1545 keV    in Gap 27.0986 keV
+    e-    in Absorber 109.549 eV     in Gap 42.8292 eV 
+    e+    in Absorber 12.5441 keV    in Gap 32.91 keV
  Total track length of e+/e- in an event :
-    Absorber 47.7807 cm       Gap 28.138 cm 
+    Absorber 3.46911 m        Gap 1.65423 m  
  Total number of steps of e+/e- in an event :
-    Absorber 986.6      Gap 130.3
+    Absorber 1871.8      Gap 435.2
 ############################################################
 /run/dumpCouples
 
@@ -464,59 +620,167 @@ compt:  Total cross sections from a parametrisation. Good description from 10 Ke
        Scattered gamma energy according Klein-Nishina.
         PhysicsTables from 1 keV to 100 GeV in 80 bins. 
 
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
 
-eIoni:  delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
-        delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins.
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
-eBrem:  Total cross sections from a NEW parametrisation based on the EEDL data library. 
- Good description from 1 KeV to 100 GeV.
-        log scale extrapolation above 100 GeV 
-        Gamma energy sampled from a parametrised formula.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
+
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
 annihil:  Total cross section from Heilter formula(annihilation into 2 photons).
         gamma energies sampled according Heitler
         PhysicsTables from 10 keV to 10 TeV in 100 bins. 
 
-hIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuBrems:  theoretical cross section 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-MuPairProd:  theoretical cross sections 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
+hIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+========= Table of registered couples ==============================
+
+Index : 0     used in the geometry : Yes     recalculation needed : No 
+ Material : Galactic
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
+ Region(s) which use this couple : 
+    DefaultRegionForTheWorld
+
+Index : 1     used in the geometry : No      recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 200 mum    e- 200 mum    e+ 200 mum
+ Energy thresholds :  gamma 47.1847 keV    e- 383.065 keV    e+ 364.659 keV
+
+Index : 2     used in the geometry : No      recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 200 mum    e- 200 mum    e+ 200 mum
+ Energy thresholds :  gamma 2.78576 keV    e- 123.426 keV    e+ 121.916 keV
+
+Index : 3     used in the geometry : No      recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
+ Energy thresholds :  gamma 120.589 keV    e- 2.614 MeV    e+ 2.42788 MeV
+
+Index : 4     used in the geometry : No      recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
+ Energy thresholds :  gamma 8.59044 keV    e- 561.061 keV    e+ 540.718 keV
+
+Index : 5     used in the geometry : No      recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 2 cm     e- 2 cm     e+ 2 cm 
+ Energy thresholds :  gamma 419.689 keV    e- 35.5413 MeV    e+ 33.0107 MeV
+
+Index : 6     used in the geometry : No      recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 2 cm     e- 2 cm     e+ 2 cm 
+ Energy thresholds :  gamma 26.9798 keV    e- 4.2772 MeV    e+ 3.97266 MeV
+
+Index : 7     used in the geometry : Yes     recalculation needed : No 
+ Material : Aluminium
+ Range cuts        :  gamma 200 mum    e- 200 mum    e+ 200 mum
+ Energy thresholds :  gamma 3.2133 keV    e- 199.488 keV    e+ 194.636 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 8     used in the geometry : Yes     recalculation needed : No 
+ Material : Water
+ Range cuts        :  gamma 200 mum    e- 200 mum    e+ 200 mum
+ Energy thresholds :  gamma 1.47052 keV    e- 126.503 keV    e+ 124.955 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 9     used in the geometry : Yes     recalculation needed : No 
+ Material : Aluminium
+ Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
+ Energy thresholds :  gamma 9.56197 keV    e- 1.02561 MeV    e+ 976.329 keV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 10     used in the geometry : Yes     recalculation needed : No 
+ Material : Water
+ Range cuts        :  gamma 2 mm     e- 2 mm     e+ 2 mm 
+ Energy thresholds :  gamma 3.8945 keV    e- 568.011 keV    e+ 547.416 keV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 11     used in the geometry : Yes     recalculation needed : No 
+ Material : Aluminium
+ Range cuts        :  gamma 2 cm     e- 2 cm     e+ 2 cm 
+ Energy thresholds :  gamma 28.1807 keV    e- 9.40429 MeV    e+ 8.7347 MeV
+ Region(s) which use this couple : 
+    Calor-C
+
+Index : 12     used in the geometry : Yes     recalculation needed : No 
+ Material : Water
+ Range cuts        :  gamma 2 cm     e- 2 cm     e+ 2 cm 
+ Energy thresholds :  gamma 10.3141 keV    e- 4.17317 MeV    e+ 3.97266 MeV
+ Region(s) which use this couple : 
+    Calor-C
+
+====================================================================
+
 Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=2.34s Real=2.93s Sys=0.59s
+  User=2.73s Real=2.9s Sys=0.14s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -524,55 +788,55 @@ Region : Calor-A
  Production thresholds :
     gamma 200 mum    e- 200 mum    e+ 200 mum
  Energy deposition in an event :
-    Absorber 524.451 MeV      Gap 243.25 MeV
+    Absorber 113.392 MeV      Gap 55.3101 MeV
  Number of secondaries in an event :
-    gamma in Absorber 36    in Gap 14.3
-    e-    in Absorber 246.8    in Gap 138.3
-    e+    in Absorber 0.7    in Gap 0.4
+    gamma in Absorber 26.1    in Gap 9.4
+    e-    in Absorber 205.9    in Gap 113.7
+    e+    in Absorber 0.6    in Gap 0.1
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 3.5122 keV    in Gap 1.51724 keV
-    e-    in Absorber 4.92947 eV     in Gap 14.4274 eV 
-    e+    in Absorber 1.05384 MeV    in Gap 5.4285 MeV
+    gamma in Absorber 3.22888 keV    in Gap 1.63395 keV
+    e-    in Absorber 4.38066 eV     in Gap 25.4116 eV 
+    e+    in Absorber 653.868 keV    in Gap 3.82459 MeV
  Total track length of e+/e- in an event :
-    Absorber 32.8615 cm       Gap 33.0812 cm 
+    Absorber 24.7205 cm       Gap 18.4247 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 627.3      Gap 392.1
+    Absorber 264.3      Gap 146.9
 ############################################################
 Region : Calor-B
  Production thresholds :
     gamma 2 mm     e- 2 mm     e+ 2 mm 
  Energy deposition in an event :
-    Absorber 549.233 MeV      Gap 244.622 MeV
+    Absorber 251.562 MeV      Gap 126.325 MeV
  Number of secondaries in an event :
-    gamma in Absorber 29.1    in Gap 9.8
-    e-    in Absorber 167.1    in Gap 66.2
-    e+    in Absorber 0.9    in Gap 0.2
+    gamma in Absorber 61.6    in Gap 25.3
+    e-    in Absorber 340.9    in Gap 155
+    e+    in Absorber 3.8    in Gap 0.6
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 9.58923 keV    in Gap 3.93026 keV
-    e-    in Absorber 37.3614 eV     in Gap 43.1702 eV 
-    e+    in Absorber 0 eV     in Gap 7.35855 MeV
+    gamma in Absorber 9.60555 keV    in Gap 4.01068 keV
+    e-    in Absorber 3.58958 eV     in Gap 16.6911 eV 
+    e+    in Absorber 249.716 keV    in Gap 1.33526 MeV
  Total track length of e+/e- in an event :
-    Absorber 32.4769 cm       Gap 28.9009 cm 
+    Absorber 58.537 cm       Gap 55.5059 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 287.4      Gap 149.5
+    Absorber 449.2      Gap 214.2
 ############################################################
 Region : Calor-C
  Production thresholds :
     gamma 2 cm     e- 2 cm     e+ 2 cm 
  Energy deposition in an event :
-    Absorber 556.303 MeV      Gap 246.329 MeV
+    Absorber 145.94 MeV      Gap 77.7002 MeV
  Number of secondaries in an event :
-    gamma in Absorber 19.2    in Gap 8.5
-    e-    in Absorber 134    in Gap 56.8
-    e+    in Absorber 1    in Gap 0.3
+    gamma in Absorber 32.9    in Gap 13.1
+    e-    in Absorber 215.6    in Gap 83.6
+    e+    in Absorber 2    in Gap 0.7
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 29.3673 keV    in Gap 10.4309 keV
-    e-    in Absorber 5.61037 eV     in Gap 51.6149 eV 
-    e+    in Absorber 925.679 keV    in Gap 0 eV 
+    gamma in Absorber 28.469 keV    in Gap 10.6072 keV
+    e-    in Absorber 16.1883 eV     in Gap 3.56537 eV 
+    e+    in Absorber 854.26 keV    in Gap 560.699 keV
  Total track length of e+/e- in an event :
-    Absorber 22.8681 cm       Gap 21.8067 cm 
+    Absorber 32.422 cm       Gap 33.2331 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 197.9      Gap 94.6
+    Absorber 270      Gap 111.5
 ############################################################
 /run/dumpCouples
 
@@ -688,59 +952,167 @@ compt:  Total cross sections from a parametrisation. Good description from 10 Ke
        Scattered gamma energy according Klein-Nishina.
         PhysicsTables from 1 keV to 100 GeV in 80 bins. 
 
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
+
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
-eIoni:  delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
-        delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins.
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
+eIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
 
-eBrem:  Total cross sections from a NEW parametrisation based on the EEDL data library. 
- Good description from 1 KeV to 100 GeV.
-        log scale extrapolation above 100 GeV 
-        Gamma energy sampled from a parametrised formula.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
+eBrem:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Total cross sections from a parametrisation based on the EEDL data library. 
+      Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
 
 annihil:  Total cross section from Heilter formula(annihilation into 2 photons).
         gamma energies sampled according Heitler
         PhysicsTables from 10 keV to 10 TeV in 100 bins. 
 
-hIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 100 TeV in 100 bins. 
-        Step function: finalRange(mm)= 1,  dRoverRange= 0.2
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuIoni:    Knock-on electron cross sections . 
-         Good description above the mean excitation energy.
-         delta ray energy sampled from  differential Xsection.
-        PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-msc:   Tables of transport mean free paths.
-          New model of MSC , computes the lateral 
-          displacement of the particle , too.
-        PhysicsTables from 100 eV  to 100 TeV in 100 bins. 
-
-MuBrems:  theoretical cross section 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
-
-MuPairProd:  theoretical cross sections 
-          Good description up to 1000 PeV.
-    PhysicsTables from 1 keV to 1000 PeV in 150 bins. 
+hIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+msc:  Model variant of multiple scattering 
+      Lambda tables from 100 eV  to 100 TeV in 100 bins.
+      Boundary algorithm is active with facrange= 0.199
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuIoni:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
+
+MuBrems:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+MuPairProd:  
+      dE/dx and range tables from 100 eV  to 100 TeV in 120 bins.
+      Lambda tables from threshold to 100 TeV in 120 bins.
+      Parametrised model 
+
+========= Table of registered couples ==============================
+
+Index : 0     used in the geometry : Yes     recalculation needed : No 
+ Material : Galactic
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 990 eV     e- 990 eV     e+ 990 eV 
+ Region(s) which use this couple : 
+    DefaultRegionForTheWorld
+
+Index : 1     used in the geometry : No      recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 10 mum    e- 10 mum    e+ 10 mum
+ Energy thresholds :  gamma 5.97389 keV    e- 57.5352 keV    e+ 56.8313 keV
+
+Index : 2     used in the geometry : No      recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 10 mum    e- 10 mum    e+ 10 mum
+ Energy thresholds :  gamma 990 eV     e- 7.67874 keV    e+ 7.58479 keV
+
+Index : 3     used in the geometry : No      recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 100 mum    e- 100 mum    e+ 100 mum
+ Energy thresholds :  gamma 29.3406 keV    e- 239.945 keV    e+ 231.245 keV
+
+Index : 4     used in the geometry : No      recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 100 mum    e- 100 mum    e+ 100 mum
+ Energy thresholds :  gamma 1.9853 keV    e- 82.2201 keV    e+ 81.2141 keV
+
+Index : 5     used in the geometry : No      recalculation needed : No 
+ Material : Lead
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 100.511 keV    e- 1.37814 MeV    e+ 1.28002 MeV
+
+Index : 6     used in the geometry : No      recalculation needed : No 
+ Material : liquidArgon
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 6.17835 keV    e- 342.891 keV    e+ 334.551 keV
+
+Index : 7     used in the geometry : Yes     recalculation needed : No 
+ Material : Aluminium
+ Range cuts        :  gamma 10 mum    e- 10 mum    e+ 10 mum
+ Energy thresholds :  gamma 990 eV     e- 33.8876 keV    e+ 33.4729 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 8     used in the geometry : Yes     recalculation needed : No 
+ Material : Water
+ Range cuts        :  gamma 10 mum    e- 10 mum    e+ 10 mum
+ Energy thresholds :  gamma 990 eV     e- 6.44974 keV    e+ 6.37083 keV
+ Region(s) which use this couple : 
+    Calor-A
+
+Index : 9     used in the geometry : Yes     recalculation needed : No 
+ Material : Aluminium
+ Range cuts        :  gamma 100 mum    e- 100 mum    e+ 100 mum
+ Energy thresholds :  gamma 2.31448 keV    e- 129.656 keV    e+ 128.07 keV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 10     used in the geometry : Yes     recalculation needed : No 
+ Material : Water
+ Range cuts        :  gamma 100 mum    e- 100 mum    e+ 100 mum
+ Energy thresholds :  gamma 1.09571 keV    e- 84.2696 keV    e+ 83.2385 keV
+ Region(s) which use this couple : 
+    Calor-B
+
+Index : 11     used in the geometry : Yes     recalculation needed : No 
+ Material : Aluminium
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 6.88731 keV    e- 596.68 keV    e+ 568.011 keV
+ Region(s) which use this couple : 
+    Calor-C
+
+Index : 12     used in the geometry : Yes     recalculation needed : No 
+ Material : Water
+ Range cuts        :  gamma 1 mm     e- 1 mm     e+ 1 mm 
+ Energy thresholds :  gamma 2.90186 keV    e- 347.138 keV    e+ 338.695 keV
+ Region(s) which use this couple : 
+    Calor-C
+
+====================================================================
+
 Start Run processing.
 Run terminated.
 Run Summary
   Number of events processed : 10
-  User=10.56s Real=14.8s Sys=3.39s
+  User=7.04s Real=8.34s Sys=1.3s
 ############################################################
  Run Summary - Number of events : 10
 ############################################################
@@ -748,55 +1120,55 @@ Region : Calor-A
  Production thresholds :
     gamma 10 mum    e- 10 mum    e+ 10 mum
  Energy deposition in an event :
-    Absorber 535.297 MeV      Gap 229.47 MeV
+    Absorber 253.578 MeV      Gap 118.441 MeV
  Number of secondaries in an event :
-    gamma in Absorber 53.9    in Gap 13.8
-    e-    in Absorber 959.8    in Gap 1854.4
-    e+    in Absorber 0.7    in Gap 0.2
+    gamma in Absorber 69.8    in Gap 23.6
+    e-    in Absorber 1127.3    in Gap 1943.5
+    e+    in Absorber 1.9    in Gap 0.5
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 1.00165 keV    in Gap 1.005 keV
-    e-    in Absorber 5.97988 eV     in Gap 3.55611 eV 
-    e+    in Absorber 1.81336 MeV    in Gap 14.8289 MeV
+    gamma in Absorber 1.00164 keV    in Gap 1.00714 keV
+    e-    in Absorber 10.0606 eV     in Gap 28.3609 eV 
+    e+    in Absorber 335.021 keV    in Gap 1.54373 MeV
  Total track length of e+/e- in an event :
-    Absorber 38.3074 cm       Gap 29.6527 cm 
+    Absorber 53.8564 cm       Gap 41.7677 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 3971.3      Gap 3674.8
+    Absorber 1529.5      Gap 2524.1
 ############################################################
 Region : Calor-B
  Production thresholds :
     gamma 100 mum    e- 100 mum    e+ 100 mum
  Energy deposition in an event :
-    Absorber 522.919 MeV      Gap 233.625 MeV
+    Absorber 142.079 MeV      Gap 71.2194 MeV
  Number of secondaries in an event :
-    gamma in Absorber 36.6    in Gap 12.4
-    e-    in Absorber 321.2    in Gap 176.2
-    e+    in Absorber 0.6    in Gap 0.1
+    gamma in Absorber 34.9    in Gap 11.9
+    e-    in Absorber 295.5    in Gap 159.9
+    e+    in Absorber 0.7    in Gap 0.2
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 2.39591 keV    in Gap 1.18057 keV
-    e-    in Absorber 21.5058 eV     in Gap 6.4111 eV 
-    e+    in Absorber 1.03811 MeV    in Gap 4.75865 MeV
+    gamma in Absorber 2.33075 keV    in Gap 1.11965 keV
+    e-    in Absorber 4.51161 eV     in Gap 6.84749 eV 
+    e+    in Absorber 788.439 keV    in Gap 2.80867 MeV
  Total track length of e+/e- in an event :
-    Absorber 32.8264 cm       Gap 29.2821 cm 
+    Absorber 30.9266 cm       Gap 26.1642 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 962.6      Gap 547.5
+    Absorber 386.3      Gap 217.3
 ############################################################
 Region : Calor-C
  Production thresholds :
     gamma 1 mm     e- 1 mm     e+ 1 mm 
  Energy deposition in an event :
-    Absorber 574.548 MeV      Gap 248.925 MeV
+    Absorber 105.339 MeV      Gap 53.9505 MeV
  Number of secondaries in an event :
-    gamma in Absorber 41.9    in Gap 11.8
-    e-    in Absorber 222.1    in Gap 99
-    e+    in Absorber 1.9    in Gap 0.1
+    gamma in Absorber 21.6    in Gap 9.6
+    e-    in Absorber 125.2    in Gap 67
+    e+    in Absorber 0.7    in Gap 0.1
  Minimum kinetic energy of generated secondaries :
-    gamma in Absorber 6.97856 keV    in Gap 2.98708 keV
-    e-    in Absorber 39.8329 eV     in Gap 1.90004 eV 
-    e+    in Absorber 1.74711 MeV    in Gap 11.535 MeV
+    gamma in Absorber 6.89394 keV    in Gap 2.99652 keV
+    e-    in Absorber 2.86541 eV     in Gap 54.0733 eV 
+    e+    in Absorber 3.91789 MeV    in Gap 1.38381 MeV
  Total track length of e+/e- in an event :
-    Absorber 40.9874 cm       Gap 32.8772 cm 
+    Absorber 24.4806 cm       Gap 20.298 cm 
  Total number of steps of e+/e- in an event :
-    Absorber 379.1      Gap 179.1
+    Absorber 166.4      Gap 90.5
 ############################################################
 /run/dumpCouples
 
diff --git a/source/geometry/verification/History b/source/geometry/verification/History
index 5147c99871317c6136df3b87d66419905a250024..654e7222e850a19b2418fc14d46d3e728663cc3a 100644
--- a/source/geometry/verification/History
+++ b/source/geometry/verification/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.10 2003/05/20 08:11:35 gcosmo Exp $
+$Id: History,v 1.11 2003/09/29 10:24:45 gcosmo Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -17,6 +17,11 @@ committal in the CVS repository !
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+Sep 29th, 2003          G.Cosmo  (geomver-V05-02-00)
+- G4GeomTestSegment.cc:
+  o Fixed logic in FindSomePoints() in case point gets stucked in a loop
+    while along a surface (D.C.Williams).
+
 May 20th, 2003          G.Cosmo  (geomver-V05-01-00)
 - G4GeomTestVolume[.hh.cc]:
   o Added methods TestRecursiveLine() and TestRecursiveCylinder() for
diff --git a/source/geometry/verification/src/G4GeomTestSegment.cc b/source/geometry/verification/src/G4GeomTestSegment.cc
index f1b6e5cc11af16ae25a93a56f9c817dfb44e74d8..0d7f09960478cfe36f5e72aadd1bfd2f4ef7640f 100644
--- a/source/geometry/verification/src/G4GeomTestSegment.cc
+++ b/source/geometry/verification/src/G4GeomTestSegment.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4GeomTestSegment.cc,v 1.2 2003/06/16 16:54:38 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4GeomTestSegment.cc,v 1.4 2003/09/29 10:25:09 gcosmo Exp $
+// GEANT4 tag $Name: geomver-V05-02-00 $
 //
 // --------------------------------------------------------------------
 // GEANT 4 class source file
@@ -294,7 +294,7 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger,
   //
   // Loop
   //
-  // nzero = the number of consequtive zeros
+  // nzero = the number of consecutive zeros
   //
   G4int nzero=0;
   
@@ -304,15 +304,10 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger,
     //
     p = p0 + s*v;
     
-    //
-    // Record point
-    //
-    points.push_back( G4GeomTestPoint( p, s, entering==forward ) );
-    
     if (nzero > 2) {
       //
-      // Oops. Infinite loop. Probably a geometry bug.
-      // We can give the solid a little help with a push
+      // Oops. In a loop. Probably along a spherical or cylindrical surface.
+      // Let's give the tool a little help with a push
       //
       G4double push = 1E-6;
       s += sign*push;
@@ -320,11 +315,11 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger,
         p = p0 + s*v;
         EInside inside = solid->Inside(p);
         if (inside == kInside) {
-          entering = false;
+          entering = true;
           break;
         }
         else if (inside == kOutside) {
-          entering = true;
+          entering = false;
           break;
         }
 
@@ -337,6 +332,13 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger,
         s += sign*push;
       }
     }
+    else {
+
+      //
+      // Record point
+      //
+      points.push_back( G4GeomTestPoint( p, s, entering==forward ) );
+    }
     
     //
     // Find next intersection
diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History
index 7fd447ebe657bf64df34f608b41519f93ce19b6c..7c52d1a05d5248c8094fe8283773e2b93e164214 100644
--- a/source/geometry/volumes/History
+++ b/source/geometry/volumes/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.104 2003/06/25 13:17:53 gcosmo Exp $
+$Id: History,v 1.105 2003/09/12 11:02:41 japost Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -17,6 +17,11 @@ committal in the CVS repository !
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+September 12th, 2003  J. Apostolakis - geomvol-V05-02-00
+Made optional the printing of information on 'looping' particles.
+It is now controlled by the verbose flag.
+    -> to address CMS request in problem report 509
+
 June 25th, 2003     G. Folger - geomvol-V05-01-04
 - Added disclaimer of liability where needed.
 
diff --git a/source/geometry/volumes/src/G4PropagatorInField.cc b/source/geometry/volumes/src/G4PropagatorInField.cc
index bf15d135e98fa9eeffb36e8ad911e47c89e17b6e..576e9e6756be24b46de20879fefb632c74fab60a 100644
--- a/source/geometry/volumes/src/G4PropagatorInField.cc
+++ b/source/geometry/volumes/src/G4PropagatorInField.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4PropagatorInField.cc,v 1.49 2003/06/25 13:12:37 gcosmo Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4PropagatorInField.cc,v 1.50 2003/09/12 11:00:01 japost Exp $
+// GEANT4 tag $Name: geomvol-V05-02-00 $
 // 
 // 
 //  This class implements an algorithm to track a particle in a
@@ -302,15 +302,19 @@ G4PropagatorInField::ComputeStep(
 
   if( do_loop_count >= fMax_loop_count  )
   {
-    G4cout << "G4PropagateInField: Warning: Particle is looping - " 
-           << " tracking in field will be stopped. " << G4endl;
-#ifdef G4VERBOSE
-    G4cout << " It has performed " << do_loop_count << " steps in Field " 
-           << " while a maximum of " << GetMaxLoopCount() << " are allowed. "
-           << G4endl;
-#endif
-    G4cerr << "G4PropagateInField: Warning: Looping particle. " << G4endl; 
     fParticleIsLooping = true;
+
+    if ( fVerboseLevel > 0 ){
+       G4cout << "G4PropagateInField: Killing looping particle " 
+              // << " of " << energy  << " energy "
+              << " after " << do_loop_count << " field substeps "
+              << " totaling " << StepTaken / mm << " mm " ;
+       if( pPhysVol )
+	  G4cout << " in the volume " << pPhysVol->GetName() ; 
+       else
+	 G4cout << " in unknown or null volume. " ; 
+       G4cout << G4endl;
+    }
   }
 
   if( !intersects )
@@ -784,7 +788,6 @@ ReEstimateEndpoint( const G4FieldTrack &CurrentStateA,
   G4FieldTrack newEndPoint( CurrentStateA );
   GetChordFinder()->GetIntegrationDriver()
                   ->AccurateAdvance(newEndPoint, curveDist, fEpsilonStep);
-  // EstimatedEndStateB = newEndpoint;
 
 #ifdef G4DEBUG_FIELD
   static G4int noInaccuracyWarnings = 0; 
@@ -804,7 +807,16 @@ ReEstimateEndpoint( const G4FieldTrack &CurrentStateA,
 	     << (newEndPoint.GetPosition()-EstimatedEndStateB.GetPosition()).mag()
 	     << G4endl;
     }
+#else
+  // Statistics on the RMS value of the corrections
+  static G4int    noCorrections=0;
+  static G4double sumCorrectionsSq = 0;
+  noCorrections++; 
+  sumCorrectionsSq += (EstimatedEndStateB.GetPosition() - 
+		       newEndPoint.GetPosition()).mag2();
+
 #endif
+
   return newEndPoint;
 }
 
diff --git a/source/particles/History b/source/particles/History
index 55a1473f7bc4d23ba9985e584b1c753f0f4a24e9..e1402bc659de251916244303723bc04c6a337f7d 100644
--- a/source/particles/History
+++ b/source/particles/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.93 2003/08/12 02:30:20 asaim Exp $
+$Id: History,v 1.95 2003/09/12 19:20:47 asaim Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -17,20 +17,27 @@ committal in the CVS repository !
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+- Sep 12, 2003  M.Asai (particles-V05-02-02)
+- Add DecayProperTime to deep copy of G4DecayProduct.
+
+- Aug 22, 2003  H.Kurasige (particles-V05-02-01)
+- G4DynamicParticle.cc: fixed memory leak for 'theElectronOccupancy'
+  in assignment operator.
+
 - Aug 11, 2003  M.Asai (particles-V05-02-00)
 - Add one void pointer to G4DynamicParticle for the sake of maintaining links between
   pre-assigned decay products and corresponding primary particle. This pointer is used
   by G4EventManager.
 
-- June 19, 2003  V.Ivantchenko
+- Jun 19, 2003  V.Ivantchenko
 - G4DynamicParticle.cc: use condition m^2<0.001MeV^2 to identify massless
   particles (tag partman-V05-01-02).
 
-- June 18, 2003  G.Cosmo
+- Jun 18, 2003  G.Cosmo
 - G4ProductionCutsTable.cc: removed usage of G4USE_STD_NAMESPACE after
   migration from G4std (tag partman-V05-01-01).
 
-- June 12, 2003  V.Ivantchenko
+- Jun 12, 2003  V.Ivantchenko
 - G4DynamicParticle.cc: fix in constructors for the calculation of masses
   to avoid negative values result of precision loss when massless particles
   (like photons) are treated. Fixes problem report #489.
diff --git a/source/particles/management/include/G4ParticleDefinition.hh b/source/particles/management/include/G4ParticleDefinition.hh
index 4a2e939fbf6d420ed76034c6bc69f8bef7a687bf..6c683cc9bd3f54660412c96b4b39e4de79b18b46 100644
--- a/source/particles/management/include/G4ParticleDefinition.hh
+++ b/source/particles/management/include/G4ParticleDefinition.hh
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4ParticleDefinition.hh,v 1.18.2.1 2003/06/16 17:18:47 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4ParticleDefinition.hh,v 1.20 2003/06/19 14:38:45 gunter Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
 //
 // 
 // ------------------------------------------------------------
@@ -58,6 +58,7 @@ class G4ProcessManager;
 class G4DecayTable;
 class G4ParticleTable;
 class G4Material;
+class G4ParticlePropertyTable;
 
 class G4ParticleDefinition 
 {
@@ -67,6 +68,8 @@ class G4ParticleDefinition
   //  all the processes this kind of particle can undertake.
   //
 
+  friend class  G4ParticlePropertyTable;
+
  public: // With Description
   //  Only one type of constructor can be used for G4ParticleDefinition.
   //  If you want to create new particle, you must set name of the particle 
@@ -149,7 +152,7 @@ class G4ParticleDefinition
       G4int    GetAntiQuarkContent(G4int flavor) const;
       //  return the number of quark with flavor contained in this particle. 
       //  The value of flavor is assigned as follows 
-      // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t, 7:l(down type quark) 8:h(up type quark) 
+      // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t
  
   public: // With Description
       // ShortLived flag
@@ -275,14 +278,12 @@ class G4ParticleDefinition
       //  The Particle Data Group integer identifier of the anti-particle
 
   protected:
-      enum {NumberOfQuarkFlavor = 8};
+      enum {NumberOfQuarkFlavor = 6};
       G4int  theQuarkContent[NumberOfQuarkFlavor];
       G4int  theAntiQuarkContent[NumberOfQuarkFlavor];
       //  the number of quark (minus Sign means anti-quark) contents
       //  The value of flavor is assigned as follows 
-      //    0:d, 1:u, 2:s, 3:c, 
-      //    4:b, 5:t, 6:l(down type quark) 7:h(up type quark) 
-
+      //    0:d, 1:u, 2:s, 3:c, 4:b, 5:t
 
   private:
     // Following members can be changed after construction
diff --git a/source/particles/management/include/G4ParticleDefinition.icc b/source/particles/management/include/G4ParticleDefinition.icc
index 262be70cb5632a58194c7caf48fffe06e107ee1f..5159cae385bfabd479064003b14218851ae22ba9 100644
--- a/source/particles/management/include/G4ParticleDefinition.icc
+++ b/source/particles/management/include/G4ParticleDefinition.icc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4ParticleDefinition.icc,v 1.4 2003/04/11 11:48:39 asaim Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4ParticleDefinition.icc,v 1.6 2003/10/03 16:00:33 gcosmo Exp $
+// GEANT4 tag $Name: partman-V05-02-00 $
 //
 
 inline 
@@ -70,30 +70,36 @@ inline
 
 inline
  G4int G4ParticleDefinition::GetQuarkContent(G4int flavor) const 
-{ 
-  if ((flavor>0) && (flavor<NumberOfQuarkFlavor)){
-    return theQuarkContent[flavor-1];
+{
+  G4int content = 0; 
+  if ((flavor>0) && (flavor<=NumberOfQuarkFlavor)){
+    content = theQuarkContent[flavor-1];
   }else {
+#ifdef G4VERBOSE
     if (verboseLevel >0) {
       G4cout << "Invalid Quark Flavor for G4ParticleDefinition::GetQuarkContent";
       G4cout << ": flavor=" << flavor <<G4endl;
-    }
-    return 0;
-  }  
+    }	
+#endif	
+  }
+  return content;  
 }
 
 inline
  G4int G4ParticleDefinition::GetAntiQuarkContent(G4int flavor) const 
-{ 
-  if ((flavor>0) && (flavor<NumberOfQuarkFlavor)){
-    return theAntiQuarkContent[flavor-1];
+{
+  G4int content = 0;
+  if ((flavor>0) && (flavor<=NumberOfQuarkFlavor)){
+    content = theAntiQuarkContent[flavor-1];
   }else {
+#ifdef G4VERBOSE
     if (verboseLevel >0) {
       G4cout <<"Invalid Quark Flavor for G4ParticleDefinition::GetAntiQuarkContent";
       G4cout << ": flavor=" << flavor <<G4endl;
     }
-    return 0;
+#endif
   }  
+  return content;
 }
 
 inline 
@@ -114,4 +120,3 @@ G4bool G4ParticleDefinition::GetApplyCutsFlag() const
   return fApplyCutsFlag;
 }
 
-
diff --git a/source/particles/management/include/G4ParticlePropertyData.hh b/source/particles/management/include/G4ParticlePropertyData.hh
new file mode 100644
index 0000000000000000000000000000000000000000..4017c82b1e9e21b127e662ce008dd68c614f1847
--- /dev/null
+++ b/source/particles/management/include/G4ParticlePropertyData.hh
@@ -0,0 +1,219 @@
+//
+// ********************************************************************
+// * DISCLAIMER                                                       *
+// *                                                                  *
+// * The following disclaimer summarizes all the specific disclaimers *
+// * of contributors to this software. The specific disclaimers,which *
+// * govern, are listed with their locations in:                      *
+// *   http://cern.ch/geant4/license                                  *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.                                                             *
+// *                                                                  *
+// * This  code  implementation is the  intellectual property  of the *
+// * GEANT4 collaboration.                                            *
+// * By copying,  distributing  or modifying the Program (or any work *
+// * based  on  the Program)  you indicate  your  acceptance of  this *
+// * statement, and all its terms.                                    *
+// ********************************************************************
+//
+//
+// $Id: G4ParticlePropertyData.hh,v 1.1 2003/06/11 07:20:06 kurasige Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
+//
+// 
+// ------------------------------------------------------------
+//	GEANT 4 class header file 
+//
+//	History: 
+// ---------------- G4ParticlePropertyData ----------------
+// first implementation by H Kurashige 9 June 2003
+// ------------------------------------------------------------
+
+#ifndef G4ParticlePropertyData_h
+#define G4ParticlePropertyData_h 1
+
+#include "globals.hh"
+#include "G4ios.hh"
+
+class G4ParticlePropertyTable;
+class G4ParticlePropertyData 
+{
+  // Class Description
+  //  This class containes properties of a particle which are subset
+  //  of properties in G4ParticleDefinition class.
+  //  This class is used only for G4ParticlePropertyTable.
+  //
+  
+  friend class  G4ParticlePropertyTable;
+
+ public: // With Description
+ 
+  G4ParticlePropertyData(const G4String& particleName = "");
+  // The particle name should be assigned
+  // This particle name can not be changed except for assignment operator
+
+  G4ParticlePropertyData(const G4ParticlePropertyData &right);
+ 
+  virtual ~G4ParticlePropertyData();
+      
+  const G4ParticlePropertyData & operator=(const G4ParticlePropertyData &right);
+  
+  G4int operator==(const G4ParticlePropertyData &right) const;
+  G4int operator!=(const G4ParticlePropertyData &right) const;
+
+ public: // With Description
+  // By these following Getxxxx methods, you can get values 
+  // for members which can not be changed
+  const G4String& GetParticleName() const { return theParticleName; }
+  
+  G4double GetPDGMass() const { return thePDGMass; }
+  G4double GetPDGWidth() const { return thePDGWidth; } 
+  G4double GetPDGCharge() const { return thePDGCharge; }
+  
+  G4int    GetPDGiSpin() const { return thePDGiSpin; }
+  G4int    GetPDGiParity() const { return thePDGiParity; }
+  G4int    GetPDGiConjugation() const { return thePDGiConjugation; }
+  G4int    GetPDGiIsospin() const { return thePDGiIsospin; }
+  G4int    GetPDGiIsospin3() const { return thePDGiIsospin3; }
+  G4int    GetPDGiGParity() const { return thePDGiGParity; }
+  
+  G4int    GetLeptonNumber() const { return theLeptonNumber; }
+  G4int    GetBaryonNumber() const { return theBaryonNumber; }
+  
+  G4int    GetPDGEncoding() const { return thePDGEncoding; }
+  G4int    GetAntiPDGEncoding() const { return theAntiPDGEncoding; }
+  
+  G4int    GetQuarkContent(G4int flavor) const;
+  G4int    GetAntiQuarkContent(G4int flavor) const;
+  //  return the number of quark with flavor contained in this particle. 
+  //  The value of flavor is assigned as follows 
+  // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t
+  
+  G4double GetPDGLifeTime() const { return thePDGLifeTime; }
+
+  // SetXXX methods 
+  void SetPDGMass(G4double newMass);
+  void SetPDGWidth(G4double newWidth);
+  void SetPDGCharge(G4double newCharge);
+  
+  void SetPDGiSpin(G4int newSpin);
+  void SetPDGiParity(G4int newParity);
+  void SetPDGiConjugation(G4int newConjugation);
+  void SetPDGiIsospin(G4int newIsospin);
+  void SetPDGiIsospin3(G4int newIsospin3);
+  void SetPDGiGParity(G4int newGParity);
+  
+  void SetLeptonNumber(G4int newLeptonNumber);
+  void SetBaryonNumber(G4int newBaryonNumber);
+  
+  void SetPDGEncoding(G4int newEncoding);
+  void SetAntiPDGEncoding(G4int newAntiEncoding);
+  
+  void SetQuarkContent(G4int flavor, G4int newContent);
+  void SetAntiQuarkContent(G4int flavor, G4int newContent);
+  void SetPDGLifeTime(G4double newLifeTime); 
+
+ public: // With Description
+  void Print() const;
+  //  Prints information of data members.
+
+ public:
+  void  SetVerboseLevel(G4int value);
+  G4int GetVerboseLevel() const;
+  // controle flag for output message
+  //  0: Silent
+  //  1: Warning message
+  //  2: More
+
+
+ private:
+  G4String theParticleName;
+  //  The name of the particle.
+  
+  G4double thePDGMass;
+  //  The mass of the particle, in units of equivalent energy.
+  
+  G4double thePDGWidth;
+  //  The decay width of the particle, usually the width of a
+  //  Breit-Wigner function, assuming that you are near the
+  //  mass center anyway. (in units of equivalent energy)
+  
+  G4double thePDGCharge;
+  //  The charge of the particle.(in units of Coulomb)
+  
+  //   ---- following members are quantum number
+  //         i.e. discrete numbers can be allowded
+  //        So, you can defined only by using integer in constructor 
+
+  G4int thePDGiSpin;
+  //  The total spin of the particle, also often denoted as
+  //  capital J, in units of 1/2.
+
+  G4int thePDGiParity;
+  //  The parity quantum number, in units of 1. If the parity
+  //  is not defined for this particle, we will set this to 0.
+  
+  G4int thePDGiConjugation;
+  //  This charge conjugation quantum number in units of 1.
+  
+  G4int thePDGiGParity;
+  //  The value of the G-parity quantum number.
+  
+  G4int thePDGiIsospin;
+  G4int thePDGiIsospin3;
+  //  The isospin and its 3rd-component in units of 1/2.
+  
+  G4int theLeptonNumber;
+  //  The lepton quantum number.
+  
+  G4int theBaryonNumber;
+  //  The baryon quantum number.
+  
+  G4int thePDGEncoding;
+  //  The Particle Data Group integer identifier of this particle
+  
+  G4int theAntiPDGEncoding;
+  //  The Particle Data Group integer identifier of the anti-particle
+  
+  G4double thePDGLifeTime;
+  //  The Particle Life Time
+  
+  enum {NumberOfQuarkFlavor = 6};
+  G4int  theQuarkContent[NumberOfQuarkFlavor];
+  G4int  theAntiQuarkContent[NumberOfQuarkFlavor];
+  //  the number of quark (minus Sign means anti-quark) contents
+
+ private:
+  G4bool fPDGMassModified;
+  G4bool fPDGWidthModified;
+  G4bool fPDGChargeModified;
+  G4bool fPDGiSpinModified;
+  G4bool fPDGiParityModified;
+  G4bool fPDGiConjugationModified;
+  G4bool fPDGiGParityModified;
+  G4bool fPDGiIsospinModified;
+  G4bool fPDGiIsospin3Modified;
+  G4bool fPDGIsospinModified;
+  G4bool fPDGIsospin3Modified;
+  G4bool fLeptonNumberModified;
+  G4bool fBaryonNumberModified;
+  G4bool fPDGEncodingModified;
+  G4bool fAntiPDGEncodingModified;
+  G4bool fQuarkContentModified;
+  G4bool fAntiQuarkContentModified;
+  G4bool fPDGLifeTimeModified;
+
+ private:
+  G4int verboseLevel;
+
+};
+
+#include "G4ParticlePropertyData.icc"
+
+#endif
+
+
diff --git a/source/particles/management/include/G4ParticlePropertyData.icc b/source/particles/management/include/G4ParticlePropertyData.icc
new file mode 100644
index 0000000000000000000000000000000000000000..230a62ae5aa057feedeb3c3b2591a1d2c11e6b36
--- /dev/null
+++ b/source/particles/management/include/G4ParticlePropertyData.icc
@@ -0,0 +1,181 @@
+//
+// ********************************************************************
+// * DISCLAIMER                                                       *
+// *                                                                  *
+// * The following disclaimer summarizes all the specific disclaimers *
+// * of contributors to this software. The specific disclaimers,which *
+// * govern, are listed with their locations in:                      *
+// *   http://cern.ch/geant4/license                                  *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.                                                             *
+// *                                                                  *
+// * This  code  implementation is the  intellectual property  of the *
+// * GEANT4 collaboration.                                            *
+// * By copying,  distributing  or modifying the Program (or any work *
+// * based  on  the Program)  you indicate  your  acceptance of  this *
+// * statement, and all its terms.                                    *
+// ********************************************************************
+//
+//
+// $Id: G4ParticlePropertyData.icc,v 1.1 2003/06/11 07:20:06 kurasige Exp $
+//
+
+inline 
+ void G4ParticlePropertyData::SetVerboseLevel(G4int value)
+{
+   verboseLevel = value;
+}
+
+inline 
+ G4int G4ParticlePropertyData::GetVerboseLevel() const
+{
+   return verboseLevel;
+}
+
+inline
+ G4int G4ParticlePropertyData::GetQuarkContent(G4int flavor) const 
+{ 
+  if ((flavor>0) && (flavor<=NumberOfQuarkFlavor)){
+    return theQuarkContent[flavor-1];
+  }else {
+    return 0;
+  }  
+}
+
+inline
+ G4int G4ParticlePropertyData::GetAntiQuarkContent(G4int flavor) const 
+{ 
+  if ((flavor>0) && (flavor<NumberOfQuarkFlavor)){
+    return theAntiQuarkContent[flavor-1];
+  }else {
+    return 0;
+  }  
+}
+
+ 
+inline 
+ void  G4ParticlePropertyData::SetPDGEncoding(G4int aEncoding)
+{ 
+  thePDGEncoding = aEncoding; 
+  fPDGEncodingModified = true;  
+  theAntiPDGEncoding = -1*aEncoding; 
+  fAntiPDGEncodingModified = true;  
+}
+
+inline 
+ void  G4ParticlePropertyData::SetAntiPDGEncoding(G4int aEncoding)
+{ 
+  theAntiPDGEncoding = aEncoding; 
+  fAntiPDGEncodingModified = true;  
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGMass(G4double newMass)
+{
+  thePDGMass = newMass;
+  fPDGMassModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGWidth(G4double newWidth)
+{
+  thePDGWidth = newWidth;
+  fPDGWidthModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGCharge(G4double newCharge)
+{
+  thePDGCharge = newCharge;
+  fPDGChargeModified = true;		
+}
+  
+inline 
+ void  G4ParticlePropertyData::SetPDGiSpin(G4int newSpin)
+{
+  thePDGiSpin = newSpin; 
+  fPDGiSpinModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGiParity(G4int newParity)
+{
+  thePDGiParity = newParity;
+  fPDGiParityModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGiConjugation(G4int newConjugation)
+{ 
+  thePDGiConjugation = newConjugation;
+  fPDGiConjugationModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGiIsospin(G4int newIsospin)
+{
+  thePDGiIsospin = newIsospin;
+  fPDGiIsospinModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGiIsospin3(G4int newIsospin3)
+{
+  thePDGiIsospin3 = newIsospin3;
+  fPDGiIsospin3Modified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetPDGiGParity(G4int newGParity)
+{
+ thePDGiGParity = newGParity;
+ fPDGiGParityModified = true;
+}
+  
+inline 
+ void  G4ParticlePropertyData::SetLeptonNumber(G4int newLeptonNumber)
+{
+  theLeptonNumber = newLeptonNumber;
+  fLeptonNumberModified = true;
+}
+
+inline 
+ void  G4ParticlePropertyData::SetBaryonNumber(G4int newBaryonNumber)
+{
+  theBaryonNumber = newBaryonNumber;
+  fBaryonNumberModified = true;
+}
+  
+inline 
+ void  G4ParticlePropertyData::SetQuarkContent(G4int flavor, G4int newContent)
+{
+  if ((flavor>0) && (flavor<=NumberOfQuarkFlavor)){
+    theQuarkContent[flavor-1] = newContent;
+    fQuarkContentModified = true;
+  }
+}
+
+inline 
+ void  G4ParticlePropertyData::SetAntiQuarkContent(G4int flavor, G4int newContent)
+{
+  if ((flavor>0) && (flavor<=NumberOfQuarkFlavor)){
+    theAntiQuarkContent[flavor-1] = newContent;
+    fAntiQuarkContentModified = true;
+  }
+}  
+
+inline 
+ void  G4ParticlePropertyData::SetPDGLifeTime(G4double newLifeTime)
+{
+  thePDGLifeTime = newLifeTime;
+  fPDGLifeTimeModified = true;
+}
+
+
+
+
+
diff --git a/source/particles/management/include/G4ParticlePropertyTable.hh b/source/particles/management/include/G4ParticlePropertyTable.hh
new file mode 100644
index 0000000000000000000000000000000000000000..2bbd9f403bc82eaf7014880e538d448d1584678a
--- /dev/null
+++ b/source/particles/management/include/G4ParticlePropertyTable.hh
@@ -0,0 +1,97 @@
+// ********************************************************************
+//
+//
+// $Id: G4ParticlePropertyTable.hh,v 1.2 2003/06/19 14:38:46 gunter Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
+//
+// 
+// ------------------------------------------------------------
+//	GEANT 4 class header file 
+//
+//	History: 
+// ---------------- G4ParticlePropertyTable ----------------
+// first implementation by H Kurashige 9 June 2003
+// ------------------------------------------------------------
+
+#ifndef G4ParticlePropertyTable_h
+#define G4ParticlePropertyTable_h 1
+
+#include "globals.hh"
+#include "G4ios.hh"
+#include <vector>
+
+#include "G4ParticlePropertyData.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+ 
+class G4ParticlePropertyTable
+{
+  // Class Description
+  //  This class manages properties of a particle which are 
+  //  properties in G4ParticlePropertyTable class.
+  //  This class is a singleton.
+ 
+ protected: 
+  // hide default constructor because this class is a singleton  
+  G4ParticlePropertyTable();
+  G4ParticlePropertyTable(const G4ParticlePropertyTable &right);
+      
+  const G4ParticlePropertyTable & operator=(const G4ParticlePropertyTable &right);
+  
+ public:
+  G4int operator==(const G4ParticlePropertyTable &right) const;
+  G4int operator!=(const G4ParticlePropertyTable &right) const;
+
+ public:
+  virtual ~G4ParticlePropertyTable();
+
+ public: //With Description
+  static G4ParticlePropertyTable* GetParticlePropertyTable();
+   // return the pointer to G4ParticlePropertyTable object
+   // G4ParticlePropertyTable is a "singleton" and can get its pointer 
+   // by this function. At the first time of calling this function, 
+   // the G4ParticleTable object is instantiated 
+
+  G4ParticlePropertyData* GetParticleProperty(const G4String& aParticleName);
+  G4ParticlePropertyData* GetParticleProperty(const G4ParticleDefinition* aParticle);
+  // return the pointer to  G4ParticlePropertyData object,
+  // which contains properties for the particle specified.
+  // (return 0 if the specified particle does not exist)
+ 
+  G4bool SetParticleProperty(const G4ParticlePropertyData& newProperty);
+  // change particle properties for the particle specified.
+  // return true if properties are sucessfully set 
+
+  void   Clear();
+  // clear and destroy arrayDataObject
+
+ public:
+  void  SetVerboseLevel(G4int value);
+  G4int GetVerboseLevel() const;
+  // controle flag for output message
+  //  0: Silent
+  //  1: Warning message
+  //  2: More
+
+ protected:
+  G4ParticleTable* fParticleTable;  
+  
+ private:
+  G4int verboseLevel;
+  static G4ParticlePropertyTable*  fgParticlePropertyTable;
+  
+ protected:
+  std::vector<G4ParticlePropertyData*> arrayDataObject; 
+};
+
+
+#endif
+
+
+
+
+
+
+
+
+
diff --git a/source/particles/management/src/G4DecayProducts.cc b/source/particles/management/src/G4DecayProducts.cc
index 5304e3e37a67fc9573971491554219594e540d4d..549a278faef297db593e9d4a07ec20c075c9b327 100644
--- a/source/particles/management/src/G4DecayProducts.cc
+++ b/source/particles/management/src/G4DecayProducts.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4DecayProducts.cc,v 1.9 2001/07/11 10:01:59 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4DecayProducts.cc,v 1.10 2003/09/12 19:21:07 asaim Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
 //
 // 
 // ------------------------------------------------------------
@@ -67,11 +67,14 @@ G4DecayProducts::G4DecayProducts(const G4DecayProducts &right)
   {
     G4DynamicParticle* daughter = right.theProductVector[index];
     const G4DecayProducts* pPreAssigned = daughter->GetPreAssignedDecayProducts();
+    G4double properTime = daughter->GetPreAssignedDecayProperTime();
     G4DynamicParticle* pDaughter =  new G4DynamicParticle(*daughter);
 
     if (pPreAssigned) {
       G4DecayProducts* pPA = new G4DecayProducts(*pPreAssigned);
       pDaughter->SetPreAssignedDecayProducts(pPA);
+      if(properTime>0.0)
+      { pDaughter->SetPreAssignedDecayProperTime(properTime); }
     }
 
     PushProducts( pDaughter );
diff --git a/source/particles/management/src/G4DynamicParticle.cc b/source/particles/management/src/G4DynamicParticle.cc
index 45351f751c3776d4ce35924d9013dd83866d4d90..ecb9faf09df0c1da2abc63b2ce9d8a6eddb8917f 100644
--- a/source/particles/management/src/G4DynamicParticle.cc
+++ b/source/particles/management/src/G4DynamicParticle.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4DynamicParticle.cc,v 1.16 2003/08/12 02:21:59 asaim Exp $
-// GEANT4 tag $Name: particles-V05-02-00 $
+// $Id: G4DynamicParticle.cc,v 1.17 2003/08/22 00:03:15 kurasige Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
 //
 // 
 // --------------------------------------------------------------
@@ -262,6 +262,7 @@ G4DynamicParticle & G4DynamicParticle::operator=(const G4DynamicParticle &right)
   if (this != &right) {
     theDynamicalMass = right.theDynamicalMass;
     theDynamicalCharge = right.theDynamicalCharge;
+    if (theElectronOccupancy != 0) delete theElectronOccupancy;
     if (right.theElectronOccupancy != 0){
       theElectronOccupancy =
              new G4ElectronOccupancy(*right.theElectronOccupancy);
diff --git a/source/particles/management/src/G4ParticleDefinition.cc b/source/particles/management/src/G4ParticleDefinition.cc
index 2e0b2a1d07902d12e40717e2fbf30dacfddb771f..51dcd18ab9f051d87cc9002b37d13ebf84dfe369 100644
--- a/source/particles/management/src/G4ParticleDefinition.cc
+++ b/source/particles/management/src/G4ParticleDefinition.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4ParticleDefinition.cc,v 1.17.2.1 2003/06/16 17:18:49 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4ParticleDefinition.cc,v 1.19 2003/06/19 14:38:47 gunter Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
 //
 // 
 // --------------------------------------------------------------
@@ -159,7 +159,7 @@ G4int G4ParticleDefinition::FillQuarkContents()
       //  this->thePDGEncoding.
 {
   G4int flavor;
-  for (flavor= 0; flavor<NumberOfQuarkFlavor-1; flavor++){
+  for (flavor= 0; flavor<NumberOfQuarkFlavor; flavor++){
     theQuarkContent[flavor]     = 0;
     theAntiQuarkContent[flavor] = 0;
   }
@@ -169,7 +169,7 @@ G4int G4ParticleDefinition::FillQuarkContents()
   G4int temp = checker.CheckPDGCode(thePDGEncoding, theParticleType);
 
   if ( temp != 0) {
-    for (flavor= 0; flavor<NumberOfQuarkFlavor-1; flavor++){
+    for (flavor= 0; flavor<NumberOfQuarkFlavor; flavor++){
       theQuarkContent[flavor]     = checker.GetQuarkContent(flavor);
       theAntiQuarkContent[flavor] = checker.GetAntiQuarkContent(flavor);
     }
diff --git a/source/particles/management/src/G4ParticlePropertyData.cc b/source/particles/management/src/G4ParticlePropertyData.cc
new file mode 100644
index 0000000000000000000000000000000000000000..a5a41d10e29ff1b62b3890328a80f349af343c1e
--- /dev/null
+++ b/source/particles/management/src/G4ParticlePropertyData.cc
@@ -0,0 +1,225 @@
+//
+// ********************************************************************
+// * DISCLAIMER                                                       *
+// *                                                                  *
+// * The following disclaimer summarizes all the specific disclaimers *
+// * of contributors to this software. The specific disclaimers,which *
+// * govern, are listed with their locations in:                      *
+// *   http://cern.ch/geant4/license                                  *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.                                                             *
+// *                                                                  *
+// * This  code  implementation is the  intellectual property  of the *
+// * GEANT4 collaboration.                                            *
+// * By copying,  distributing  or modifying the Program (or any work *
+// * based  on  the Program)  you indicate  your  acceptance of  this *
+// * statement, and all its terms.                                    *
+// ********************************************************************
+//
+// $Id: G4ParticlePropertyData.cc,v 1.1 2003/06/11 07:20:06 kurasige Exp $
+//
+// class G4ParticlePropertyData
+//
+// Implementation
+//
+// History:
+// first implementation by H Kurashige 9 June 2003
+
+#include "G4ios.hh"
+#include "globals.hh"
+#include "G4ParticlePropertyData.hh"
+
+
+/////////////////////////////////////////////////////////////
+G4ParticlePropertyData::~G4ParticlePropertyData()
+{
+}
+
+/////////////////////////////////////////////////////////////
+G4ParticlePropertyData::G4ParticlePropertyData(const G4String& particleName):
+  theParticleName(particleName),
+  thePDGMass(0.0),
+  thePDGWidth(0.0),
+  thePDGCharge(0.0),
+  thePDGiSpin(0),
+  thePDGiParity(0),
+  thePDGiConjugation(0),
+  thePDGiGParity(0),
+  thePDGiIsospin(0),
+  thePDGiIsospin3(0),
+  theLeptonNumber(0),
+  theBaryonNumber(0),
+  thePDGEncoding(0),
+  theAntiPDGEncoding(0),
+  fPDGMassModified(false),
+  fPDGWidthModified(false),
+  fPDGChargeModified(false),
+  fPDGiSpinModified(false),
+  fPDGiParityModified(false),
+  fPDGiConjugationModified(false),
+  fPDGiGParityModified(false),
+  fPDGiIsospinModified(false),
+  fPDGiIsospin3Modified(false),
+  fPDGIsospinModified(false),
+  fPDGIsospin3Modified(false),
+  fLeptonNumberModified(false),
+  fBaryonNumberModified(false),
+  fPDGEncodingModified(false),
+  fAntiPDGEncodingModified(false),
+  fQuarkContentModified(false),
+  fAntiQuarkContentModified(false),
+  fPDGLifeTimeModified(false),
+  verboseLevel(1)
+{
+  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
+    theQuarkContent[flv] =0;
+    theAntiQuarkContent[flv]=0;
+  }
+}
+
+
+////////////////////////
+G4ParticlePropertyData::G4ParticlePropertyData(const G4ParticlePropertyData &right):
+  fPDGMassModified(false),
+  fPDGWidthModified(false),
+  fPDGChargeModified(false),
+  fPDGiSpinModified(false),
+  fPDGiParityModified(false),
+  fPDGiConjugationModified(false),
+  fPDGiGParityModified(false),
+  fPDGiIsospinModified(false),
+  fPDGiIsospin3Modified(false),
+  fPDGIsospinModified(false),
+  fPDGIsospin3Modified(false),
+  fLeptonNumberModified(false),
+  fBaryonNumberModified(false),
+  fPDGEncodingModified(false),
+  fAntiPDGEncodingModified(false),
+  fQuarkContentModified(false),
+  fAntiQuarkContentModified(false),
+  fPDGLifeTimeModified(false)
+{
+  verboseLevel      = right.verboseLevel; 
+  theParticleName   = right.theParticleName;
+  thePDGMass        = right.thePDGMass;
+  thePDGWidth       = right. thePDGWidth;
+  thePDGCharge      = right.thePDGCharge;
+  thePDGiSpin       = right.thePDGiSpin;
+  thePDGiParity     = right.thePDGiParity;
+  thePDGiConjugation   = right.thePDGiConjugation;
+  thePDGiGParity    = right.thePDGiGParity;
+  thePDGiIsospin    = right.thePDGiIsospin;
+  thePDGiIsospin3   = right.thePDGiIsospin3;
+  theLeptonNumber   = right.theLeptonNumber;
+  theBaryonNumber   = right.theBaryonNumber;
+  thePDGEncoding    = right.thePDGEncoding;
+  theAntiPDGEncoding   = right.theAntiPDGEncoding;
+  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
+    theQuarkContent[flv]    = right.theQuarkContent[flv];
+    theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
+  }
+  thePDGLifeTime    = right.thePDGLifeTime;
+}
+      
+////////////////////////
+const G4ParticlePropertyData & G4ParticlePropertyData::operator=(const G4ParticlePropertyData &right)
+{
+  if (this != &right) {
+    verboseLevel      = right.verboseLevel; 
+    theParticleName   = right.theParticleName;
+    thePDGMass        = right.thePDGMass;
+    thePDGWidth       = right. thePDGWidth;
+    thePDGCharge      = right.thePDGCharge;
+    thePDGiSpin       = right.thePDGiSpin;
+    thePDGiParity     = right.thePDGiParity;
+    thePDGiConjugation  = right.thePDGiConjugation;
+    thePDGiGParity    = right.thePDGiGParity;
+    thePDGiIsospin    = right.thePDGiIsospin;
+    thePDGiIsospin3   = right.thePDGiIsospin3;
+    theLeptonNumber   = right.theLeptonNumber;
+    theBaryonNumber   = right.theBaryonNumber;
+    thePDGEncoding    = right.thePDGEncoding;
+    theAntiPDGEncoding  = right.theAntiPDGEncoding;
+    for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
+      theQuarkContent[flv]    = right.theQuarkContent[flv];
+      theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
+    }
+    thePDGLifeTime    = right.thePDGLifeTime;
+    fPDGMassModified          = true;
+    fPDGWidthModified         = true;  
+    fPDGChargeModified        = true;
+    fPDGiSpinModified         = true;
+    fPDGiParityModified       = true;    
+    fPDGiConjugationModified  = true;  
+    fPDGiGParityModified      = true;
+    fPDGiIsospinModified      = true; 
+    fPDGiIsospin3Modified     = true;
+    fPDGIsospinModified       = true; 
+    fPDGIsospin3Modified      = true;
+    fLeptonNumberModified     = true;
+    fBaryonNumberModified     = true;
+    fPDGEncodingModified      = true;
+    fAntiPDGEncodingModified  = true;
+    fQuarkContentModified     = true;
+    fAntiQuarkContentModified = true;
+    fPDGLifeTimeModified      = true;   
+  }
+  return *this;
+}
+  
+////////////////////////
+G4int G4ParticlePropertyData::operator==(const G4ParticlePropertyData &right) const
+{
+  return (this == &right);
+}
+
+////////////////////////
+G4int G4ParticlePropertyData::operator!=(const G4ParticlePropertyData &right) const
+{
+  return (this != &right);
+}
+
+////////////////////////
+void G4ParticlePropertyData::Print() const
+{
+  G4cout << " Particle Name : " << theParticleName << G4endl;
+  G4cout << " PDG particle code : " << thePDGEncoding;
+  G4cout << " [PDG anti-particle code: " << this->GetAntiPDGEncoding() << "]"<< G4endl;
+  G4cout << " Mass [GeV/c2] : " << thePDGMass/GeV ;
+  G4cout << "     Width : " << thePDGWidth/GeV << G4endl;
+  G4cout << " Lifetime [nsec] : " << thePDGLifeTime/ns << G4endl;
+  G4cout << " Charge [e]: " << thePDGCharge/eplus << G4endl;
+  G4cout << " Spin : " << thePDGiSpin << "/2" << G4endl;
+  G4cout << " Parity : " << thePDGiParity << G4endl;
+  G4cout << " Charge conjugation : " << thePDGiConjugation << G4endl;
+  G4cout << " Isospin : (I,Iz): (" << thePDGiIsospin <<"/2";
+  G4cout << " , " << thePDGiIsospin3 << "/2 ) " << G4endl;
+  G4cout << " GParity : " << thePDGiGParity << G4endl;
+  G4cout << " Lepton number : " << theLeptonNumber;
+  G4cout << " Baryon number : " << theBaryonNumber << G4endl;  
+  G4cout << " Quark contents     (d,u,s,c,b,t) : " << theQuarkContent[0];
+  G4cout << ", " << theQuarkContent[1];
+  G4cout << ", " << theQuarkContent[2];
+  G4cout << ", " << theQuarkContent[3];
+  G4cout << ", " << theQuarkContent[4];
+  G4cout << ", " << theQuarkContent[5] << G4endl;
+  G4cout << " AntiQuark contents               : " << theAntiQuarkContent[0];
+  G4cout << ", " << theAntiQuarkContent[1];
+  G4cout << ", " << theAntiQuarkContent[2];
+  G4cout << ", " << theAntiQuarkContent[3];
+  G4cout << ", " << theAntiQuarkContent[4];
+  G4cout << ", " << theAntiQuarkContent[5] << G4endl;
+}
+
+
+
+
+
+
+
+
+
diff --git a/source/particles/management/src/G4ParticlePropertyTable.cc b/source/particles/management/src/G4ParticlePropertyTable.cc
new file mode 100644
index 0000000000000000000000000000000000000000..aee553129c08c093f1bc0a33beee361ed0f16527
--- /dev/null
+++ b/source/particles/management/src/G4ParticlePropertyTable.cc
@@ -0,0 +1,231 @@
+//
+// ********************************************************************
+// * DISCLAIMER                                                       *
+// *                                                                  *
+// * The following disclaimer summarizes all the specific disclaimers *
+// * of contributors to this software. The specific disclaimers,which *
+// * govern, are listed with their locations in:                      *
+// *   http://cern.ch/geant4/license                                  *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.                                                             *
+// *                                                                  *
+// * This  code  implementation is the  intellectual property  of the *
+// * GEANT4 collaboration.                                            *
+// * By copying,  distributing  or modifying the Program (or any work *
+// * based  on  the Program)  you indicate  your  acceptance of  this *
+// * statement, and all its terms.                                    *
+// ********************************************************************
+//
+// $Id: G4ParticlePropertyTable.cc,v 1.2 2003/10/03 16:03:30 gcosmo Exp $
+//
+// class G4ParticlePropertyTable
+//
+// Implementation
+//
+// History:
+// first implementation by H Kurashige 9 June 2003
+
+#include "G4ios.hh"
+#include "globals.hh"
+#include "G4StateManager.hh"
+#include "G4ParticleTable.hh"
+#include "G4ParticlePropertyTable.hh"
+
+// Static class variable: ptr to single instance of class
+G4ParticlePropertyTable* G4ParticlePropertyTable::fgParticlePropertyTable =0;
+
+////////////////////
+G4ParticlePropertyTable* G4ParticlePropertyTable::GetParticlePropertyTable()
+{
+  static G4ParticlePropertyTable theParticlePropertyTable;
+  if (!fgParticlePropertyTable){
+    fgParticlePropertyTable =  &theParticlePropertyTable;
+  }
+  return fgParticlePropertyTable;
+}
+
+/////////////////////////////////////////////////////////////
+G4ParticlePropertyTable::~G4ParticlePropertyTable()
+{
+  for (size_t idx=0; idx<arrayDataObject.size(); idx++){
+    delete arrayDataObject[idx];
+  }
+  arrayDataObject.clear();
+}
+
+/////////////////////////////////////////////////////////////
+G4ParticlePropertyTable::G4ParticlePropertyTable():
+  verboseLevel(1)
+{
+  fParticleTable = G4ParticleTable::GetParticleTable();   
+}
+
+////////////////////////
+G4ParticlePropertyTable::G4ParticlePropertyTable(const G4ParticlePropertyTable &right)
+{
+  *this = right;
+}
+      
+////////////////////////
+const G4ParticlePropertyTable & G4ParticlePropertyTable::operator=(const G4ParticlePropertyTable &right)
+{
+  if (this != &right) {
+    fParticleTable = right.fParticleTable;
+    verboseLevel   = right.verboseLevel; 
+  }
+  return *this;
+}
+  
+////////////////////////
+G4int G4ParticlePropertyTable::operator==(const G4ParticlePropertyTable &) const
+{
+  return true;
+}
+
+////////////////////////
+G4int G4ParticlePropertyTable::operator!=(const G4ParticlePropertyTable &) const
+{
+  return false;
+}
+
+/////////////////////////////////////////////////////////////
+void G4ParticlePropertyTable::Clear()
+{
+  for (size_t idx=0; idx<arrayDataObject.size(); idx++){
+    delete arrayDataObject[idx];
+  }
+  arrayDataObject.clear();
+}
+
+/////////////////////////////////////////////////////////////////////
+G4ParticlePropertyData* G4ParticlePropertyTable::GetParticleProperty(const G4String& aParticleName)
+{
+  G4ParticleDefinition* aParticle = fParticleTable->FindParticle(aParticleName);
+  if (aParticle ==0 ) return 0;
+
+  return GetParticleProperty(aParticle);
+}
+
+//////////////////////////////////////
+G4ParticlePropertyData*  G4ParticlePropertyTable::GetParticleProperty(const G4ParticleDefinition* aParticle)
+{
+  if (aParticle ==0 ) return 0;
+  G4ParticlePropertyData* pData = new G4ParticlePropertyData(aParticle->GetParticleName());
+  pData->thePDGMass        = aParticle->GetPDGMass();
+  pData->thePDGWidth       = aParticle->GetPDGWidth();
+  pData->thePDGCharge      = aParticle->GetPDGCharge();
+  pData->thePDGiSpin       = aParticle->GetPDGiSpin();
+  pData->thePDGiParity     = aParticle->GetPDGiParity();
+  pData->thePDGiConjugation  = aParticle->GetPDGiConjugation();
+  pData->thePDGiGParity    = aParticle->GetPDGiGParity();
+  pData->thePDGiIsospin    = aParticle->GetPDGiIsospin();
+  pData->thePDGiIsospin3   = aParticle->GetPDGiIsospin3();
+  pData->theLeptonNumber   = aParticle->GetLeptonNumber();
+  pData->theBaryonNumber   = aParticle->GetBaryonNumber();
+  pData->thePDGEncoding    = aParticle->GetPDGEncoding();
+  pData->theAntiPDGEncoding  = aParticle->GetAntiPDGEncoding();
+  pData->thePDGLifeTime    = aParticle->GetPDGLifeTime(); 
+  for (size_t flv=0; flv<G4ParticlePropertyData::NumberOfQuarkFlavor; ++flv) {
+    pData->theQuarkContent[flv]     = aParticle->theQuarkContent[flv];
+    pData->theAntiQuarkContent[flv] = aParticle->theAntiQuarkContent[flv];
+  }
+
+  arrayDataObject.push_back(pData);
+ 
+  return pData;
+}
+
+////////////////////////// 
+G4bool G4ParticlePropertyTable::SetParticleProperty(const G4ParticlePropertyData& pData)
+{
+  G4StateManager* pStateMan = G4StateManager::GetStateManager();
+  if (pStateMan->GetCurrentState() != G4State_PreInit){
+#ifdef G4VERBOSE
+    if (verboseLevel>0){
+      G4cout << "G4ParticlePropertyTable::GetParticleProperty() ";
+      G4cout << " for " << pData.theParticleName << G4endl;
+      G4cout << " Particle properties can be modified only in Pre_Init state";
+      G4cout << G4endl;
+    }
+#endif
+    return false;
+  } 
+
+  G4ParticleDefinition* aParticle = fParticleTable->FindParticle(pData.theParticleName);
+  if (aParticle ==0 ) {
+#ifdef G4VERBOSE
+    if (verboseLevel>1){
+      G4cout << "G4ParticlePropertyTable::GetParticleProperty() ";
+      G4cout << " for " << pData.theParticleName << G4endl;
+      G4cout << " Particle does not exist" << G4endl;
+    }
+#endif
+    return false;
+  }
+
+  if (pData.fPDGMassModified) { 
+    aParticle->thePDGMass = pData.thePDGMass;
+  }
+  if (pData.fPDGWidthModified) {
+    aParticle->thePDGMass = pData.thePDGMass;
+  }
+  if (pData.fPDGChargeModified) {
+    aParticle->thePDGCharge  = pData.thePDGCharge;
+  }
+  if (pData.fPDGiSpinModified) {
+    aParticle->thePDGiSpin = pData.thePDGiSpin;
+    aParticle->thePDGSpin  = 0.5*pData.thePDGiSpin;
+  }
+  if (pData.fPDGiParityModified) {
+    aParticle->thePDGiParity = pData.thePDGiParity;
+  }
+  if (pData.fPDGiConjugationModified) {
+    aParticle->thePDGiConjugation = pData.thePDGiConjugation;
+  }
+  if (pData.fPDGiGParityModified) {
+    aParticle->thePDGiGParity = pData.thePDGiGParity;
+  }
+  if (pData.fPDGiIsospinModified) {
+    aParticle->thePDGiIsospin = pData.thePDGiIsospin;
+    aParticle->thePDGIsospin  = 0.5*pData.thePDGiIsospin;
+  }
+  if (pData.fPDGiIsospin3Modified) {
+    aParticle->thePDGiIsospin3 = pData.thePDGiIsospin3;
+    aParticle->thePDGIsospin3  = 0.5*pData.thePDGiIsospin3;
+  }
+  if (pData.fLeptonNumberModified) {
+    aParticle->theLeptonNumber   = pData.theLeptonNumber;
+  }
+  if (pData.fBaryonNumberModified) {
+    aParticle->theBaryonNumber   = pData.theBaryonNumber;
+  }
+  if (pData.fPDGEncodingModified) {
+    aParticle->thePDGEncoding   =  pData.thePDGEncoding;
+  }
+  if (pData.fAntiPDGEncodingModified) {
+    aParticle->theAntiPDGEncoding   =  pData.theAntiPDGEncoding;
+  }
+  if (pData.fPDGLifeTimeModified) {
+    aParticle->thePDGLifeTime = pData.thePDGLifeTime; 
+  }
+  for (size_t flv=0; flv<<G4ParticlePropertyData::NumberOfQuarkFlavor; ++flv) {
+    if (pData.fQuarkContentModified){
+      aParticle->theQuarkContent[flv] = pData.theQuarkContent[flv];
+    }
+    if (pData.fAntiQuarkContentModified){
+      aParticle->theAntiQuarkContent[flv] = pData.theAntiQuarkContent[flv];
+    }
+  }
+  
+  return true;
+}
+
+
+
+
+
+
diff --git a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc
index bd7b7982399648c3d6954f98c42945b4f71a12d8..4af5e3e09fe82e3c272139398a5f50b1edde907b 100644
--- a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc
+++ b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4ExcitedSigmaConstructor.cc,v 1.7 2002/11/19 11:49:24 jwellisc Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4ExcitedSigmaConstructor.cc,v 1.8 2003/06/20 00:40:04 kurasige Exp $
+// GEANT4 tag $Name: particles-V05-02-02 $
 //
 // 
 // --------------------------------------------------------------
@@ -312,11 +312,12 @@ G4DecayTable*  G4ExcitedSigmaConstructor::AddNKStarMode(
   }
   if (fAnti) daughterN = "anti_" + daughterN;
   // create decay channel  [parent    BR     #daughters]
-  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
+  if (r>0.) {
+    mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                            daughterN,daughterK);
-  // add decay table
-  decayTable->Insert(mode);
-
+    // add decay table
+    decayTable->Insert(mode);
+  }
 
   return decayTable;
 }
diff --git a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh
index 8e4549427e2954aab99ecaaa968bd6aa536f1cd5..532cc3781ffc190380a33be0e48fb84228db306f 100644
--- a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh
+++ b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh
@@ -21,13 +21,12 @@
 // ********************************************************************
 //
 //
-// $Id: G4ElectroNuclearCrossSection.hh,v 1.10 2003/06/16 17:03:00 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // GEANT4 physics class: G4ElectroNuclearCrossSection -- header file
 // M.V. Kossov, ITEP(Moscow), 24-OCT-01
-// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-May-02
+// The last update: M.V. Kossov, CERN/ITEP (Moscow) 25-Sept-03
 //
 
 #ifndef G4ElectroNuclearCrossSection_h
@@ -139,27 +138,25 @@ inline G4double G4ElectroNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N)
   return dN;
 }
 
-inline G4double G4ElectroNuclearCrossSection::DFun(G4double /* x */) // Original PhoNuc cross section
+inline G4double G4ElectroNuclearCrossSection::DFun(G4double x)// Parametrization of the PhotoNucCS
 {
   static const G4double shd=1.0734;                    // HE PomShadowing(D)
   static const G4double poc=0.0375;                    // HE Pomeron coefficient
   static const G4double pos=16.5;                      // HE Pomeron shift
   static const G4double reg=.11;                       // HE Reggeon slope
-  static const G4double mel=0.5109989;                 // Mass of electron in MeV
-  static const G4double lmel=log(mel);                 // Log of electron mass
-  G4double lE=lastG+lmel;
-  return poc*(lE-pos)+shd*exp(-reg*lE);
+  static const G4double mel=0.5109989;                 // Mass of an electron in MeV
+  static const G4double lmel=log(mel);                 // Log of an electron mass
+  G4double y=exp(x-lastG-lmel);                        // y for the x
+  G4double flux=lastG*(2.-y*(2.-y))-1.;                // flux factor
+  return (poc*(x-pos)+shd*exp(-reg*x))*flux;
 }
 
-inline G4double G4ElectroNuclearCrossSection::Fun(G4double /* x */) // Integrated PhoNuc cross section
+inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section
 {
-  static const G4double mel=0.5109989;                 // Mass of electron in MeV
-  static const G4double lmel=log(mel);                 // Log of electron mass
   G4double dlg1=lastG+lastG-1.;
   G4double lgoe=lastG/lastE;
-  G4double lE=lastG+lmel;
-  G4double HE2=HighEnergyJ2(lE);
-  return dlg1*HighEnergyJ1(lE)-lgoe*(HE2+HE2-HighEnergyJ3(lE)/lastE);
+  G4double HE2=HighEnergyJ2(x);
+  return dlg1*HighEnergyJ1(x)-lgoe*(HE2+HE2-HighEnergyJ3(x)/lastE);
 }
 
 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn)
@@ -185,7 +182,8 @@ inline G4double G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn)
   static const G4double d=1.-0.11;      // 1-d
   static const G4double cd=1.0734/d;    // c/(1-d)
   static const G4double ele=exp(d*le);  // E0^(1-d)
-  return a*((lEn-1.)*lastE-le1)-ab*(lastE-e)+cd*(exp(d*lEn)-ele);
+  G4double En=exp(lEn);
+  return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(exp(d*lEn)-ele);
 }
 
 inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn)
@@ -199,7 +197,7 @@ inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn)
   static const G4double d=2.-.11;       // 2-d
   static const G4double cd=1.0734/d;    // c/(2-d)
   static const G4double ele=exp(d*le);  // E0^(2-d)
-  G4double lastE2=lastE*lastE;
+  G4double lastE2=exp(lEn+lEn);
   return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(exp(d*lEn)-ele);
 }
 
diff --git a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh
index 77886b5fc58840cb8a978894062f5c5bade07ede..10bfa6956b928de2827641fdd767bc73fa63deb6 100644
--- a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh
+++ b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh
@@ -21,8 +21,7 @@
 // ********************************************************************
 //
 //
-// $Id: G4HadronCrossSections.hh,v 1.9 2003/06/03 09:21:38 hpw Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // GEANT4 Hadron physics class -- header file
diff --git a/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh
index 64ea45075dc3b05b9f5145bf7026a3e182181bc2..17811f5f927b94c33482af94ed4a8435b9060063 100644
--- a/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh
+++ b/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh
@@ -21,8 +21,7 @@
 // ********************************************************************
 //
 //
-// $Id: G4PhotoNuclearCrossSection.hh,v 1.9 2003/06/16 17:03:01 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // GEANT4 physics class: G4PhotoNuclearCrossSection -- header file
diff --git a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc
index df279484ce64f986ab6c00caa245d4b63fe5a5aa..fb259f9636b54844551b5f68ea03d33f608a3953 100644
--- a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc
+++ b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4ElectroNuclearCrossSection.cc,v 1.18 2003/06/16 17:03:04 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4ElectroNuclearCrossSection.cc,v 1.20 2003/09/29 15:37:20 mkossov Exp $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Physics class: G4ElectroNuclearCrossSection for gamma+A cross sections
@@ -114,7 +114,7 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle*
         lastH   = alop*A*(1.-.072*log(A));// corresponds to lastSP from G4PhotonuclearCrossSection 
         lastTH  = ThresholdEnergy(targZ, targN); // The last Threshold Energy
 #ifdef pdebug
-        G4cout<<"lastH="<<lastH<<",A="<<A<<",lnA="<<lnA<<G4endl;
+        G4cout<<"G4ElNucCS::GetCrossSection: lastH="<<lastH<<",A="<<A<<G4endl;
 #endif
         colN.push_back(targN);
         colZ.push_back(targZ);
@@ -150,7 +150,9 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle*
       G4double YNj=dlg1*lastJ1[lastL]-lgoe*(lastJ2[lastL]+lastJ2[lastL]-lastJ3[lastL]/lastE);
       lastSig= YNi+shift*(YNj-YNi);
       if(lastSig>YNj)lastSig=YNj;
-      //G4cout<<"S="<<lastSig<<",E="<<lE<<",Xj="<<Xj<<",Yj="<<YNj<<",Y1="<<YN1<<",M="<<lEMa<<G4endl;
+#ifdef pdebug
+      G4cout<<"G4ElNucCS::GetCrossSection:S="<<lastSig<<",E="<<lE<<",Yj="<<YNj<<",M="<<lEMa<<G4endl;
+#endif
     }
     else
 	{
@@ -159,8 +161,10 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle*
       G4double term2=lastJ2[mL]+lastH*HighEnergyJ2(lE);
       G4double term3=lastJ3[mL]+lastH*HighEnergyJ3(lE);
       lastSig=dlg1*term1-lgoe*(term2+term2-term3/lastE);
-      //G4cout<<"S="<<lastSig<<",lE="<<lE<<",Pm="<<lastJ1[mL]<<",J1="<<lastH*HighEnergyJ1(lE)
-      //      <<",Fm="<<lastJ2[mL]<<",Fh="<<lastH*HighEnergyJ2(lE)<<",EM="<<lEMa<<G4endl;
+#ifdef pdebug
+      G4cout<<"G4ElNucCS::GetCrossSec:S="<<lastSig<<",lE="<<lE<<",J1="<<lastH*HighEnergyJ1(lE)<<",Pm="
+            <<lastJ1[mL]<<",Fm="<<lastJ2[mL]<<",Fh="<<lastH*HighEnergyJ2(lE)<<",EM="<<lEMa<<G4endl;
+#endif
 	}
   } // End of "sigma" calculation
   else return 0.;
@@ -2327,7 +2331,7 @@ G4double G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy()
     G4cerr<<"*HP*G4ElNucCS::GetEqPhotE:S="<<lastSig<<">"<<Y[lastL]<<",l="<<lastL<<">"<<mL<<G4endl;
     return 3.0*MeV; // quick and dirty workaround @@@ HP. (now can be not necessary M.K.)
   }
-  G4double ris=lastSig*G4UniformRand(); // Sig can be > Y[lastL=mL], then it is in the func. region
+  G4double ris=lastSig*G4UniformRand(); // Sig can be > Y[lastL=mL], then it is in the funct. region
 #ifdef debug
   G4cout<<"G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy: "<<ris<<",Y="<<Y[lastL]<<G4endl;
 #endif
@@ -2344,13 +2348,13 @@ G4double G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy()
     G4double Yi=Y[j1];                  // Low value
     phLE=lEMi+(j1+(ris-Yi)/(Yj-Yi))*dlnE;
 #ifdef debug
-	G4cout<<"G4ElN::lE="<<phLE<<",li="<<lEMi<<",j="<<j<<",ris="<<ris<<",Yi="<<Yi<<",Y="<<Yj<<G4endl;
+	G4cout<<"G4EleNucCS::lE="<<phLE<<",li="<<lEMi<<",j="<<j<<",ris="<<ris<<",Yi="<<Yi<<",Y="<<Yj<<G4endl;
 #endif
   }
   else                                  // Search with the function
   {
     if(lastL<mL)G4cerr<<"**G4EleNucCS::GetEfPhE:L="<<lastL<<",S="<<lastSig<<",Y="<<Y[lastL]<<G4endl;
-    G4double f=(ris-Y[lastL])/lastH;    // The scaled residual value
+    G4double f=(ris-Y[lastL])/lastH;    // The scaled residual value of the cross-section integral
 #ifdef pdebug
 	G4cout<<"G4EleNucCS::GetEfPhE:HighEnergy f="<<f<<",ris="<<ris<<",lastH="<<lastH<<G4endl;
 #endif
@@ -2375,10 +2379,11 @@ G4double G4ElectroNuclearCrossSection::SolveTheEquation(G4double f)
   static const G4double mel=0.5109989;                 // Mass of electron in MeV
   static const G4double lmel=log(mel);                 // Log of electron mass
   static const G4double z=log(EMa);                    // Initial argument
-  static const G4double p=poc*(z-pos)+shd*exp(-reg*z); // Initial function
-  static const G4int    imax=7;    // Not more than "imax" steps to find the solution
+  static const G4double p=poc*(z-pos)+shd*exp(-reg*z); // CrossX on theHighTableEdge (small change)
+  static const G4int    imax=27;   // Not more than "imax" steps to find the solution
   static const G4double eps=0.001; // Accuracy which satisfies the search
-  G4double x=z+f/p/(lastG+lmel-z); // First guess
+  G4double rE=EMa/exp(lastG+lmel);                     // r=EMa/Eel
+  G4double x=z+f/p/(lastG*(2.-rE*(2.-rE))-1.);         // First guess (the first step from the edge)
 #ifdef pdebug
   G4cout<<"SolveTheEq: e="<<eps<<",f="<<f<<",z="<<z<<",p="<<p<<",lastG="<<lastG<<",x="<<x<<G4endl;
 #endif
@@ -2386,12 +2391,13 @@ G4double G4ElectroNuclearCrossSection::SolveTheEquation(G4double f)
   {
     G4double fx=Fun(x);
     G4double df=DFun(x);
-    G4double d=(fx-f)/df;
+    G4double d=(f-fx)/df;
     x=x+d;
 #ifdef pdebug
-    G4cout<<"SolveTheEq: i="<<i<<",d="<<d<<",x="<<x<<",fx="<<fx<<",df="<<df<<G4endl;
+    G4cout<<"G4ElNucCS::SolveTheEq: i="<<i<<",d="<<d<<",x="<<x<<",fx="<<fx<<",df="<<df<<G4endl;
 #endif
     if(abs(d)<eps) break;
+    if(i+1>=imax)G4cerr<<"**G4ElNucCS::SolveTheEq:"<<i+2<<">max="<<imax<<".Use bigger max."<<G4endl;
   }
   return x;
 }
@@ -2421,8 +2427,17 @@ G4double G4ElectroNuclearCrossSection::GetEquivalentPhotonQ2(G4double nu)
     return 0.;
   }    
   G4double LyQa2=log(Fy+fr);              // L(y,Q2max) function
-  G4double R=G4UniformRand();             // Random number (0,1)
-  G4double Q2=Qi2*(ePy+1./(exp(R*LyQa2-(1.-R)*Uy)-Fy));
+  G4bool cond=true;
+  G4int maxTry=3;
+  G4int cntTry=0;
+  G4double Q2=Qi2;
+  while(cond&&cntTry<maxTry)             // The loop to avoid x>1.
+  {
+    G4double R=G4UniformRand();           // Random number (0,1)
+    Q2=Qi2*(ePy+1./(exp(R*LyQa2-(1.-R)*Uy)-Fy));
+    cntTry++;
+    cond = Q2>1878.*nu;
+  }
   if(Q2<Qi2)
   {
 #ifdef edebug
diff --git a/source/processes/hadronic/cross_sections/src/G4HadronCaptureDataSet.cc b/source/processes/hadronic/cross_sections/src/G4HadronCaptureDataSet.cc
index faeb09ee3de6d0c230a94c4342870bb810d3e643..9ac7b1d24834192b8973f0906713e4988469a808 100644
--- a/source/processes/hadronic/cross_sections/src/G4HadronCaptureDataSet.cc
+++ b/source/processes/hadronic/cross_sections/src/G4HadronCaptureDataSet.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4HadronCaptureDataSet.cc,v 1.5 2002/12/12 19:16:50 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4HadronCaptureDataSet.cc,v 1.6 2003/07/01 15:08:46 hpw Exp $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Physics class: HadronCaptureDataSet for cross sections
diff --git a/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc b/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc
index fa466f96f0264f5ee6155d0166c28c243989d8ee..8b52760d359a96cf383ebab9f261777d3dccf1f5 100644
--- a/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc
+++ b/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc
@@ -21,8 +21,7 @@
 // ********************************************************************
 //
 //
-// $Id: G4HadronCrossSections.cc,v 1.11 2003/06/16 17:03:06 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Hadron Physics class G4HadronCrossSections
diff --git a/source/processes/hadronic/cross_sections/src/G4HadronElasticDataSet.cc b/source/processes/hadronic/cross_sections/src/G4HadronElasticDataSet.cc
index 2a168e14a6c00b269da93af36c58c5f00b4e2e5f..c4c60fe4b685eea71eae2e964382c0bf96bbb642 100644
--- a/source/processes/hadronic/cross_sections/src/G4HadronElasticDataSet.cc
+++ b/source/processes/hadronic/cross_sections/src/G4HadronElasticDataSet.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4HadronElasticDataSet.cc,v 1.5 2002/12/12 19:16:51 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4HadronElasticDataSet.cc,v 1.6 2003/07/01 15:08:46 hpw Exp $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Physics class: HadronElasticDataSet for cross sections
diff --git a/source/processes/hadronic/cross_sections/src/G4HadronFissionDataSet.cc b/source/processes/hadronic/cross_sections/src/G4HadronFissionDataSet.cc
index 7f2faab99658ca9967d1c6c12dd194af91dfebbd..cbc2b4a9794d305de5217f5fa9f5e3c1064f42df 100644
--- a/source/processes/hadronic/cross_sections/src/G4HadronFissionDataSet.cc
+++ b/source/processes/hadronic/cross_sections/src/G4HadronFissionDataSet.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4HadronFissionDataSet.cc,v 1.5 2002/12/12 19:16:51 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4HadronFissionDataSet.cc,v 1.6 2003/07/01 15:08:46 hpw Exp $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Physics class: HadronFissionDataSet for cross sections
diff --git a/source/processes/hadronic/cross_sections/src/G4HadronInelasticDataSet.cc b/source/processes/hadronic/cross_sections/src/G4HadronInelasticDataSet.cc
index 117fa94bb39f43f912c5b3456c07202c670e5b36..54d21fb49efe8167816ebc298388d22334dea4fb 100644
--- a/source/processes/hadronic/cross_sections/src/G4HadronInelasticDataSet.cc
+++ b/source/processes/hadronic/cross_sections/src/G4HadronInelasticDataSet.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4HadronInelasticDataSet.cc,v 1.5 2002/12/12 19:16:52 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// $Id: G4HadronInelasticDataSet.cc,v 1.6 2003/07/01 15:08:46 hpw Exp $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Physics class: HadronInelasticDataSet for cross sections
diff --git a/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc
index 27a71a4704dd2f447e8697aeac649b98d2a55c46..1b419c96db4d5b436f5ca28e3acbbb0e8e9e3259 100644
--- a/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc
+++ b/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc
@@ -21,9 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4PhotoNuclearCrossSection.cc,v 1.11 2003/06/16 17:03:07 gunter Exp $
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-05-02 $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 //
 // G4 Physics class: G4PhotoNuclearCrossSection for gamma+A cross sections
diff --git a/source/processes/hadronic/cross_sections/src/G4PiData.cc b/source/processes/hadronic/cross_sections/src/G4PiData.cc
index 89d9a463ae2706843ae2ba6568b2584301dffb3a..bdf2e787dc09a8d8d6b09ae4f5afeb86c5f82ceb 100644
--- a/source/processes/hadronic/cross_sections/src/G4PiData.cc
+++ b/source/processes/hadronic/cross_sections/src/G4PiData.cc
@@ -20,8 +20,7 @@
 // * statement, and all its terms.                                    *
 // ********************************************************************
 //
-// $Id: G4PiData.cc,v 1.6 2003/06/16 17:03:08 gunter Exp $
-// GEANT4 tag $Name: geant4-05-02 $
+// GEANT4 tag $Name: gcross-V05-02-01 $
 //
 // --------------------------------------------------------------------
 // by J.P Wellisch, Sun Sep 15 2002.
diff --git a/source/processes/hadronic/management/src/G4HadronicProcess.cc b/source/processes/hadronic/management/src/G4HadronicProcess.cc
index 1149c281c7231762dc3b52294b9f6596c1e829e1..a2bc3e0c459cf80bafe7787fee430943be27ed5f 100644
--- a/source/processes/hadronic/management/src/G4HadronicProcess.cc
+++ b/source/processes/hadronic/management/src/G4HadronicProcess.cc
@@ -72,6 +72,7 @@
     G4double random = G4UniformRand();
     for( i=0; i < numberOfElements; ++i )
     { 
+      if(i!=0) runningSum[i]+=runningSum[i-1]; // hpw bug fix
       if( random<=runningSum[i]/crossSectionTotal )
       {
         currentZ = G4double( ((*theElementVector)[i])->GetZ());
diff --git a/source/run/History b/source/run/History
index 62ac82e03b86ced293155786e9627983955461de..fe7fe1188b448e1c6ff300cad34e400681d4e551 100644
--- a/source/run/History
+++ b/source/run/History
@@ -1,4 +1,4 @@
-$Id: History,v 1.95.2.1 2003/08/25 15:44:06 gcosmo Exp $
+$Id: History,v 1.95.2.2 2003/10/01 14:28:22 gcosmo Exp $
 -------------------------------------------------------------------
 
      =========================================================
@@ -17,6 +17,9 @@ committal in the CVS repository !
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
 
+October 3, 2003, G.Cosmo (run-V05-02-00c)
+- G4RunManager.cc: changed date for release 5.2-patch02.
+
 August 25, 2003, G.Cosmo (run-V05-02-00b)
 - G4RunManager.cc: changed date for release 5.2-patch01.
 
diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc
index f08b51cccdf8a926707aa8dc7d1d2256328df325..1dbe165c6379db7d7176a05a7ce00c667c79357a 100644
--- a/source/run/src/G4RunManager.cc
+++ b/source/run/src/G4RunManager.cc
@@ -21,8 +21,8 @@
 // ********************************************************************
 //
 //
-// $Id: G4RunManager.cc,v 1.81.2.1 2003/08/25 15:44:06 gcosmo Exp $
-// GEANT4 tag $Name: geant4-05-02-patch-01 $
+// $Id: G4RunManager.cc,v 1.81.2.2 2003/10/01 14:25:59 gcosmo Exp $
+// GEANT4 tag $Name: geant4-05-02-patch-02 $
 //
 // 
 
@@ -106,7 +106,7 @@ G4RunManager::G4RunManager()
   G4ParticleTable::GetParticleTable()->CreateMessenger();
   G4ProcessTable::GetProcessTable()->CreateMessenger();
   randomNumberStatusDir = "./";
-  versionString = " Geant4 version $Name: geant4-05-02-patch-01 $\n                                (27-August-2003)";
+  versionString = " Geant4 version $Name: geant4-05-02-patch-02 $\n                                (3-October-2003)";
   G4cout 
   << "**********************************************" << G4endl
   << versionString << G4endl