Import Geant4 1.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:34:16 +02:00
parent ca1c8cb059
commit 103bda00c8
2654 changed files with 29719 additions and 20203 deletions
+279
View File
@@ -0,0 +1,279 @@
Geant4 1.1 Release Notes
------------------------
10th March 2000
The following is a summary of the main fixes collected since release 1.0 and
included in Geant4 1.1 (for the detailed list of fixes/updates, please refer
to the related History files):
o Configuration scripts
- introduced G4NO_OPTIMISE flag for compilation with no optimisation level,
G4DEBUG if defined takes precedence.
- added G4DEBUG and G4OPTIMISE to the CPPFLAGS list.
- fixed bug in EXTRALIBS.
- fixed linking order for compound libraries.
o Electromagnetic Processes:
- low-energy processes:
+ updated anti-proton energy losses to provide simulation down to 1 keV.
+ minor bug fixes to G4ionLowEnergyIonisation.
+ fixes to electron and photon low energy processes.
o Events:
- introduced corrections for trajectories of suspended tracks.
o Geometry:
- syncronixed HEAD version of files after ISO-C++ migration.
- CSG:
fixed bug in DistanceToIn(p,v) for G4Trap.
- volumes:
added protection to GetSlice() in G4DrawVoxels.
o Globals:
- added check on definition of CLHEP_MAX_MIN_DEFINED flag.
- introduced constructor for 3vectors in G4BestUnits.
- fixed truncation problem in G4Poisson.
- STLinterface:
+ enforced bound-checking for [] access operators.
+ fixed bugs in G4String::toUpper() and G4String::toLower().
+ fixed bounds overflow error in G4RWTPtrSortedVector::find().
o Graphics Representations
- fix for spheres with small dtheta.
o Hadronic Processes:
- fixed the 'no data' problem observed in the neutron transport tests.
o Persistency:
- fixed typo in G4PersistentGeomMan class.
o Tracking & Track:
- added protection for NULL pointers in G4SteppingManager.
- fixed bug related to track weight in G4VParticleChange.
o Visualization:
- added fix for ISO-ANSI C++ in VRML driver.
- introduced commands /vis/viewer/show and /vis/viewer/refresh
- introduced general handling of displaced solids.
- added some protections in case of no viewer and no voxelisation.
o G3-to-G4 tool:
- introduced fixes to G3VolTable::GetVTE() and G3Division::CreateSolid().
- avoid placement of top-level logical volume in G3toG4BuildTree.
- removed obsolete files.
o Examples:
- introduced stepping verbosity (N02, N03).
- added 10 TeV mu- in macro exampleN04.EMtest.in.
- extended/electromagnetic examples: bug fixes and introduced low-energy
test (TestEm6)
- introduced 'large N' input macros.
- updated reference outputs.
Notes:
o Geant4 1.1 is based on STL and the code has been upgraded to be
ISO-ANSI C++ compliant. Code in this release include the ability to
choose between using the 'std' namespace in ISO/ANSI mode or using
traditional style programming in the global namespace (exceptions
still apply concerning mathematical functions - <math.h> in global
namespace is still in use, or standard C I/O functions).
The source code and some binary libraries are available through our "Source
Code" Web page:
- see our <A href="http://wwwinfo.cern.ch/asd/geant4/geant4.html">Geant4
Home Page</A>.
Please refer to <A
href="http://wwwinfo.cern.ch/asd/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Contents
--------
1. Supported and Tested Platforms
2. CLHEP 1.4
3. The Standard Template Library (STL)
4. Persistency
5. Compiler Specific Problems
6. Known Run-Time Problems
7. Compilation Warnings
8. Known Run-Time Warnings
1. Supported and Tested Platforms
---------------------------------
o SUN Solaris 5.6, C++ 4.2 patch 104631-04
o HP 10.20, aCC C++ B3910B A.01.18 or A.01.21
o Linux 2.2.5-22, gcc C++ egcs-2.91.66 (egcs 1.1.2).
This configuration was tested in the RedHat 6.1 distribution, but
versions of Geant4 have also been compiled successfully on, Debian
and Suse distributions.
Platforms/compilers also tested but giving rise to some problems - see below:
o DEC V4.0, cxx C++ V6.1-027.
o SUN Solaris 5.6, C++ 5.0 patches 107357-07, 107311-09
o NT 4.0 with Service Pack 4 and Cygnus Tools b20 with:
Visual C++ 6.0 Service Pack 2
Platforms configured but not tested and not supported:
o SGI V6.5.5, CC 7.2.1 with ObjectSpace
o AIX 4.3.2, xlC compiler with ObjectSpace
2. CLHEP 1.4
------------
Geant4 1.0 requires the installation of CLHEP 1.4.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP 1.4</A>.
Be aware, for the platforms listed below, the standard CLHEP installation
will use ISO-ANSI setup:
DEC: if using the compiler option "-std strict_ansi", it is required to
compile Geant4 in ISO-ANSI mode and 'native' STL.
NT: if CLHEP has been installed with the line:
#define HEP-USE-STD 1
uncommented in file config/CLHEP-x86-cygnus-win32, it is required to
compile Geant4 in ISO-ANSI mode and 'native' STL.
3. The Standard Template Library
--------------------------------
The following versions of STL have been tested:
"Native" STL on: Linux, HP, DEC, SUN, NT.
ObjectSpace STL on
DEC, HP, NT and SUN.
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
This is selected at installation/compile time by the environment variable
G4USE_OSPACE in the case of the latter - see documentation.
NOTES:
- Be aware that by default, the installation scripts will expect to use
the native STL implementation. You must set the G4USE_OSPACE variable
in the environment in order to select the ObjectSpace implementation.
- Platforms specific setup:
o DEC: - Default: 'native' STL and ISO-ANSI setup.
- G4USE_OSPACE set: selects ObjectSpace STL (required)
and no ISO-ANSI setup.
o HP: - Default: 'native' STL and ISO-ANSI setup.
- G4USE_OSPACE set: selects ObjectSpace STL (required)
and no ISO-ANSI setup.
- G4NO_STD_NAMESPACE set: either ObjectSpace or 'native' STL
can be used.
o SUN: - Default: 'native' STL and ISO-ANSI setup.
This setup requires the CC compiler version 5.0.
- G4USE_OSPACE set: selects ObjectSpace STL (required)
and no ISO-ANSI setup.
o Linux: native STL is required. No ISO-ANSI setup.
o NT: - Default: 'native' STL and ISO-ANSI setup.
- G4USE_OSPACE set: selects ObjectSpace STL (required)
and no ISO-ANSI setup.
Geant4 1.1 requires the Standard Template Library.
In the interest of stability, a significant part of the code still makes use
of the "STL Interface" wrapper classes. For these the emphasis has remained
on correct behaviour, rather than performance.
4. Persistency
--------------
- See release notes for Geant4 1.0.
5. Compiler Specific Problems
-----------------------------
o DEC V4.0, cxx C++ V6.1-027.
We have found cases of mis-compilation of min and max templates
on DEC. We have traced those which cause serious malfunction
but there is no guarantee that there are no other cases.
Detailed inspection of assembler output suggests that this
problem might not be confined to min and max. This has been
reported to DEC/Compaq. We understand a new version 6.2 of the
compiler is now available. However we cannot guarantee correct
execution of Geant4 on DEC with the current version of the
compiler.
o SUN Solaris 5.6, CC 5.0 patches 107357-07, 107311-09
The listed patches are required in order to fix a bug in the
system Standard I/O libraries for streams.
Part of the Geant4 code can be compiled only in debug mode (G4DEBUG
set). A bug in the compiler optimiser causes the compiler to run in
an infinite loop during compilation. Also, the inclusion of debug
symbols causes the generation of abnormally huge binary objects.
A bug report is being filed to SUN Support.
o NT
- Due to limitations of the VC++ optimiser, testing was done using
the debuggable version only.
- g3tog4 has not been ported to NT.
- During the making of dependency files during compilation there
are repeated warnings ("Strstrea.h not found") - this is an
artifact of using g++ for this purpose.
- Ignore linker warnings: "conflicts with use of other libs".
- Ignore linker errors: "unresolved external symbol
__imp__MessageBoxA@16".
6. Known Run-Time Problems
--------------------------
o Reading STEP files on DEC with optimised libraries causes a Memory
fault - but see notes on DEC above.
o In rare cases heavy ions appear not to be properly stopped and killed
in tracking, therefore Geant4 sticks making many small steps. This
behaviour has been observed on SUN and is under investigation.
o On WindowsNT and DEC (ISO-ANSI setup), a problem can occur reading the data
files associated with the environment variable $NeutronHPCrossSections.
The problem is being investigated.
7. Compilation Warnings
-----------------------
There are compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour, however a parallel
Q/A activity is on going to reduce them.
8. Known Run-Time Warnings
--------------------------
The following messages can be written to error output while tracking. We
believe none give rise to incorrect behaviour.
o G4PropagatorInField::LocateIntersectionPoint: Warning: Integration
inaccuracy requires an adjustment in the step's endpoint Two
mid-points are further apart than their curve length difference:
Dist = xxx curve length = yyy
o Warning in G4Navigator::ComputeStep: The Step's starting point has
moved...
o G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 10000 steps in Field while a maximum of 10000
are allowed.
For very high energy muons (ex. 1 TeV) warnings of this kind might be
generated:
o G4ParticleChange::CheckIt : the Momentum Change is not unit vector !!
Difference: 1e-09
G4ParticleChange::CheckIt
+6 -1
View File
@@ -1,4 +1,4 @@
# $Id: G4VIS_BUILD.gmk,v 1.2 1999/06/19 15:20:38 johna Exp $
# $Id: G4VIS_BUILD.gmk,v 1.3 2000/01/29 00:41:49 asaim Exp $
# -------------------------------------------------------------
# Visualization-specific CPPFLAGS for BUILD phase.
# John Allison, 24th January 1998.
@@ -17,6 +17,11 @@ ifdef G4VIS_BUILD_DAWNFILE_DRIVER
endif
# End of DAWN and DAWNFILE drivers
ifdef G4VIS_BUILD_RAYTRACER_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_RAYTRACER_DRIVER
endif
ifdef G4VIS_BUILD_OPACS_DRIVER
G4VIS_BUILD = 1
G4INTY_BUILD_XT = 1
+8 -1
View File
@@ -1,4 +1,4 @@
# $Id: G4VIS_USE.gmk,v 1.2 1999/06/19 15:20:40 johna Exp $
# $Id: G4VIS_USE.gmk,v 1.3 2000/01/29 00:41:49 asaim Exp $
# -------------------------------------------------------------
# GNUmakefile for CPPFLAGS for visualization USE phase.
# John Allison, 24th January 1998.
@@ -21,6 +21,13 @@ ifdef G4VIS_USE_DAWN_OR_DAWNFILE
VISLIBS += -lG4FR
endif
ifdef G4VIS_USE_RAYTRACER
G4VIS_USE = 1
CPPFLAGS += -DG4VIS_USE_RAYTRACER
CPPFLAGS += -I$(G4BASE)/visualization/RayTracer/include
VISLIBS += -lG4RayTracer
endif
ifdef G4VIS_USE_OPACS
G4VIS_USE = 1
INC_OPACS = 1
+24 -2
View File
@@ -1,5 +1,5 @@
$Id: History,v 1.92 1999/12/07 08:51:38 gcosmo Exp $
$Name: geant4-01-00 $
$Id: History,v 1.97 2000/02/14 11:27:42 gcosmo Exp $
$Name: geant4-01-01 $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,28 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
14th February 2000 Gabriele Cosmo (config-V01-00-02)
- architecture.gmk: added option '+W823' to HP-aCC compilation setup to
discard warnings for macros parameter definition as used in the new
NIST STEP reader.
- binmake.gmk: moved $EXTRALIBS to be included on top of the linking list,
just after the user application library.
31st January 2000 Gabriele Cosmo (config-V01-00-01)
- Added control for the Ray-tracer driver. Introduced G4VIS_USE_RAYTRACER
in G4VIS_USE.gmk and G4VIS_BUILD_RAYTRACER_DRIVER in G4VIS_BUILD.gmk (M.Asai).
- binmake.gmk: fixed dependency order for compound libraries.
Moved -lG4particles and -lG4materials downstream in the list.
- architecture.gmk: added G4NO_OPTIMISE for allowing compilation without
any level of optimisation or debug. G4DEBUG if defined takes precedence.
G4DEBUG and G4OPTIMISE are now defined also as CPPFLAGS.
3rd January 2000 Gabriele Cosmo (config-V01-00-00)
- Syncronized with HEAD.
16th December 1999 John Allison
- Cosmetic improvement to echo line in binmake.gmk.
7th December 1999 Gabriele Cosmo (config-V00-01-19)
- architecture.gmk: minor fix on OSPACELIBS path for Win/NT.
+56 -29
View File
@@ -1,4 +1,4 @@
# $Id: architecture.gmk,v 1.59 1999/12/07 08:37:13 gracia Exp $
# $Id: architecture.gmk,v 1.62 2000/02/14 11:27:26 gcosmo Exp $
# ------------------------------------------------------------------------
# GEANT 4 - Architecture configuration script for GNU Make
#
@@ -153,10 +153,17 @@ endif
#
########################### end setup for G4ODBMS #############################
# If G4DEBUG not specified, the default compilation is optimised ...
# If G4DEBUG or G4NO_OPTIMISE are not specified,
# the default compilation is optimised ...
#
ifndef G4DEBUG
G4OPTIMISE := 1
ifdef G4DEBUG
CPPFLAGS += -DG4DEBUG
G4DEBUG := 1
else
ifndef G4NO_OPTIMISE
CPPFLAGS += -DG4OPTIMISE
G4OPTIMISE := 1
endif
endif
# CLHEP path, etc.
@@ -362,9 +369,11 @@ ifeq ($(G4SYSTEM),SUN-CC)
ifdef G4OPTIMISE
CXXFLAGS := -O
else
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
# CXXFLAGS += -fnonstd
CFRONT_G4TEMPLATE_REPOSITORY := true
@@ -407,9 +416,11 @@ ifeq ($(G4SYSTEM),SUN-CC5)
ifdef G4OPTIMISE
CXXFLAGS := -O
else
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
# CXXFLAGS += -fnonstd
G4_HAVE_BOOL := yes
@@ -461,11 +472,13 @@ ifeq ($(G4SYSTEM),HP-aCC)
ifdef G4OPTIMISE
CXXFLAGS := +O2 +Onolimit
else
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
CXXFLAGS += +DAportable
CXXFLAGS += +DAportable +W823
CPPFLAGS += -I/usr
ifdef G4MAKESHLIB
CXXFLAGS += +Z
@@ -509,9 +522,11 @@ ifeq ($(G4SYSTEM),SGI-CC)
ifdef G4OPTIMISE
CXXFLAGS := -O -OPT:Olimit=5000
else
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS := -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
G4_HAVE_BOOL := yes
CXXFLAGS += -ptused
@@ -543,9 +558,11 @@ ifeq ($(G4SYSTEM),AIX-xlC)
ifdef G4OPTIMISE
CXXFLAGS := -O3 -qtwolink -+
else
CXXFLAGS := -g -qdbxextra -qcheck=all -qfullpath -qtwolink -+
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS := -g -qdbxextra -qcheck=all -qfullpath -qtwolink -+
FCFLAGS := -g
CCFLAGS := -g
endif
endif
FC := xlf
FCFLAGS += -qextname
@@ -578,9 +595,11 @@ ifeq ($(G4SYSTEM),DEC-cxx)
ifdef G4OPTIMISE
CXXFLAGS := -O
else
CXXFLAGS := -gall
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS := -gall
FCFLAGS := -g
CCFLAGS := -g
endif
endif
G4_HAVE_BOOL := yes
CXXFLAGS += -ieee -timplicit_local
@@ -621,9 +640,11 @@ ifeq ($(G4SYSTEM),Linux-g++)
FCFLAGS := -O
CCFLAGS := -O
else
CXXFLAGS += -g
FCFLAGS := -g
CCFLAGS := -g
ifdef G4DEBUG
CXXFLAGS += -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
ifdef G4MAKESHLIB
CXXFLAGS += -fPIC
@@ -664,7 +685,9 @@ ifeq ($(G4SYSTEM),WIN32-VC)
ifdef G4OPTIMISE
CXXFLAGS += -Ox
else
CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name)
ifdef G4DEBUG
CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name)
endif
endif
CXXFLAGS += -MD -GX -Zm200 -nologo -DWIN32 -D_CONSOLE
CXXFLAGS += -D_WIN32 -DOS
@@ -674,10 +697,14 @@ ifeq ($(G4SYSTEM),WIN32-VC)
#
ifdef G4USE_OSPACE
CXXFLAGS += $(OSPACEINC)
else
else
ifdef G4USE_STLPORT
CXXFLAGS += $(OSPACEINC)
endif #stlport
else
# If native STL is selected, use ISO standard version.
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
endif
endif #ospace
LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll
+6 -6
View File
@@ -1,4 +1,4 @@
# $Id: binmake.gmk,v 1.39 1999/12/01 14:40:43 morita Exp $
# $Id: binmake.gmk,v 1.42 2000/02/14 11:24:45 gcosmo Exp $
# ----------------------------------------------------------
# Script defining rules and paths for making binaries.
# Gabriele Cosmo, 25/06/1998.
@@ -124,8 +124,9 @@ ifndef USER_DEFINED_LDLIBS
ifdef G4EXLIB
LDLIBS1 := -l$(G4TARGET)
endif
LDLIBS1 += $(EXTRALIBS)
# VISLIBS and UILIBS are now handles by the granular library script...
# VISLIBS and UILIBS are now handled by the granular library script...
#
ifdef GLOBALLIBS
LDLIBS1 += $(VISLIBS) $(UILIBS)
@@ -142,11 +143,11 @@ ifdef GLOBALLIBS
-lG4event \
-lG4tracking \
-lG4processes \
-lG4particles \
-lG4digits+hits \
-lG4track \
-lG4materials \
-lG4particles \
-lG4geometry \
-lG4materials \
-lG4graphics_reps \
-lG4intercoms \
-lG4global
@@ -188,7 +189,6 @@ ifdef G4USE_OSPACE
LDLIBS4 += $(OSPACELIBS)
endif
LDLIBS4 += $(EXTRALIBS)
LDLIBS4 += $(LOADLIBS)
# Finally assemble libraries...
@@ -228,7 +228,7 @@ bin: $(G4BINDIR)/$(G4TARGET)
$(G4BINDIR)/$(G4TARGET): $(LINK_DEPENDENCIES)
ifndef USER_DEFINED_LDLIBS
ifndef GLOBALLIBS
@echo "Using granular libraries."
@echo "Using granular libraries ..."
@if [ ! \( -f $(G4LIB)/$(G4SYSTEM)/liblist \
-a -f $(G4LIB)/$(G4SYSTEM)/libname.map \) ]; then \
echo "ERROR: No liblist program or library map file."; \
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: EXPO.cc,v 1.5.2.1.2.1 1999/12/07 20:46:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
#include <stdlib.h>
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: TEST.cc,v 1.2.6.1 1999/12/07 20:46:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
#include <stdlib.h>
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: EXPO_Detector.icc,v 1.2.6.1 1999/12/07 20:46:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
// See also G4/run/example/MyDetectorConstruction.cc.
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: EXPO_PhysicsList.hh,v 1.3.6.1 1999/12/07 20:46:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: EXPO_PhysicsList.icc,v 1.3.6.1 1999/12/07 20:46:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: EXPO_PhysicsList.icc,v 1.3.6.1.2.3 1999/12/14 07:06:18 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -29,7 +29,7 @@
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4ios.hh"
#include <iomanip.h>
#include "g4std/iomanip"
EXPO_PhysicsList::EXPO_PhysicsList(): G4VUserPhysicsList()
@@ -262,7 +262,7 @@ void EXPO_PhysicsList::SetCuts()
/*
if (verboseLevel >0){
G4cout << "EXPO_PhysicsList::SetCuts:";
G4cout << "CutLength : " << cut/mm << " (mm)" << endl;
G4cout << "CutLength : " << cut/mm << " (mm)" << G4endl;
}
// set cut values for gamma at first and for e- second and next for e+,
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: EXPO_Primary.icc,v 1.2.6.1 1999/12/07 20:46:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
// See also G4/run/example/EXPO_PrimaryGeneratorAction.cc.
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4o.h,v 1.2.6.1 1999/12/07 20:46:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oCommon.hh,v 1.2.6.1 1999/12/07 20:46:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/*
Included by G4o.h.
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oCommon.icc,v 1.2.6.1 1999/12/07 20:46:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/*
Included by G4o.cc.
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oDrawer.hh,v 1.2.6.1 1999/12/07 20:46:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oEXPO.h,v 1.2.6.1 1999/12/07 20:46:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oScene.hh,v 1.2.6.1 1999/12/07 20:46:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oState.hh,v 1.3.4.1 1999/12/07 20:46:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
#ifndef G4oState_h
#define G4oState_h
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: WoG4o.h,v 1.2.6.1 1999/12/07 20:46:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4o.cc,v 1.4.2.1.2.1 1999/12/07 20:46:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/*
#define DEBUG
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oDrawer.cc,v 1.3.2.1.2.1 1999/12/07 20:46:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/*
From geant4/visualization/management/src/G4VisManager.cc.
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oScene.cc,v 1.3.2.1.2.1 1999/12/07 20:46:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4oState.cc,v 1.3.2.1.2.1 1999/12/07 20:46:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// GEANT4 tag $Name: geant4-01-01 $
//
//#define DEBUG
+31 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.37 1999/12/07 11:33:51 stesting Exp $
$Id: History,v 1.42 2000/02/18 13:23:04 stesting Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,36 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
14th February 2000 Michel Maire (tag examples-V01-00-01a by John Allison)
- Changed cout to G4cout in extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc
13th February 2000 John Allison (examples-V01-00-01)
- Updated N03 and N04.EMtest.out for geant4-01-00-ref-04-tags6.
24th January 2000 John Allison
- N02/03: Limited printing in ExNnnEventAction::EndOfEventAction to first
100 events and then every 100.
21st January 2000 John Allison
- Added large_N.in files in examples/novice.
- Temporarily reduced no of events in N04 due to slow 10 Tev muons.
20th January 2000 John Allison
- Tagged extended/electromagnetic testem-V01-00-00.
o implemented G4NOHIST (Michel Maire).
o new TestEm6 (low energy): TestEm6.in contains protons, anti_protons,
ionC12 (Vladimir Ivanchenko).
13th January 2000 John Allison (examples-V01-00-00)
- N02, N03: Introduced ExN0nSteppingVerbose (Michel Maire).
- N04: Introduced 10 TeV mu- in exampleN04.EMtest.in (John Apostolakis).
- N05, N06: (Gabriele Cosmo):
Replaced #include "G4Timer.hh" by class G4Timer in ExN0nRunAction.hh.
Added #include "G4Timer.hh" as first #include in ExN0nRunAction.cc.
- Updated PersistentEx01.out and PersistentEx02.out for geant4-01-00-ref-01/2.
- N02, N03, N04, N04.EMtest, N05, N06: updated .out files for -ref-02.
- N04.EMtest.in: reduced number of events from 100 to 10 for 10 TeV mu-.
7th December 1999 John Allison (examples-V00-01-19)
- Updated novice .out files to geant4-01-00.
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.1 1999/10/11 13:07:23 maire Exp $
# $Id: GNUmakefile,v 1.2 2000/01/21 12:29:24 maire Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -16,7 +16,11 @@ all: lib bin
include $(G4INSTALL)/config/architecture.gmk
LDFLAGS += -L/cern/pro/lib
LOADLIBS += -lpacklib $(FCLIBS)
ifdef G4NOHIST
CPPFLAGS += -DG4NOHIST
else
LDFLAGS += -L/cern/pro/lib
LOADLIBS += -lpacklib $(FCLIBS)
endif
include $(G4INSTALL)/config/binmake.gmk
@@ -1,4 +1,4 @@
$Id: History,v 1.2 1999/10/11 13:14:31 maire Exp $
$Id: History,v 1.3 2000/01/21 12:29:24 maire Exp $
-------------------------------------------------------------------
=========================================================
@@ -14,6 +14,8 @@ track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
21-01-00 cppflag G4NOHIST to protect hbook histograms.
11-10-99 moved from: source/processes/electromagnetic/test
to: examples/extended/electromagnetic
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: TestEm1.cc,v 1.1.4.1 1999/12/07 20:46:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: TestEm1.cc,v 1.3 1999/12/15 14:48:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// --------------------------------------------------------------
@@ -30,6 +30,7 @@
#include "Em1DetectorConstruction.hh"
#include "Em1PhysicsList.hh"
#include "Em1PrimaryGeneratorAction.hh"
#include "Em1SteppingVerbose.hh"
#ifdef Em1NoOptimize
#include "Em1RunAction.hh"
@@ -47,6 +48,9 @@ int main(int argc,char** argv) {
//choose the Random engine
HepRandom::setTheEngine(new RanecuEngine);
//my Verbose output class
G4VSteppingVerbose::SetInstance(new Em1SteppingVerbose);
// Construct the default run manager
G4RunManager * runManager = new G4RunManager;
@@ -0,0 +1,20 @@
# $Id: TestEm1.in,v 1.1 2000/01/21 14:58:58 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# electron 100 MeV; all processes
#
/control/verbose 2
#
/process/eLoss/StepFunction 0.183 170 micrometer
/calor/cutG 2.20 mm
/calor/cutE 6.05 mum
/run/initialize
#
/run/verbose 2
/event/drawTracks none
#
/gun/particle e-
/gun/energy 100 MeV
/run/beamOn 100
@@ -0,0 +1,241 @@
**********************************************
Geant4 version $Name: geant4-01-01 $
(07-Dec-99)
Copyright : Geant4 Collaboration
**********************************************
Constructing Visualization Manager....
Initialising Visualization Manager....
Registering graphics systems....
***** Table : Nb of materials = 8 *****
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
Material: H2liquid density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.923 m
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.861 mm
---> Element: Uranium Z = 82.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 %
The Box is 20 m of Aluminium
Em1PhysicsList::SetCuts:CutLength : 1 (mm)
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
Sandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 1e+02 GeV in 100 bins.
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
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 1e+02 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation. 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 1e+02 TeV in 100 bins.
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.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+02 TeV in 150 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+03 PeV in 100 bins.
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 100 bins.
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 50 bins.
============= The cut Energy ==============================
gamma e- mu- proton neutron
Cut in range 1 mm 1 mm 1 mm 1 mm 1 mm
Cut in energy
Air 990 eV 990 eV 48.4 keV 83.2 keV 990 eV
H2liquid 990 eV 108 keV 1.23 MeV 3.18 MeV 990 eV
Water 2.9 keV 347 keV 3.39 MeV 8.95 MeV 990 eV
liquidArgon 6.18 keV 343 keV 3.24 MeV 8.32 MeV 990 eV
Aluminium 6.89 keV 597 keV 5.02 MeV 13.1 MeV 990 eV
Iron 20.8 keV 1.28 MeV 8.52 MeV 22 MeV 990 eV
Lead 101 keV 1.38 MeV 8.52 MeV 20.9 MeV 990 eV
Uranium 110 keV 1.92 MeV 10.5 MeV 26.1 MeV 990 eV
===================================================
# $Id: TestEm1.out,v 1.1 2000/01/21 14:58:58 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# electron 100 MeV; all processes
#
#
/process/eLoss/StepFunction 0.183 170 micrometer
/calor/cutG 2.20 mm
/calor/cutE 6.05 mum
/run/initialize
Em1PhysicsList::SetCuts:CutLength : 1 (mm)
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
Sandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 1e+02 GeV in 100 bins.
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
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 1e+02 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation. 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 1e+02 TeV in 100 bins.
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.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+02 TeV in 150 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+03 PeV in 100 bins.
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 100 bins.
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 50 bins.
============= The cut Energy ==============================
gamma e- mu- proton neutron
Cut in range 2.2 mm 6.05 mum 1 mm 1 mm 1 mm
Cut in energy
Air 990 eV 990 eV 48.4 keV 83.2 keV 990 eV
H2liquid 990 eV 990 eV 1.23 MeV 3.18 MeV 990 eV
Water 4.06 keV 3.27 keV 3.39 MeV 8.95 MeV 990 eV
liquidArgon 9.08 keV 3.98 keV 3.24 MeV 8.32 MeV 990 eV
Aluminium 9.99 keV 9.97 keV 5.02 MeV 13.1 MeV 990 eV
Iron 31.1 keV 43.3 keV 8.52 MeV 22 MeV 990 eV
Lead 124 keV 42.8 keV 8.52 MeV 20.9 MeV 990 eV
Uranium 143 keV 53.4 keV 10.5 MeV 26.1 MeV 990 eV
===================================================
#
/run/verbose 2
/event/drawTracks none
#
/gun/particle e-
/gun/energy 100 MeV
/run/beamOn 100
### Run 0 start.
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 9876, 54321
----------------------------------------
Start closing geometry.
Start Run processing.
---> Begin of Event: 0
Run terminated.
Run Summary
Number of events processed : 100
User=11s Real=13s Sys=1.6s
nb tracks/event neutral: 24.64 charged: 642.10
nb steps/event neutral: 135.32 charged: 1276.54
nb of process calls per event:
eIoni eBrem phot compt conv annihil
1253.39 21.62 23.11 110.68 1.53 1.53
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 1096809697, 1350310764
----------------------------------------
Graphics systems deleted.
VisManager deleting.
G4 kernel has come to Quit state.
Deletion of G4 kernel class start.
UserDetectorConstruction deleted.
UserPhysicsList deleted.
UserRunAction deleted.
UserPrimaryGenerator deleted.
EventManager deleted.
UImanager deleted.
StateManager deleted.
RunManager is deleting.
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1DetectorConstruction.hh,v 1.1.4.1 1999/12/07 20:46:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1DetectorConstruction.hh,v 1.2 1999/12/15 14:48:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1DetectorMessenger.hh,v 1.1.4.1 1999/12/07 20:46:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1DetectorMessenger.hh,v 1.2 1999/12/15 14:48:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1EventAction.hh,v 1.1.4.1 1999/12/07 20:46:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1EventAction.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1EventActionMessenger.hh,v 1.1.4.1 1999/12/07 20:46:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1EventActionMessenger.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1PhysicsList.hh,v 1.1.4.1 1999/12/07 20:46:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1PhysicsList.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1PhysicsListMessenger.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1PhysicsListMessenger.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1PrimaryGeneratorAction.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1PrimaryGeneratorAction.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1RunAction.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1RunAction.hh,v 1.3 2000/01/21 12:29:25 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -24,8 +24,11 @@
class G4Run;
class Em1RunActionMessenger;
class HepTupleManager;
class HepHistogram;
#ifndef G4NOHIST
class HepTupleManager;
class HepHistogram;
#endif
class Em1RunAction : public G4UserRunAction
{
@@ -43,12 +46,14 @@ class Em1RunAction : public G4UserRunAction
void CountSteps1(G4int ns) { NbOfSteps1 += ns;}
void CountProcesses(G4String);
public:
HepHistogram* GetHisto(G4int id) {return histo[id];}
public:
void SetRndmFreq(G4int val) {saveRndm = val;}
G4int GetRndmFreq() {return saveRndm;}
G4int GetRndmFreq() {return saveRndm;}
#ifndef G4NOHIST
HepHistogram* GetHisto(G4int id) {return histo[id];}
#endif
private:
void bookHisto();
void cleanHisto();
@@ -57,12 +62,14 @@ class Em1RunAction : public G4UserRunAction
G4int NbOfTraks0, NbOfTraks1;
G4int NbOfSteps0, NbOfSteps1;
ProcessesCount* ProcCounter;
Em1RunActionMessenger* runMessenger;
G4int saveRndm;
#ifndef G4NOHIST
HepTupleManager* hbookManager;
HepHistogram* histo[3];
Em1RunActionMessenger* runMessenger;
G4int saveRndm;
#endif
};
#endif
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1RunActionMessenger.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1RunActionMessenger.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1SteppingAction.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1SteppingAction.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -0,0 +1,47 @@
// 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: Em1SteppingVerbose.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
//---------------------------------------------------------------
//
// Em1SteppingVerbose.hh
//
// Description:
// This class manages the vervose outputs in G4SteppingManager.
//
//
// Contact:
// Questions and comments to this code should be sent to
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
//
//---------------------------------------------------------------
class Em1SteppingVerbose;
#ifndef Em1SteppingVerbose_h
#define Em1SteppingVerbose_h 1
#include "G4SteppingVerbose.hh"
class Em1SteppingVerbose : public G4SteppingVerbose {
public:
// Constructor/Destructor
Em1SteppingVerbose();
~Em1SteppingVerbose();
//
void StepInfo();
void TrackingStarted();
//
};
#endif
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1TrackingAction.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1TrackingAction.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1VisManager.hh,v 1.1.4.1 1999/12/07 20:46:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1VisManager.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -6,8 +6,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: ProcessesCount.hh,v 1.1.2.1.2.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: ProcessesCount.hh,v 1.3 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// -----------------------------------------------------------------
@@ -38,4 +38,7 @@
/tracking/storeTrajectory 1
/event/drawTracks all
#
# Flush visualization
/vis/viewer/update
#
/run/verbose 2
@@ -6,8 +6,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1DetectorConstruction.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1DetectorConstruction.cc,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -122,7 +122,7 @@ a = 238.03*g/mole;
G4Material* U = new G4Material(name="Uranium" , z=82., a, density);
G4cout << *(G4Material::GetMaterialTable()) << endl;
G4cout << *(G4Material::GetMaterialTable()) << G4endl;
//default materials of the calorimeter
aMaterial = Al;
@@ -169,7 +169,7 @@ G4VPhysicalVolume* Em1DetectorConstruction::ConstructVolumes()
void Em1DetectorConstruction::PrintParameters()
{
G4cout << "\n The Box is " << G4BestUnit(BoxSize,"Length")
<< " of " << aMaterial->GetName() << endl;
<< " of " << aMaterial->GetName() << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1DetectorMessenger.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1DetectorMessenger.cc,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1EventAction.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1EventAction.cc,v 1.2 1999/12/15 14:48:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -48,7 +48,7 @@ void Em1EventAction::BeginOfEventAction(const G4Event* evt)
{
G4int evtNb = evt->GetEventID();
if (evtNb%printModulo == 0)
G4cout << "\n---> Begin of Event: " << evtNb << endl;
G4cout << "\n---> Begin of Event: " << evtNb << G4endl;
TotalEnergyDeposit = 0.;}
@@ -58,7 +58,7 @@ void Em1EventAction::EndOfEventAction(const G4Event* evt)
{
if (drawFlag != "none") G4cout << " Energy deposit: "
<< G4BestUnit(TotalEnergyDeposit,"Energy")
<< endl;
<< G4endl;
if (G4VVisManager::GetConcreteInstance())
{
@@ -81,7 +81,7 @@ void Em1EventAction::EndOfEventAction(const G4Event* evt)
G4int evtNb = evt->GetEventID();
if (evtNb%printModulo == 0)
{
G4cout << "\n---> End of Event: " << evtNb << endl;
G4cout << "\n---> End of Event: " << evtNb << G4endl;
HepRandom::showEngineStatus();
}
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1EventActionMessenger.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1EventActionMessenger.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1PhysicsList.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1PhysicsList.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -227,7 +227,7 @@ void Em1PhysicsList::SetCuts()
{
if (verboseLevel >0){
G4cout << "Em1PhysicsList::SetCuts:";
G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << endl;
G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl;
}
// set cut values for gamma at first and for e- second and next for e+,
@@ -314,10 +314,10 @@ void Em1PhysicsList::GetRange(G4double val)
G4double cut;
part = theParticleTable->FindParticle("e-");
cut = G4EnergyLossTables::GetRange(part,val,currMat);
G4cout << "material : " << currMat->GetName() << endl;
G4cout << "particle : " << part->GetParticleName() << endl;
G4cout << "energy : " << val / keV << " (keV)" << endl;
G4cout << "range : " << cut / mm << " (mm)" << endl;
G4cout << "material : " << currMat->GetName() << G4endl;
G4cout << "particle : " << part->GetParticleName() << G4endl;
G4cout << "energy : " << val / keV << " (keV)" << G4endl;
G4cout << "range : " << cut / mm << " (mm)" << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1PhysicsListMessenger.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1PhysicsListMessenger.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1PrimaryGeneratorAction.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1PrimaryGeneratorAction.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1RunAction.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1RunAction.cc,v 1.4 2000/01/21 12:29:26 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -20,17 +20,23 @@
#include "G4UImanager.hh"
#include "G4VVisManager.hh"
#include "G4ios.hh"
#include <iomanip.h>
#include "g4std/iomanip"
#include "Randomize.hh"
#include "CLHEP/Hist/HBookFile.h"
#ifndef G4NOHIST
#include "CLHEP/Hist/HBookFile.h"
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Em1RunAction::Em1RunAction()
:hbookManager(NULL)
{runMessenger = new Em1RunActionMessenger(this);
saveRndm = 1;
#ifndef G4NOHIST
hbookManager = NULL;
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -44,27 +50,31 @@ Em1RunAction::~Em1RunAction()
void Em1RunAction::bookHisto()
{
#ifndef G4NOHIST
hbookManager = new HBookFile("testem1.histo", 68);
// booking histograms
histo[0] = hbookManager->histogram("track length (mm) of a charged particle",100,0.,50*cm);
histo[1] = hbookManager->histogram("Nb of steps per track (charged particle)",100,0.,100.);
histo[2] = hbookManager->histogram("step length (mm) charged particle",100,0.,10*mm);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void Em1RunAction::cleanHisto()
{
#ifndef G4NOHIST
delete [] histo;
delete hbookManager;
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void Em1RunAction::BeginOfRunAction(const G4Run* aRun)
{
G4cout << "### Run " << aRun->GetRunID() << " start." << endl;
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
// save Rndm status
if (saveRndm > 0)
@@ -82,8 +92,7 @@ void Em1RunAction::BeginOfRunAction(const G4Run* aRun)
if (G4VVisManager::GetConcreteInstance())
{
G4UImanager* UI = G4UImanager::GetUIpointer();
UI->ApplyCommand("/vis/clear/view");
UI->ApplyCommand("/vis/draw/current");
UI->ApplyCommand("/vis/scene/notifyHandlers");
}
}
@@ -109,28 +118,28 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun)
{ //nb of tracks and steps per event
G4double dNbOfEvents = double(NbOfEvents);
G4long oldform = G4cout.setf(ios::fixed,ios::floatfield);
G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield);
G4int oldprec = G4cout.precision(2);
G4cout << "\n nb tracks/event"
<< " neutral: " << setw(7) << NbOfTraks0/dNbOfEvents
<< " charged: " << setw(7) << NbOfTraks1/dNbOfEvents
<< " neutral: " << G4std::setw(7) << NbOfTraks0/dNbOfEvents
<< " charged: " << G4std::setw(7) << NbOfTraks1/dNbOfEvents
<< "\n nb steps/event"
<< " neutral: " << setw(7) << NbOfSteps0/dNbOfEvents
<< " charged: " << setw(7) << NbOfSteps1/dNbOfEvents
<< endl;
<< " neutral: " << G4std::setw(7) << NbOfSteps0/dNbOfEvents
<< " charged: " << G4std::setw(7) << NbOfSteps1/dNbOfEvents
<< G4endl;
//frequency of processes call
G4cout << "\n nb of process calls per event: \n ";
for (G4int i=0; i< ProcCounter->entries();i++)
G4cout << setw(9) << (*ProcCounter)[i]->GetName();
G4cout << G4std::setw(9) << (*ProcCounter)[i]->GetName();
G4cout << "\n ";
for (G4int j=0; j< ProcCounter->entries();j++)
G4cout << setw(9) << ((*ProcCounter)[j]->GetCounter())/dNbOfEvents;
G4cout << endl;
G4cout << G4std::setw(9) << ((*ProcCounter)[j]->GetCounter())/dNbOfEvents;
G4cout << G4endl;
G4cout.setf(oldform,ios::floatfield);
G4cout.setf(oldform,G4std::ios::floatfield);
G4cout.precision(oldprec);
}
@@ -138,16 +147,18 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun)
//draw the events
if (G4VVisManager::GetConcreteInstance())
G4UImanager::GetUIpointer()->ApplyCommand("/vis/show/view");
// writing histogram file
hbookManager->write();
G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update");
// save Rndm status
if (saveRndm == 1)
{ HepRandom::showEngineStatus();
HepRandom::saveEngineStatus("endOfRun.rndm");
}
}
#ifndef G4NOHIST
// writing histogram file
hbookManager->write();
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1RunActionMessenger.cc,v 1.1.4.1 1999/12/07 20:46:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1RunActionMessenger.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -63,7 +63,7 @@ void Em1RunActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
Em1Run->SetRndmFreq(RndmSaveCmd->GetNewIntValue(newValue));
if (command == RndmReadCmd)
{ G4cout << "\n---> rndm status restored from file: " << newValue << endl;
{ G4cout << "\n---> rndm status restored from file: " << newValue << G4endl;
HepRandom::restoreEngineStatus(newValue);
HepRandom::showEngineStatus();
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1SteppingAction.cc,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1SteppingAction.cc,v 1.3 2000/01/21 12:29:26 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -19,7 +19,9 @@
#include "G4SteppingManager.hh"
#include "G4VProcess.hh"
#include "CLHEP/Hist/HBookFile.h"
#ifndef G4NOHIST
#include "CLHEP/Hist/HBookFile.h"
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -44,7 +46,10 @@ void Em1SteppingAction::UserSteppingAction(const G4Step* aStep)
G4double charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge();
G4double steplen = aStep->GetStepLength();
if (charge != 0.) runAction->GetHisto(2)->accumulate(steplen);
#ifndef G4NOHIST
if (charge != 0.) runAction->GetHisto(2)->accumulate(steplen);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -0,0 +1,170 @@
// 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: Em1SteppingVerbose.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
//---------------------------------------------------------------
//
// Em1SteppingVerbose.cc
//
// Description:
// Implementation of the Em1SteppingVerbose class
// Contact:
// Questions and comments to this code should be sent to
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
//
//---------------------------------------------------------------
#include "Em1SteppingVerbose.hh"
#include "G4SteppingManager.hh"
#include "G4UnitsTable.hh"
////////////////////////////////////////////////
Em1SteppingVerbose::Em1SteppingVerbose()
////////////////////////////////////////////////
{
}
//////////////////////////////////////////////////
Em1SteppingVerbose::~Em1SteppingVerbose()
//////////////////////////////////////////////////
{
}
/////////////////////////////////////////
void Em1SteppingVerbose::StepInfo()
/////////////////////////////////////////
{
CopyState();
G4int prec = G4cout.precision(3);
if( verboseLevel >= 1 ){
if( verboseLevel >= 4 ) VerboseTrack();
if( verboseLevel >= 3 ){
G4cout << G4endl;
G4cout << G4std::setw( 5) << "#Step#" << " "
<< G4std::setw( 6) << "X" << " "
<< G4std::setw( 6) << "Y" << " "
<< G4std::setw( 6) << "Z" << " "
<< G4std::setw( 9) << "KineE" << " "
<< G4std::setw( 9) << "dEStep" << " "
<< G4std::setw(10) << "StepLeng"
<< G4std::setw(10) << "TrakLeng"
<< G4std::setw(10) << "NextVolu"
<< G4std::setw(10) << "Process" << G4endl;
}
G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
// if( fStepStatus != fWorldBoundary){
if( fTrack->GetNextVolume() != 0 ) {
G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName();
} else {
G4cout << G4std::setw(10) << "OutOfWorld";
}
if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
G4cout << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
->GetProcessName();
} else {
G4cout << "User Limit";
}
G4cout << G4endl;
if( verboseLevel == 2 ){
G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
fN2ndariesAlongStepDoIt +
fN2ndariesPostStepDoIt;
if(tN2ndariesTot>0){
G4cout << " :----- List of 2ndaries - "
<< "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot
<< "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt
<< ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt
<< ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt
<< "), "
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).entries()
<< " ---------------"
<< G4endl;
for(G4int lp1=(*fSecondary).entries()-tN2ndariesTot;
lp1<(*fSecondary).entries(); lp1++){
G4cout << " : "
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
<< G4std::setw(10)
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
G4cout << G4endl;
}
G4cout << " :-----------------------------"
<< "----------------------------------"
<< "-- EndOf2ndaries Info ---------------"
<< G4endl;
}
}
}
G4cout.precision(prec);
}
////////////////////////////////////////////////
void Em1SteppingVerbose::TrackingStarted()
////////////////////////////////////////////////
{
CopyState();
G4int prec = G4cout.precision(3);
if( verboseLevel > 0 ){
G4cout << G4std::setw( 5) << "Step#" << " "
<< G4std::setw( 6) << "X" << " "
<< G4std::setw( 6) << "Y" << " "
<< G4std::setw( 6) << "Z" << " "
<< G4std::setw( 9) << "KineE" << " "
<< G4std::setw( 9) << "dEStep" << " "
<< G4std::setw(10) << "StepLeng"
<< G4std::setw(10) << "TrakLeng"
<< G4std::setw(10) << "NextVolu"
<< G4std::setw(10) << "Process" << G4endl;
G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
if(fTrack->GetNextVolume()){
G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName() << " ";
} else {
G4cout << G4std::setw(10) << "OutOfWorld" << " ";
}
G4cout << G4std::setw(10) << "initStep" << G4endl;
}
G4cout.precision(prec);
}
@@ -6,8 +6,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1TrackingAction.cc,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1TrackingAction.cc,v 1.3 2000/01/21 12:29:26 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -18,8 +18,10 @@
#include "Em1RunAction.hh"
#include "G4Track.hh"
#include "CLHEP/Hist/HBookFile.h"
#ifndef G4NOHIST
#include "CLHEP/Hist/HBookFile.h"
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -40,8 +42,10 @@ void Em1TrackingAction::PostUserTrackingAction(const G4Track* aTrack)
if (aTrack->GetDefinition()->GetPDGCharge() == 0.)
{runAction->CountTraks0(1); runAction->CountSteps0(nbSteps);}
else {runAction->CountTraks1(1); runAction->CountSteps1(nbSteps);
#ifndef G4NOHIST
runAction->GetHisto(0)->accumulate(Trleng);
runAction->GetHisto(1)->accumulate((float)nbSteps);
#endif
}
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em1VisManager.cc,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em1VisManager.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// John Allison 24th January 1998.
@@ -131,7 +131,7 @@ void Em1VisManager::RegisterGraphicsSystems () {
if (fVerbose > 0) {
G4cout <<
"\nYou have successfully chosen to use the following graphics systems."
<< endl;
<< G4endl;
PrintAvailableGraphicsSystems ();
}
}
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.1 1999/10/11 15:08:23 maire Exp $
# $Id: GNUmakefile,v 1.2 2000/01/21 10:56:13 maire Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -16,7 +16,11 @@ all: lib bin
include $(G4INSTALL)/config/architecture.gmk
LDFLAGS += -L/cern/pro/lib
LOADLIBS += -lpacklib $(FCLIBS)
ifdef G4NOHIST
CPPFLAGS += -DG4NOHIST
else
LDFLAGS += -L/cern/pro/lib
LOADLIBS += -lpacklib $(FCLIBS)
endif
include $(G4INSTALL)/config/binmake.gmk
@@ -1,4 +1,4 @@
$Id: README,v 1.1 1999/10/11 15:08:24 maire Exp $
$Id: README,v 1.2 2000/01/21 10:56:13 maire Exp $
-------------------------------------------------------------------
=========================================================
@@ -87,8 +87,7 @@ $Id: README,v 1.1 1999/10/11 15:08:24 maire Exp $
7- HISTOGRAMS
Testem2 produces several histo which are saved as testem2.histo
under the control of the command /run/save on
TestEm2 produces several histo which are saved as testem2.histo
Content of these histo:
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: TestEm2.cc,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: TestEm2.cc,v 1.3 1999/12/15 14:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
// Comments
//
@@ -29,12 +29,16 @@
#include "Em2EventAction.hh"
#include "Em2TrackingAction.hh"
#include "Em2SteppingAction.hh"
#include "Em2SteppingVerbose.hh"
int main(int argc,char** argv) {
//choose the Random engine
HepRandom::setTheEngine(new RanecuEngine);
//my Verbose output class
G4VSteppingVerbose::SetInstance(new Em2SteppingVerbose);
// Construct the default run manager
G4RunManager * runManager = new G4RunManager;
@@ -0,0 +1,29 @@
# $Id: TestEm2.in,v 1.1 2000/01/21 14:40:57 maire Exp $
#
# Macro file for "TestEm2.cc"
# (can be run in batch, without graphic)
#
# H2O L = 9.97 radl R = 0.665 radl; electron 1 GeV
#
# Experimental results: Electron-induced cascade showers
# J&H Crannel - Phys. Rev. 184-2 - August69
#
/control/verbose 2
#
/calor/setMat Water
/calor/setLbin 9 1.11
/calor/setRbin 6 0.111
/calor/update
#
/run/particle/setCut 5.0 mm
/run/initialize
#
/run/verbose 2
/event/drawTracks none
/event/printModulo 20
#
/gun/particle electron
/gun/energy 1 GeV
/run/beamOn 100
@@ -0,0 +1,335 @@
**********************************************
Geant4 version $Name: geant4-01-01 $
(07-Dec-99)
Copyright : Geant4 Collaboration
**********************************************
Constructing Visualization Manager....
Initialising Visualization Manager....
Registering graphics systems....
***** Table : Nb of materials = 8 *****
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
Material: lAr density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
---> Element: lAr Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Al density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
---> Element: Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Fe density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
---> Element: Fe Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 %
---> Element: Germanium Ge Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 %
---> Element: Bismuth Bi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 %
Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 %
---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 %
---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 %
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 %
Absorber is 17.848 cm of PbWO4
Em2PhysicsList::SetCuts:CutLength : 1 (mm)
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
Sandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 1e+02 GeV in 100 bins.
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
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 1e+02 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation. 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 1e+02 TeV in 100 bins.
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.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+02 TeV in 150 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+03 PeV in 100 bins.
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 100 bins.
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 50 bins.
============= The cut Energy ==============================
gamma e- mu- proton neutron
Cut in range 1 mm 1 mm 1 mm 1 mm 1 mm
Cut in energy
Air 990 eV 990 eV 48.4 keV 83.2 keV 990 eV
Water 2.9 keV 347 keV 3.39 MeV 8.95 MeV 990 eV
lAr 6.18 keV 343 keV 3.24 MeV 8.32 MeV 990 eV
Al 6.89 keV 597 keV 5.02 MeV 13.1 MeV 990 eV
Fe 20.8 keV 1.28 MeV 8.52 MeV 22 MeV 990 eV
BGO 77.7 keV 1.03 MeV 7.17 MeV 18.1 MeV 990 eV
PbWO4 84.8 keV 1.13 MeV 7.63 MeV 19.2 MeV 990 eV
Lead 101 keV 1.38 MeV 8.52 MeV 20.9 MeV 990 eV
===================================================
# $Id: TestEm2.out,v 1.1 2000/01/21 14:40:57 maire Exp $
#
# Macro file for "TestEm2.cc"
# (can be run in batch, without graphic)
#
# H2O L = 9.97 radl R = 0.665 radl; electron 1 GeV
#
# Experimental results: Electron-induced cascade showers
# J&H Crannel - Phys. Rev. 184-2 - August69
#
#
/calor/setMat Water
/calor/setLbin 9 1.11
/calor/setRbin 6 0.111
/calor/update
Absorber is 3.60564 m of Water
#
/run/particle/setCut 5.0 mm
/run/initialize
Em2PhysicsList::SetCuts:CutLength : 5 (mm)
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
Sandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 1e+02 GeV in 100 bins.
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
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 1e+02 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation. 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 1e+02 TeV in 100 bins.
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.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+02 TeV in 150 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+03 PeV in 100 bins.
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 100 bins.
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 50 bins.
============= The cut Energy ==============================
gamma e- mu- proton neutron
Cut in range 5 mm 5 mm 5 mm 5 mm 5 mm
Cut in energy
Air 990 eV 3.24 keV 156 keV 326 keV 990 eV
Water 5.78 keV 1.16 MeV 8.21 MeV 22 MeV 990 eV
lAr 13.6 keV 1.16 MeV 8.01 MeV 20.9 MeV 990 eV
Al 14.6 keV 2.31 MeV 12.5 MeV 32.6 MeV 990 eV
Fe 46.4 keV 6.11 MeV 21.5 MeV 54.7 MeV 990 eV
BGO 126 keV 4.72 MeV 18.1 MeV 45.7 MeV 990 eV
PbWO4 137 keV 5.34 MeV 19.4 MeV 48.3 MeV 990 eV
Lead 204 keV 6.83 MeV 22 MeV 54 MeV 990 eV
===================================================
#
/run/verbose 2
/event/drawTracks none
/event/printModulo 20
#
/gun/particle electron
/gun/energy 1 GeV
/run/beamOn 100
### Run 0 start.
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 9876, 54321
----------------------------------------
Start closing geometry.
Start Run processing.
---> Begin Of Event: 0
---> Begin Of Event: 20
---> Begin Of Event: 40
---> Begin Of Event: 60
G4ParticleChangeForMSC::CheckIt : the Momentum Change is not unit vector !!
Difference: 1.5e-09
G4ParticleChangeForMSC::CheckIt
pointer : 0x140618e58
-----------------------------------------------
G4ParticleChange Information
-----------------------------------------------
# of 2ndaries : 0
-----------------------------------------------
Energy Deposit (MeV): 0
Track Status : Alive
True Path Length (mm) : 6.91
Stepping Control : 0
Event Biasing : not used
Position - x (mm) : 59.8
Position - y (mm) : -38.6
Position - z (mm) : 877
Momentum Direction - x : 0.414
Momentum Direction - y : 0.0309
Momentum Direction - z : 0.91
G4ParticleChange::CheckIt : the Momentum Change is not unit vector !!
Difference: 1.51e-09
G4ParticleChange::CheckIt
pointer : 0x1405d2cc0
-----------------------------------------------
G4ParticleChange Information
-----------------------------------------------
# of 2ndaries : 0
-----------------------------------------------
Energy Deposit (MeV): 0
Track Status : Alive
True Path Length (mm) : 0
Stepping Control : 0
Event Biasing : not used
Mass (GeV) : 0
Charge (eplus) : 0
Position - x (mm) : 62.1
Position - y (mm) : -38.4
Position - z (mm) : 882
Time (ns) : 9.01
Proper Time (ns) : 0.00338
Momentum Direct - x : 0.414
Momentum Direct - y : 0.0309
Momentum Direct - z : 0.91
Kinetic Energy (MeV): 5.15
Polarization - x : 0
Polarization - y : 0
Polarization - z : 0
Touchable (pointer) : 0x1402b2bc0
---> Begin Of Event: 80
Run terminated.
Run Summary
Number of events processed : 100
User=19.2s Real=22.9s Sys=3.42s
LATERAL PROFILE CUMULATIVE LATERAL PROFILE
bin Mean rms bin Mean rms
0.00-> 1.11 radl: 13.46% 6.25% 0-> 1.11 radl: 13.46% 6.25%
1.11-> 2.22 radl: 24.71% 10.53% 0-> 2.22 radl: 38.17% 14.12%
2.22-> 3.33 radl: 23.98% 10.63% 0-> 3.33 radl: 62.15% 18.49%
3.33-> 4.44 radl: 13.68% 8.06% 0-> 4.44 radl: 75.83% 17.78%
4.44-> 5.55 radl: 8.09% 7.22% 0-> 5.55 radl: 83.93% 16.08%
5.55-> 6.66 radl: 5.50% 6.39% 0-> 6.66 radl: 89.43% 11.95%
6.66-> 7.77 radl: 3.04% 6.08% 0-> 7.77 radl: 92.46% 7.12%
7.77-> 8.88 radl: 1.87% 3.88% 0-> 8.88 radl: 94.33% 4.60%
8.88-> 9.99 radl: 0.90% 2.07% 0-> 9.99 radl: 95.23% 3.78%
RADIAL PROFILE CUMULATIVE RADIAL PROFILE
bin Mean rms bin Mean rms
0.00-> 0.11 radl: 69.28% 9.17% 0-> 0.11 radl: 69.28% 9.17%
0.11-> 0.22 radl: 15.05% 6.43% 0-> 0.22 radl: 84.33% 5.88%
0.22-> 0.33 radl: 5.41% 3.14% 0-> 0.33 radl: 89.74% 4.73%
0.33-> 0.44 radl: 2.67% 1.88% 0-> 0.44 radl: 92.41% 4.14%
0.44-> 0.56 radl: 1.66% 1.53% 0-> 0.56 radl: 94.07% 3.85%
0.56-> 0.67 radl: 1.16% 1.18% 0-> 0.67 radl: 95.23% 3.78%
SUMMARY
energy deposit : 95.23 % E0 +- 3.78 % E0
charged traklen: 13.61 radl +- 0.55 radl
neutral traklen: 192.88 radl +- 17.42 radl
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 2146177415, 212514321
----------------------------------------
Graphics systems deleted.
VisManager deleting.
G4 kernel has come to Quit state.
Deletion of G4 kernel class start.
UserDetectorConstruction deleted.
UserPhysicsList deleted.
UserRunAction deleted.
UserPrimaryGenerator deleted.
EventManager deleted.
UImanager deleted.
StateManager deleted.
RunManager is deleting.
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2DetectorConstruction.hh,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2DetectorConstruction.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2DetectorMessenger.hh,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2DetectorMessenger.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2EventAction.hh,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2EventAction.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2EventActionMessenger.hh,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2EventActionMessenger.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2PhysicsList.hh,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2PhysicsList.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2PrimaryGeneratorAction.hh,v 1.1.4.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2PrimaryGeneratorAction.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2RunAction.hh,v 1.1.2.1.2.1 1999/12/07 20:46:56 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2RunAction.hh,v 1.4 2000/01/21 10:56:14 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -35,8 +35,10 @@ class Em2RunActionMessenger;
class G4Run;
class HepTupleManager;
class HepHistogram;
#ifndef G4NOHIST
class HepTupleManager;
class HepHistogram;
#endif
class Em2RunAction : public G4UserRunAction
{
@@ -54,7 +56,6 @@ class Em2RunAction : public G4UserRunAction
inline void fillPerStep (G4double,G4int,G4int);
inline void particleFlux(G4ParticleDefinition*,G4int);
void SetSaveFlag (G4String val) {saveFlag = val;}
void SetRndmFreq(G4int val) {saveRndm = val;}
G4int GetRndmFreq() {return saveRndm;}
@@ -93,16 +94,18 @@ class Em2RunAction : public G4UserRunAction
G4double NeutrTrLength;
G4double sumNeutrTrLength;
G4double sum2NeutrTrLength;
Em2RunActionMessenger* runMessenger;
G4int saveRndm;
#ifndef G4NOHIST
HepTupleManager* hbookManager;
HepHistogram *histo1, *histo2, *histo3;
HepHistogram *histo4, *histo5, *histo6;
HepHistogram *histo7, *histo8, *histo9;
HepHistogram *hist10, *hist11, *hist12;
#endif
Em2RunActionMessenger* runMessenger;
G4String saveFlag;
G4int saveRndm;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2RunActionMessenger.hh,v 1.1.4.1 1999/12/07 20:46:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2RunActionMessenger.hh,v 1.3 2000/01/21 10:56:15 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -36,7 +36,6 @@ class Em2RunActionMessenger: public G4UImessenger
private:
Em2RunAction* Em2Run;
G4UIcmdWithAString* SaveCmd;
G4UIdirectory* RndmDir;
G4UIcmdWithAnInteger* RndmSaveCmd;
G4UIcmdWithAString* RndmReadCmd;
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2SteppingAction.hh,v 1.1.4.1 1999/12/07 20:46:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2SteppingAction.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -0,0 +1,47 @@
// 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: Em2SteppingVerbose.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
//---------------------------------------------------------------
//
// Em2SteppingVerbose.hh
//
// Description:
// This class manages the vervose outputs in G4SteppingManager.
//
//
// Contact:
// Questions and comments to this code should be sent to
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
//
//---------------------------------------------------------------
class Em2SteppingVerbose;
#ifndef Em2SteppingVerbose_h
#define Em2SteppingVerbose_h 1
#include "G4SteppingVerbose.hh"
class Em2SteppingVerbose : public G4SteppingVerbose {
public:
// Constructor/Destructor
Em2SteppingVerbose();
~Em2SteppingVerbose();
//
void StepInfo();
void TrackingStarted();
//
};
#endif
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2TrackingAction.hh,v 1.1.4.1 1999/12/07 20:46:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2TrackingAction.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2VisManager.hh,v 1.1.4.1 1999/12/07 20:46:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2VisManager.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -32,4 +32,7 @@
/tracking/storeTrajectory 1
/event/drawTracks charged
#
# Flush visualization
/vis/viewer/update
#
/run/verbose 2
@@ -1,4 +1,4 @@
# $Id: run01.mac,v 1.1 1999/10/11 15:08:26 maire Exp $
# $Id: run01.mac,v 1.2 2000/01/21 10:56:13 maire Exp $
#
# Macro file for "TestEm2.cc"
# (can be run in batch, without graphic)
@@ -13,7 +13,6 @@
/run/verbose 2
/event/drawTracks none
/event/printModulo 10
/run/save on
#
/gun/particle electron
/gun/energy 5 GeV
@@ -1,4 +1,4 @@
# $Id: run02.mac,v 1.1 1999/10/11 15:08:26 maire Exp $
# $Id: run02.mac,v 1.2 2000/01/21 10:56:14 maire Exp $
#
# Macro file for "TestEm2.cc"
# (can be run in batch, without graphic)
@@ -21,7 +21,6 @@
/run/verbose 2
/event/drawTracks none
/event/printModulo 10
/run/save on
#
/gun/particle electron
/gun/energy 1 GeV
@@ -1,4 +1,4 @@
# $Id: run03.mac,v 1.1 1999/10/11 15:08:26 maire Exp $
# $Id: run03.mac,v 1.2 2000/01/21 10:56:14 maire Exp $
#
# Macro file for "TestEm2.cc"
# (can be run in batch, without graphic)
@@ -21,7 +21,6 @@
/run/verbose 2
/event/drawTracks none
/event/printModulo 10
/run/save on
#
/gun/particle electron
/gun/energy 1 GeV
@@ -1,4 +1,4 @@
# $Id: run04.mac,v 1.1 1999/10/11 15:08:27 maire Exp $
# $Id: run04.mac,v 1.2 2000/01/21 10:56:14 maire Exp $
#
# Macro file for "TestEm2.cc"
# (can be run in batch, without graphic)
@@ -20,7 +20,6 @@
/run/verbose 2
/event/drawTracks none
/event/printModulo 10
/run/save on
#
/gun/particle electron
/gun/energy 30 GeV
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2DetectorConstruction.cc,v 1.1.4.1 1999/12/07 20:46:57 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2DetectorConstruction.cc,v 1.3 2000/02/14 14:09:16 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -142,7 +142,7 @@ void Em2DetectorConstruction::DefineMaterials()
G4Material* pb = new G4Material(name="Lead", density, ncomponents=1);
pb->AddElement(Pb, fractionmass=1.0);
G4cout << *(G4Material::GetMaterialTable()) << endl;
G4cout << *(G4Material::GetMaterialTable()) << G4endl;
//choose material
myMaterial = PbWO;
@@ -186,8 +186,8 @@ G4VPhysicalVolume* Em2DetectorConstruction::ConstructVolumes()
physiRing,false,0);
cout << "Absorber is " << G4BestUnit(EcalLength,"Length")
<< " of " << myMaterial->GetName() << endl;
G4cout << "Absorber is " << G4BestUnit(EcalLength,"Length")
<< " of " << myMaterial->GetName() << G4endl;
G4VisAttributes* VisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2DetectorMessenger.cc,v 1.1.4.1 1999/12/07 20:46:58 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2DetectorMessenger.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2EventAction.cc,v 1.1.4.1 1999/12/07 20:46:58 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2EventAction.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -47,7 +47,7 @@ void Em2EventAction::BeginOfEventAction(const G4Event* evt)
{
G4int evtNb = evt->GetEventID();
if (evtNb%printModulo == 0)
G4cout << "\n---> Begin Of Event: " << evtNb << endl;
G4cout << "\n---> Begin Of Event: " << evtNb << G4endl;
Em2Run->initializePerEvent();
}
@@ -78,7 +78,7 @@ void Em2EventAction::EndOfEventAction(const G4Event* evt)
G4int evtNb = evt->GetEventID();
if (evtNb%printModulo == 0)
{
G4cout << "\n---> End of Event: " << evtNb << endl;
G4cout << "\n---> End of Event: " << evtNb << G4endl;
HepRandom::showEngineStatus();
}
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2EventActionMessenger.cc,v 1.1.4.1 1999/12/07 20:46:58 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2EventActionMessenger.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2PhysicsList.cc,v 1.1.4.1 1999/12/07 20:46:58 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2PhysicsList.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -212,7 +212,7 @@ void Em2PhysicsList::SetCuts()
{
if (verboseLevel >0){
G4cout << "Em2PhysicsList::SetCuts:";
G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << endl;
G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl;
}
// set cut values for gamma at first and for e- second and next for e+,
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2PrimaryGeneratorAction.cc,v 1.1.4.1 1999/12/07 20:46:58 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2PrimaryGeneratorAction.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,9 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2RunAction.cc,v 1.1.4.1 1999/12/07 20:46:58 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id: Em2RunAction.cc,v 1.4 2000/01/21 10:56:15 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -25,17 +24,20 @@
#include "G4ios.hh"
#include "G4UnitsTable.hh"
#include <iomanip.h>
#include "g4std/iomanip"
#include <assert.h>
#include "Randomize.hh"
#include "CLHEP/Hist/HBookFile.h"
#ifndef G4NOHIST
#include "CLHEP/Hist/HBookFile.h"
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Em2RunAction::Em2RunAction(Em2DetectorConstruction* det,
Em2PrimaryGeneratorAction* kin)
:Em2Det(det),Em2Kin(kin),hbookManager(NULL)
:Em2Det(det),Em2Kin(kin)
{
nLbin = Em2Det->GetnLtot();
dEdL = *new MyVector(nLbin);
@@ -56,8 +58,12 @@ Em2RunAction::Em2RunAction(Em2DetectorConstruction* det,
sumE2RadialCumul = *new MyVector(nRbin);
runMessenger = new Em2RunActionMessenger(this);
saveFlag = "off";
saveRndm = 1;
saveRndm = 1;
#ifndef G4NOHIST
hbookManager = NULL;
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -72,6 +78,7 @@ Em2RunAction::~Em2RunAction()
void Em2RunAction::bookHisto()
{
#ifndef G4NOHIST
hbookManager = new HBookFile("TestEm2.histo", 68);
assert (hbookManager != 0);
@@ -115,24 +122,27 @@ void Em2RunAction::bookHisto()
nRbin,Rmin,Rmax);
hist12 = hbookManager->histogram("rms on cumul radial Edep (% of E inc)",
nRbin,Rmin,Rmax);
nRbin,Rmin,Rmax);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void Em2RunAction::cleanHisto()
{
#ifndef G4NOHIST
delete histo1; delete histo2; delete histo3;
delete histo4; delete histo5; delete histo6;
delete histo7; delete histo8; delete histo9;
delete hist10; delete hist11; delete hist12;
delete hbookManager;
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void Em2RunAction::BeginOfRunAction(const G4Run* aRun)
{
G4cout << "### Run " << aRun->GetRunID() << " start." << endl;
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
// save Rndm status
if (saveRndm > 0)
@@ -183,8 +193,7 @@ void Em2RunAction::BeginOfRunAction(const G4Run* aRun)
if (G4VVisManager::GetConcreteInstance())
{
G4UImanager* UI = G4UImanager::GetUIpointer();
UI->ApplyCommand("/vis/clear/view");
UI->ApplyCommand("/vis/draw/current");
UI->ApplyCommand("/vis/scene/notifyHandlers");
}
}
@@ -219,6 +228,7 @@ void Em2RunAction::fillPerEvent()
sumNeutrTrLength += NeutrTrLength;
sum2NeutrTrLength += NeutrTrLength*NeutrTrLength;
#ifndef G4NOHIST
//fill histograms
//
G4double Ekin=Em2Kin->GetParticleGun()->GetParticleEnergy();
@@ -227,7 +237,8 @@ void Em2RunAction::fillPerEvent()
histo1->accumulate(100.*dLCumul/(Ekin+mass));
histo2->accumulate(ChargTrLength/radl);
histo3->accumulate(NeutrTrLength/radl);
histo3->accumulate(NeutrTrLength/radl);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -235,7 +246,7 @@ void Em2RunAction::fillPerEvent()
void Em2RunAction::EndOfRunAction(const G4Run* aRun)
{
if (G4VVisManager::GetConcreteInstance())
G4UImanager::GetUIpointer()->ApplyCommand("/vis/show/view");
G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update");
//compute and print statistic
//
@@ -267,7 +278,8 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
gammaFlux (i) /= NbOfEvents;
electronFlux(i) /= NbOfEvents;
positronFlux(i) /= NbOfEvents;
#ifndef G4NOHIST
bin = i*dLradl;
histo4->accumulate(bin,MeanELongit(i)/dLradl);
bin = (i+1)*dLradl;
@@ -276,7 +288,8 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
histo7->accumulate(bin, gammaFlux(i));
histo8->accumulate(bin, electronFlux(i));
histo9->accumulate(bin, positronFlux(i));
histo9->accumulate(bin, positronFlux(i));
#endif
}
//radial
@@ -296,12 +309,13 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
rmsERadialCumul(i) = norme*sqrt(abs(NbOfEvents*sumE2RadialCumul(i)
- sumERadialCumul(i)*sumERadialCumul(i)));
#ifndef G4NOHIST
bin = i*dRradl;
hist10->accumulate(bin,MeanERadial(i)/dRradl);
bin = (i+1)*dRradl;
hist11->accumulate(bin,MeanERadialCumul(i));
hist12->accumulate(bin, rmsERadialCumul(i));
hist12->accumulate(bin, rmsERadialCumul(i));
#endif
}
//track length
@@ -318,72 +332,74 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
//print
//
G4long oldform = G4cout.setf(ios::fixed,ios::floatfield);
G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield);
G4int oldprec = G4cout.precision(2);
G4cout << " LATERAL PROFILE "
<< " CUMULATIVE LATERAL PROFILE" << endl << endl;
<< " CUMULATIVE LATERAL PROFILE" << G4endl << G4endl;
G4cout << " bin " << " Mean rms "
<< " bin " << " Mean rms \n" << endl;
<< " bin " << " Mean rms \n" << G4endl;
for (i=0; i<nLbin; i++)
{
G4double inf=i*dLradl, sup=inf+dLradl;
G4cout << setw(8) << inf << "->" << setw(5) << sup << " radl: "
<< setw(7) << MeanELongit(i) << "% "
<< setw(9) << rmsELongit(i) << "% "
<< " 0->" << setw(5) << sup << " radl: "
<< setw(7) << MeanELongitCumul(i) << "% "
<< setw(7) << rmsELongitCumul(i) << "% "
<<endl;
G4cout << G4std::setw(8) << inf << "->" << G4std::setw(5) << sup << " radl: "
<< G4std::setw(7) << MeanELongit(i) << "% "
<< G4std::setw(9) << rmsELongit(i) << "% "
<< " 0->" << G4std::setw(5) << sup << " radl: "
<< G4std::setw(7) << MeanELongitCumul(i) << "% "
<< G4std::setw(7) << rmsELongitCumul(i) << "% "
<<G4endl;
}
G4cout << endl << endl << endl;
G4cout << G4endl << G4endl << G4endl;
G4cout << " RADIAL PROFILE "
<< " CUMULATIVE RADIAL PROFILE" << endl << endl;
<< " CUMULATIVE RADIAL PROFILE" << G4endl << G4endl;
G4cout << " bin " << " Mean rms "
<< " bin " << " Mean rms \n" << endl;
<< " bin " << " Mean rms \n" << G4endl;
for (i=0; i<nRbin; i++)
{
G4double inf=i*dRradl, sup=inf+dRradl;
G4cout << setw(8) << inf << "->" << setw(5) << sup << " radl: "
<< setw(7) << MeanERadial(i) << "% "
<< setw(9) << rmsERadial(i) << "% "
<< " 0->" << setw(5) << sup << " radl: "
<< setw(7) << MeanERadialCumul(i) << "% "
<< setw(7) << rmsERadialCumul(i) << "% "
<<endl;
G4cout << G4std::setw(8) << inf << "->" << G4std::setw(5) << sup << " radl: "
<< G4std::setw(7) << MeanERadial(i) << "% "
<< G4std::setw(9) << rmsERadial(i) << "% "
<< " 0->" << G4std::setw(5) << sup << " radl: "
<< G4std::setw(7) << MeanERadialCumul(i) << "% "
<< G4std::setw(7) << rmsERadialCumul(i) << "% "
<<G4endl;
}
G4cout << endl;
G4cout << setw(37) << "SUMMARY" << endl;
G4cout << setw(42) << "energy deposit : "
<< setw(7) << MeanELongitCumul(nLbin-1) << " % E0 +- "
<< setw(7) << rmsELongitCumul(nLbin-1) << " % E0" << endl;
G4cout << setw(42) << "charged traklen: "
<< setw(7) << MeanChargTrLength << " radl +- "
<< setw(7) << rmsChargTrLength << " radl" << endl;
G4cout << setw(42) << "neutral traklen: "
<< setw(7) << MeanNeutrTrLength << " radl +- "
<< setw(7) << rmsNeutrTrLength << " radl" << endl;
G4cout << G4endl;
G4cout << G4std::setw(37) << "SUMMARY" << G4endl;
G4cout << G4std::setw(42) << "energy deposit : "
<< G4std::setw(7) << MeanELongitCumul(nLbin-1) << " % E0 +- "
<< G4std::setw(7) << rmsELongitCumul(nLbin-1) << " % E0" << G4endl;
G4cout << G4std::setw(42) << "charged traklen: "
<< G4std::setw(7) << MeanChargTrLength << " radl +- "
<< G4std::setw(7) << rmsChargTrLength << " radl" << G4endl;
G4cout << G4std::setw(42) << "neutral traklen: "
<< G4std::setw(7) << MeanNeutrTrLength << " radl +- "
<< G4std::setw(7) << rmsNeutrTrLength << " radl" << G4endl;
G4cout.setf(oldform,ios::floatfield);
G4cout.setf(oldform,G4std::ios::floatfield);
G4cout.precision(oldprec);
// Write histogram file
if (saveFlag == "on") hbookManager->write();
// save Rndm status
if (saveRndm == 1)
{ HepRandom::showEngineStatus();
HepRandom::saveEngineStatus("endOfRun.rndm");
}
}
#ifndef G4NOHIST
// Write histogram file
hbookManager->write();
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2RunActionMessenger.cc,v 1.1.4.1 1999/12/07 20:46:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2RunActionMessenger.cc,v 1.3 2000/01/21 10:56:16 maire Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -27,15 +27,7 @@
Em2RunActionMessenger::Em2RunActionMessenger(Em2RunAction* run)
:Em2Run(run)
{
SaveCmd = new G4UIcmdWithAString("/run/save",this);
SaveCmd->SetGuidance("Save run statistic (histo)");
SaveCmd->SetGuidance(" Choice : on,off(default)");
SaveCmd->SetParameterName("choice",true);
SaveCmd->SetDefaultValue("on");
SaveCmd->SetCandidates("on off");
SaveCmd->AvailableForStates(Idle);
{
RndmDir = new G4UIdirectory("/rndm/");
RndmDir->SetGuidance("Rndm status control.");
@@ -60,21 +52,18 @@ Em2RunActionMessenger::Em2RunActionMessenger(Em2RunAction* run)
Em2RunActionMessenger::~Em2RunActionMessenger()
{
delete SaveCmd;
delete RndmSaveCmd; delete RndmReadCmd; delete RndmDir;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void Em2RunActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
{
if (command == SaveCmd) Em2Run->SetSaveFlag(newValue);
{
if (command == RndmSaveCmd)
Em2Run->SetRndmFreq(RndmSaveCmd->GetNewIntValue(newValue));
if (command == RndmReadCmd)
{ G4cout << "\n---> rndm status restored from file: " << newValue << endl;
{ G4cout << "\n---> rndm status restored from file: " << newValue << G4endl;
HepRandom::restoreEngineStatus(newValue);
HepRandom::showEngineStatus();
}
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2SteppingAction.cc,v 1.1.4.1 1999/12/07 20:46:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2SteppingAction.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -0,0 +1,170 @@
// 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: Em2SteppingVerbose.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
//---------------------------------------------------------------
//
// Em2SteppingVerbose.cc
//
// Description:
// Implementation of the Em2SteppingVerbose class
// Contact:
// Questions and comments to this code should be sent to
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
//
//---------------------------------------------------------------
#include "Em2SteppingVerbose.hh"
#include "G4SteppingManager.hh"
#include "G4UnitsTable.hh"
////////////////////////////////////////////////
Em2SteppingVerbose::Em2SteppingVerbose()
////////////////////////////////////////////////
{
}
//////////////////////////////////////////////////
Em2SteppingVerbose::~Em2SteppingVerbose()
//////////////////////////////////////////////////
{
}
/////////////////////////////////////////
void Em2SteppingVerbose::StepInfo()
/////////////////////////////////////////
{
CopyState();
G4int prec = G4cout.precision(3);
if( verboseLevel >= 1 ){
if( verboseLevel >= 4 ) VerboseTrack();
if( verboseLevel >= 3 ){
G4cout << G4endl;
G4cout << G4std::setw( 5) << "#Step#" << " "
<< G4std::setw( 6) << "X" << " "
<< G4std::setw( 6) << "Y" << " "
<< G4std::setw( 6) << "Z" << " "
<< G4std::setw( 9) << "KineE" << " "
<< G4std::setw( 9) << "dEStep" << " "
<< G4std::setw(10) << "StepLeng"
<< G4std::setw(10) << "TrakLeng"
<< G4std::setw(10) << "NextVolu"
<< G4std::setw(10) << "Process" << G4endl;
}
G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
// if( fStepStatus != fWorldBoundary){
if( fTrack->GetNextVolume() != 0 ) {
G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName();
} else {
G4cout << G4std::setw(10) << "OutOfWorld";
}
if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
G4cout << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
->GetProcessName();
} else {
G4cout << "User Limit";
}
G4cout << G4endl;
if( verboseLevel == 2 ){
G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
fN2ndariesAlongStepDoIt +
fN2ndariesPostStepDoIt;
if(tN2ndariesTot>0){
G4cout << " :----- List of 2ndaries - "
<< "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot
<< "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt
<< ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt
<< ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt
<< "), "
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).entries()
<< " ---------------"
<< G4endl;
for(G4int lp1=(*fSecondary).entries()-tN2ndariesTot;
lp1<(*fSecondary).entries(); lp1++){
G4cout << " : "
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
<< G4std::setw(6)
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
<< G4std::setw(10)
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
G4cout << G4endl;
}
G4cout << " :-----------------------------"
<< "----------------------------------"
<< "-- EndOf2ndaries Info ---------------"
<< G4endl;
}
}
}
G4cout.precision(prec);
}
////////////////////////////////////////////////
void Em2SteppingVerbose::TrackingStarted()
////////////////////////////////////////////////
{
CopyState();
G4int prec = G4cout.precision(3);
if( verboseLevel > 0 ){
G4cout << G4std::setw( 5) << "Step#" << " "
<< G4std::setw( 6) << "X" << " "
<< G4std::setw( 6) << "Y" << " "
<< G4std::setw( 6) << "Z" << " "
<< G4std::setw( 9) << "KineE" << " "
<< G4std::setw( 9) << "dEStep" << " "
<< G4std::setw(10) << "StepLeng"
<< G4std::setw(10) << "TrakLeng"
<< G4std::setw(10) << "NextVolu"
<< G4std::setw(10) << "Process" << G4endl;
G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
<< G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
if(fTrack->GetNextVolume()){
G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName() << " ";
} else {
G4cout << G4std::setw(10) << "OutOfWorld" << " ";
}
G4cout << G4std::setw(10) << "initStep" << G4endl;
}
G4cout.precision(prec);
}
@@ -6,8 +6,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2TrackingAction.cc,v 1.1.4.1 1999/12/07 20:46:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2TrackingAction.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em2VisManager.cc,v 1.1.4.1 1999/12/07 20:46:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em2VisManager.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// John Allison 24th January 1998.
@@ -131,7 +131,7 @@ void Em2VisManager::RegisterGraphicsSystems () {
if (fVerbose > 0) {
G4cout <<
"\nYou have successfully chosen to use the following graphics systems."
<< endl;
<< G4endl;
PrintAvailableGraphicsSystems ();
}
}
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.1 1999/10/11 16:55:33 maire Exp $
# $Id: GNUmakefile,v 1.2 2000/01/21 09:11:04 maire Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -16,7 +16,11 @@ all: lib bin
include $(G4INSTALL)/config/architecture.gmk
LDFLAGS += -L/cern/pro/lib
LOADLIBS += -lpacklib $(FCLIBS)
ifdef G4NOHIST
CPPFLAGS += -DG4NOHIST
else
LDFLAGS += -L/cern/pro/lib
LOADLIBS += -lpacklib $(FCLIBS)
endif
include $(G4INSTALL)/config/binmake.gmk
@@ -1,4 +1,4 @@
$Id: README,v 1.1 1999/10/11 16:55:33 maire Exp $
$Id: README,v 1.2 2000/01/21 09:11:04 maire Exp $
-------------------------------------------------------------------
=========================================================
@@ -114,7 +114,6 @@ $Id: README,v 1.1 1999/10/11 16:55:33 maire Exp $
7- NTUPLE
Testem3 produce an Ntuple which is saved as testem3.histo
under the control of the command /run/save on
Content of this Ntuple:
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: TestEm3.cc,v 1.1.4.1 1999/12/07 20:46:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: TestEm3.cc,v 1.3 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
// Comments
//
@@ -28,13 +28,16 @@
#include "Em3RunAction.hh"
#include "Em3EventAction.hh"
#include "Em3SteppingAction.hh"
#include "Em3SteppingVerbose.hh"
int main(int argc,char** argv) {
//choose the Random engine
HepRandom::setTheEngine(new RanecuEngine);
//my Verbose output class
G4VSteppingVerbose::SetInstance(new Em3SteppingVerbose);
// Construct the default run manager
G4RunManager * runManager = new G4RunManager;
@@ -0,0 +1,19 @@
# $Id: TestEm3.in,v 1.1 2000/01/21 14:28:44 maire Exp $
#
# Macro file for "exampleN03.cc"
# (can be run in batch, without graphic)
#
# Lead-liquidArgon 50 layers; electron 1 GeV
#
/control/verbose 2
#
#/run/particle/setCut 0.5 mm
#/run/initialize
#
/run/verbose 2
/event/drawTracks none
/event/printModulo 50
#
/gun/particle e-
/gun/energy 1 GeV
/run/beamOn 100
@@ -0,0 +1,227 @@
**********************************************
Geant4 version $Name: geant4-01-01 $
(07-Dec-99)
Copyright : Geant4 Collaboration
**********************************************
Constructing Visualization Manager....
Initialising Visualization Manager....
Registering graphics systems....
***** Table : Nb of materials = 18 *****
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Iron density: 7.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.797 cm
---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm
---> Element: Copper Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm
---> Element: Tungsten Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm
---> Element: Uranium Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 %
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 %
Material: Silicium density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm
---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 %
Material: NemaG10 density: 1.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.733 cm
---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 28.33 % Abundance 11.11 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 32.27 % Abundance 22.22 %
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 36.34 % Abundance 33.33 %
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 3.06 % Abundance 33.33 %
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m
---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.49 % Abundance 44.42 %
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 %
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 %
Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 %
Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 6317232936888469300000.000 km
---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.786 km
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
-------------------------------------------------------------
---> The calorimeter is 50 layers of:
Lead: 2.3 mm
liquidArgon: 5.7 mm
-------------------------------------------------------------
Em3PhysicsList::SetCuts:CutLength : 5e+02 mum
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
Sandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 1e+02 GeV in 100 bins.
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
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 1e+02 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation. 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 1e+02 TeV in 100 bins.
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.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+02 TeV in 150 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 1e+02 eV to 1e+02 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 1e+03 PeV in 100 bins.
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 100 bins.
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1e+03 PeV in 50 bins.
============= The cut Energy ==============================
gamma e- mu- proton neutron
Cut in range 500 mum 500 mum 500 mum 500 mum 500 mum
Cut in energy
Aluminium 4.96 keV 365 keV 3.43 MeV 8.84 MeV 990 eV
liquidArgon 4.4 keV 217 keV 2.2 MeV 5.54 MeV 990 eV
Iron 14.2 keV 709 keV 5.68 MeV 14.5 MeV 990 eV
Copper 17.1 keV 782 keV 6.04 MeV 15.4 MeV 990 eV
Tungsten 87.5 keV 1.22 MeV 7.92 MeV 19.7 MeV 990 eV
Lead 81.5 keV 763 keV 5.68 MeV 13.8 MeV 990 eV
Uranium 105 keV 1.13 MeV 7.44 MeV 18.3 MeV 990 eV
Water 2.18 keV 223 keV 2.31 MeV 6.04 MeV 990 eV
Scintillator 1.83 keV 226 keV 2.34 MeV 6.11 MeV 990 eV
Silicium 4.96 keV 335 keV 3.18 MeV 8.21 MeV 990 eV
quartz 4.01 keV 330 keV 3.18 MeV 8.21 MeV 990 eV
NemaG10 3.07 keV 292 keV 2.88 MeV 7.54 MeV 990 eV
Air 990 eV 990 eV 27.2 keV 29.6 keV 990 eV
Aerogel 1.27 keV 79.2 keV 863 keV 2.07 MeV 990 eV
CarbonicGas 990 eV 8.52 keV 255 keV 534 keV 990 eV
WaterSteam 990 eV 990 eV 5.97 keV 4.34 keV 990 eV
Galactic 990 eV 990 eV 990 eV 990 eV 990 eV
Beam 990 eV 990 eV 990 eV 990 eV 990 eV
===================================================
# $Id: TestEm3.out,v 1.1 2000/01/21 14:28:45 maire Exp $
#
# Macro file for "exampleN03.cc"
# (can be run in batch, without graphic)
#
# Lead-liquidArgon 50 layers; electron 1 GeV
#
#
#/run/particle/setCut 0.5 mm
#/run/initialize
#
/run/verbose 2
/event/drawTracks none
/event/printModulo 50
#
/gun/particle e-
/gun/energy 1 GeV
/run/beamOn 100
### Run 0 start.
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 9876, 54321
----------------------------------------
Start closing geometry.
Start Run processing.
---> Begin Of Event: 0
---> Begin Of Event: 50
Run terminated.
Run Summary
Number of events processed : 100
User=39s Real=46s Sys=6.9s
-------------------------------------------------------------
total energy dep total tracklen
Absorber0 ( Lead) : 808.32 MeV +- 15.02 MeV 52.43 cm +- 1.21 cm
Absorber1 ( liquidArgon) : 179.35 MeV +- 12.84 MeV 89.37 cm +- 6.43 cm
-------------------------------------------------------------
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 197041347, 1893777350
----------------------------------------
Graphics systems deleted.
VisManager deleting.
G4 kernel has come to Quit state.
Deletion of G4 kernel class start.
UserDetectorConstruction deleted.
UserPhysicsList deleted.
UserRunAction deleted.
UserPrimaryGenerator deleted.
G4SDManager deleted.
EventManager deleted.
UImanager deleted.
StateManager deleted.
RunManager is deleting.
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em3CalorHit.hh,v 1.1.4.1 1999/12/07 20:46:59 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em3CalorHit.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em3CalorimeterSD.hh,v 1.1.4.1 1999/12/07 20:47:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em3CalorimeterSD.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: Em3DetectorConstruction.hh,v 1.1.4.1 1999/12/07 20:47:00 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: Em3DetectorConstruction.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//

Some files were not shown because too many files have changed in this diff Show More