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